From 73495fbb03c6d838faf7905057d5d7a60ce0fc65 Mon Sep 17 00:00:00 2001 From: Henrik Enberg Date: Mon, 16 Jan 2006 00:03:54 +0000 Subject: [PATCH] sync with trunk --- .arch-inventory | 7 + .cvsignore | 17 +- AUTHORS | 1507 +- BUGS | 2 +- COPYING | 6 +- ChangeLog | 735 +- INSTALL | 120 +- INSTALL-CVS | 43 - INSTALL.CVS | 79 + MAINTAINERS | 11 +- Makefile.in | 92 +- README | 2 +- admin/ChangeLog | 192 +- admin/FOR-RELEASE | 255 + admin/README | 2 + admin/admin.el | 52 +- admin/alloc-colors.c | 7 +- admin/build-configs | 6 +- admin/check-doc-strings | 1 + admin/cus-test.el | 17 +- admin/diff-tar-files | 5 +- admin/emacs-pretesters | 314 +- admin/make-announcement | 2 + admin/make-changelog-diff | 2 + admin/make-emacs | 6 +- admin/make-tarball.txt | 75 +- admin/notes/BRANCH | 18 + admin/notes/cpp | 20 + admin/notes/exit-value | 35 + admin/notes/iftc | 2 + admin/notes/trailing-whitespace | 8 + admin/notes/years | 70 + admin/nt/README-UNDUMP.W32 | 13 +- admin/nt/README-ftp-server | 91 +- admin/nt/README.W32 | 23 +- admin/nt/dump.bat | 4 + admin/nt/makedist.bat | 252 +- admin/quick-install-emacs | 26 +- admin/revdiff | 6 +- autogen.sh | 4 +- config.bat | 43 +- config.guess | 807 +- config.sub | 260 +- configure | 16461 +++++--- configure.in | 457 +- etc/.arch-inventory | 10 + etc/.cvsignore | 1 + etc/CENSORSHIP | 2 +- etc/COPYING | 6 +- etc/ChangeLog | 1040 +- etc/DEBUG | 73 +- etc/DISTRIB | 29 +- etc/ETAGS.EBNF | 4 +- etc/GNU | 47 +- etc/GNUS-NEWS | 547 + etc/HELLO | 92 +- etc/INTERVIEW | 7 +- etc/LPF | 91 +- etc/MACHINES | 37 +- etc/MAILINGLISTS | 1306 +- etc/MH-E-NEWS | 1012 + etc/MORE.STUFF | 161 +- etc/MOTIVATION | 2 +- etc/Makefile | 7 +- etc/NEWS | 6333 +++- etc/ONEWS | 3 +- etc/ONEWS.1 | 2 + etc/ONEWS.2 | 2 + etc/ONEWS.3 | 2 + etc/ONEWS.4 | 2 + etc/ORDERS.EUROPE | 203 - etc/ORDERS.JAPAN | 213 - etc/OTHER.EMACSES | 2 + etc/PROBLEMS | 5034 +-- etc/SERVICE | 1 + etc/TODO | 415 +- etc/TUTORIAL | 101 +- etc/TUTORIAL.bg | 1959 +- etc/TUTORIAL.cn | 1087 + etc/TUTORIAL.cs | 9 +- etc/TUTORIAL.de | 101 +- etc/TUTORIAL.es | 37 +- etc/TUTORIAL.fr | 59 +- etc/TUTORIAL.it | 13 +- etc/TUTORIAL.ja | 14 +- etc/TUTORIAL.ko | 8 +- etc/TUTORIAL.nl | 1777 +- etc/TUTORIAL.pl | 12 +- etc/TUTORIAL.pt_BR | 1088 + etc/TUTORIAL.ro | 14 +- etc/TUTORIAL.ru | 1298 +- etc/TUTORIAL.sk | 9 +- etc/TUTORIAL.sl | 7 +- etc/TUTORIAL.sv | 215 +- etc/TUTORIAL.th | 9 +- etc/TUTORIAL.translators | 109 +- etc/TUTORIAL.zh | 1087 + etc/Xkeymap.txt | 2 + etc/calccard.tex | 55 +- etc/compilation.txt | 403 + etc/cs-dired-ref.tex | 13 +- etc/cs-refcard.tex | 13 +- etc/cs-survival.tex | 13 +- etc/ctags.1 | 2 + etc/de-refcard.tex | 11 +- etc/dired-ref.tex | 13 +- etc/e/eterm | Bin 1205 -> 0 bytes etc/e/eterm-color | Bin 0 -> 1163 bytes etc/e/eterm-color.ti | 70 + etc/e/eterm.ti | 21 - etc/edt-user.doc | 9 +- etc/emacs-buffer.gdb | 270 + etc/emacs.1 | 13 +- etc/emacs.bash | 3 +- etc/emacs.csh | 2 + etc/emacs.py | 112 + etc/emacsclient.1 | 50 +- etc/emacstool.1 | 4 +- etc/enriched.doc | 14 +- etc/etags.1 | 35 +- etc/fr-drdref.tex | 11 +- etc/fr-refcard.tex | 67 +- etc/fr-survival.tex | 13 +- etc/gfdl.1 | 259 +- etc/gnus-logo.eps | 1055 + etc/gnus-refcard.tex | 1428 + etc/gnus-tut.txt | 6 +- etc/grep.txt | 87 + etc/images/README | 17 + {lisp/toolbar => etc/images}/attach.pbm | Bin etc/images/back-arrow.pbm | Bin 0 -> 185 bytes etc/images/back-arrow.xpm | 57 + {lisp/toolbar => etc/images}/cancel.pbm | Bin {lisp/toolbar => etc/images}/cancel.xpm | 0 etc/images/close.pbm | Bin 0 -> 199 bytes etc/images/close.xpm | 29 + etc/images/copy.pbm | Bin 0 -> 1786 bytes etc/images/copy.xpm | 53 + etc/images/cut.pbm | Bin 0 -> 185 bytes etc/images/cut.xpm | 67 + etc/images/diropen.pbm | Bin 0 -> 81 bytes etc/images/diropen.xpm | 44 + etc/images/execute.pbm | Bin 0 -> 81 bytes {lisp/toolbar => etc/images}/execute.xpm | 0 {lisp/toolbar => etc/images}/exit.pbm | Bin {lisp/toolbar => etc/images}/exit.xpm | 0 etc/images/ezimage/bits.xpm | 20 + etc/images/ezimage/bitsbang.xpm | 21 + etc/images/ezimage/box-minus.xpm | 22 + etc/images/ezimage/box-plus.xpm | 22 + etc/images/ezimage/box.xpm | 22 + etc/images/ezimage/checkmark.xpm | 20 + etc/images/ezimage/dir-minus.xpm | 23 + etc/images/ezimage/dir-plus.xpm | 23 + lisp/sb-dir.xpm => etc/images/ezimage/dir.xpm | 21 +- etc/images/ezimage/doc-minus.xpm | 23 + etc/images/ezimage/doc-plus.xpm | 23 + etc/images/ezimage/doc.xpm | 23 + etc/images/ezimage/info.xpm | 22 + etc/images/ezimage/key.xpm | 23 + etc/images/ezimage/label.xpm | 22 + etc/images/ezimage/lock.xpm | 23 + .../images/ezimage/mail.xpm | 0 .../images/ezimage/page-minus.xpm | 13 +- .../images/ezimage/page-plus.xpm | 13 +- lisp/sb-pg.xpm => etc/images/ezimage/page.xpm | 13 +- .../images/ezimage/tag-gt.xpm | 0 .../images/ezimage/tag-minus.xpm | 0 .../images/ezimage/tag-plus.xpm | 0 .../images/ezimage/tag-type.xpm | 0 .../images/ezimage/tag-v.xpm | 0 lisp/sb-tag.xpm => etc/images/ezimage/tag.xpm | 0 etc/images/ezimage/unlock.xpm | 23 + .../fld_open.pbm => etc/images/fld-open.pbm | Bin .../fld_open.xpm => etc/images/fld-open.xpm | 0 etc/images/fwd-arrow.pbm | Bin 0 -> 185 bytes etc/images/fwd-arrow.xpm | 70 + etc/images/gnus/bar.xbm | 7 + etc/images/gnus/bar.xpm | 54 + {lisp => etc/images}/gnus/catchup.pbm | Bin etc/images/gnus/catchup.xpm | 33 + {lisp => etc/images}/gnus/cu-exit.pbm | Bin etc/images/gnus/cu-exit.xpm | 31 + etc/images/gnus/dead.xpm | 20 + {lisp => etc/images}/gnus/describe-group.pbm | Bin etc/images/gnus/describe-group.xpm | 32 + {lisp => etc/images}/gnus/exit-gnus.pbm | Bin etc/images/gnus/exit-gnus.xpm | 33 + {lisp => etc/images}/gnus/exit-summ.pbm | Bin etc/images/gnus/exit-summ.xpm | 30 + {lisp => etc/images}/gnus/followup.pbm | Bin etc/images/gnus/followup.xpm | 31 + {lisp => etc/images}/gnus/fuwo.pbm | Bin etc/images/gnus/fuwo.xpm | 31 + {lisp => etc/images}/gnus/get-news.pbm | Bin etc/images/gnus/get-news.xpm | 31 + {lisp => etc/images}/gnus/gnntg.pbm | Bin etc/images/gnus/gnntg.xpm | 31 + etc/{ => images/gnus}/gnus-pointer.xbm | 5 +- etc/{ => images/gnus}/gnus-pointer.xpm | 3 +- etc/images/gnus/gnus.xbm | 622 + etc/{ => images/gnus}/gnus.xpm | 3 +- etc/images/gnus/important.xpm | 32 + {lisp => etc/images}/gnus/kill-group.pbm | Bin etc/images/gnus/kill-group.xpm | 30 + {lisp => etc/images}/gnus/mail-reply.pbm | Bin etc/images/gnus/mail-reply.xpm | 32 + {lisp => etc/images}/gnus/next-ur.pbm | Bin etc/images/gnus/next-ur.xpm | 35 + {lisp => etc/images}/gnus/post.pbm | Bin etc/images/gnus/post.xpm | 35 + {lisp => etc/images}/gnus/prev-ur.pbm | Bin etc/images/gnus/prev-ur.xpm | 35 + etc/images/gnus/preview.xbm | 10 + etc/images/gnus/preview.xpm | 33 + etc/images/gnus/receipt.xpm | 32 + {lisp => etc/images}/gnus/reply-wo.pbm | Bin etc/images/gnus/reply-wo.xpm | 31 + {lisp => etc/images}/gnus/reply.pbm | Bin etc/images/gnus/reply.xpm | 31 + etc/images/gnus/reverse-smile.xpm | 20 + {lisp => etc/images}/gnus/rot13.pbm | Bin etc/images/gnus/rot13.xpm | 32 + {lisp => etc/images}/gnus/save-aif.pbm | Bin etc/images/gnus/save-aif.xpm | 33 + {lisp => etc/images}/gnus/save-art.pbm | Bin etc/images/gnus/save-art.xpm | 32 + {lisp => etc/images}/gnus/subscribe.pbm | Bin etc/images/gnus/subscribe.xpm | 32 + etc/images/gnus/unimportant.xpm | 32 + {lisp => etc/images}/gnus/unsubscribe.pbm | Bin etc/images/gnus/unsubscribe.xpm | 32 + {lisp => etc/images}/gnus/uu-decode.pbm | Bin etc/images/gnus/uu-decode.xpm | 36 + {lisp => etc/images}/gnus/uu-post.pbm | Bin etc/images/gnus/uu-post.xpm | 35 + etc/images/gud/break.pbm | Bin 0 -> 81 bytes etc/images/gud/break.xpm | 29 + etc/images/gud/cont.pbm | Bin 0 -> 81 bytes .../gud-cont.xpm => etc/images/gud/cont.xpm | 2 +- etc/images/gud/down.pbm | Bin 0 -> 81 bytes .../gud-down.xpm => etc/images/gud/down.xpm | 2 +- etc/images/gud/finish.pbm | Bin 0 -> 81 bytes .../images/gud/finish.xpm | 2 +- etc/images/gud/go.pbm | Bin 0 -> 81 bytes .../gud-remove.xpm => etc/images/gud/go.xpm | 25 +- etc/images/gud/next.pbm | Bin 0 -> 81 bytes .../gud-next.xpm => etc/images/gud/next.xpm | 2 +- etc/images/gud/nexti.pbm | Bin 0 -> 81 bytes etc/images/gud/nexti.xpm | 33 + etc/images/gud/pp.pbm | Bin 0 -> 81 bytes etc/images/gud/pp.xpm | 29 + etc/images/gud/print.pbm | Bin 0 -> 81 bytes .../gud-print.xpm => etc/images/gud/print.xpm | 2 +- etc/images/gud/pstar.pbm | Bin 0 -> 81 bytes etc/images/gud/pstar.xpm | 29 + etc/images/gud/remove.pbm | Bin 0 -> 130 bytes etc/images/gud/remove.xpm | 30 + etc/images/gud/run.pbm | Bin 0 -> 81 bytes .../gud-run.xpm => etc/images/gud/run.xpm | 2 +- etc/images/gud/step.pbm | Bin 0 -> 81 bytes .../gud-step.xpm => etc/images/gud/step.xpm | 2 +- etc/images/gud/stepi.pbm | Bin 0 -> 81 bytes etc/images/gud/stepi.xpm | 32 + etc/images/gud/stop.pbm | Bin 0 -> 81 bytes .../gud-break.xpm => etc/images/gud/stop.xpm | 6 +- etc/images/gud/until.pbm | Bin 0 -> 81 bytes .../gud-until.xpm => etc/images/gud/until.xpm | 6 +- etc/images/gud/up.pbm | Bin 0 -> 81 bytes .../gud-up.xpm => etc/images/gud/up.xpm | 2 +- etc/images/gud/watch.pbm | Bin 0 -> 81 bytes etc/images/gud/watch.xpm | 38 + etc/images/help.pbm | Bin 0 -> 185 bytes etc/images/help.xpm | 271 + etc/images/highlight.pbm | Bin 0 -> 81 bytes etc/images/highlight.xpm | 33 + etc/images/home.pbm | Bin 0 -> 185 bytes etc/images/home.xpm | 128 + etc/images/icons/emacs_16.png | Bin 0 -> 783 bytes etc/images/icons/emacs_24.png | Bin 0 -> 1068 bytes etc/images/icons/emacs_32.png | Bin 0 -> 2488 bytes etc/images/icons/emacs_48.png | Bin 0 -> 3526 bytes etc/images/index.pbm | Bin 0 -> 185 bytes etc/images/index.xpm | 201 + {lisp/toolbar => etc/images}/info.pbm | Bin {lisp/toolbar => etc/images}/info.xpm | 0 etc/images/jump-to.pbm | Bin 0 -> 185 bytes etc/images/jump-to.xpm | 171 + etc/images/left-arrow.pbm | Bin 0 -> 185 bytes etc/images/left-arrow.xpm | 70 + etc/images/low-color/back-arrow.xpm | 33 + etc/images/low-color/copy.xpm | 33 + etc/images/low-color/cut.xpm | 34 + etc/images/low-color/fwd-arrow.xpm | 32 + etc/images/low-color/help.xpm | 39 + etc/images/low-color/home.xpm | 38 + etc/images/low-color/index.xpm | 34 + etc/images/low-color/jump-to.xpm | 35 + etc/images/low-color/left-arrow.xpm | 34 + etc/images/low-color/new.xpm | 33 + etc/images/low-color/next-node.xpm | 35 + etc/images/low-color/open.xpm | 35 + etc/images/low-color/paste.xpm | 35 + etc/images/low-color/preferences.xpm | 37 + etc/images/low-color/prev-node.xpm | 34 + etc/images/low-color/print.xpm | 33 + etc/images/low-color/right-arrow.xpm | 33 + etc/images/low-color/save.xpm | 39 + etc/images/low-color/saveas.xpm | 40 + etc/images/low-color/search.xpm | 33 + etc/images/low-color/spell.xpm | 35 + etc/images/low-color/undo.xpm | 32 + etc/images/low-color/up-arrow.xpm | 35 + etc/images/low-color/up-node.xpm | 35 + {lisp/toolbar => etc/images}/mail.pbm | Bin {lisp/toolbar => etc/images}/mail.xpm | 0 etc/images/mail/alias.pbm | Bin 0 -> 81 bytes {lisp/toolbar => etc/images/mail}/alias.xpm | 0 .../images/mail/compose.pbm | Bin .../images/mail/compose.xpm | 0 etc/images/mail/refile.pbm | Bin 0 -> 81 bytes {lisp/toolbar => etc/images/mail}/refile.xpm | 0 etc/images/mail/repack.pbm | Bin 0 -> 81 bytes {lisp/toolbar => etc/images/mail}/repack.xpm | 0 etc/images/mail/reply-all.pbm | Bin 0 -> 81 bytes .../toolbar => etc/images/mail}/reply-all.xpm | 0 etc/images/mail/reply-from.pbm | Bin 0 -> 81 bytes .../images/mail}/reply-from.xpm | 0 etc/images/mail/reply-to.pbm | Bin 0 -> 81 bytes .../toolbar => etc/images/mail}/reply-to.xpm | 0 etc/images/mail/reply.pbm | Bin 0 -> 81 bytes .../reply2.xpm => etc/images/mail/reply.xpm | 0 .../mail_send.pbm => etc/images/mail/send.pbm | Bin .../mail_send.xpm => etc/images/mail/send.xpm | 0 {lisp/toolbar => etc/images}/mh-logo.xpm | 0 etc/images/new.pbm | Bin 0 -> 185 bytes etc/images/new.xpm | 154 + etc/images/next-node.pbm | Bin 0 -> 1786 bytes etc/images/next-node.xpm | 45 + etc/images/open.pbm | Bin 0 -> 185 bytes etc/images/open.xpm | 200 + etc/images/page-down.pbm | Bin 0 -> 81 bytes {lisp/toolbar => etc/images}/page-down.xpm | 0 etc/images/paste.pbm | Bin 0 -> 185 bytes etc/images/paste.xpm | 116 + etc/images/preferences.pbm | Bin 0 -> 185 bytes etc/images/preferences.xpm | 114 + etc/images/prev-node.pbm | Bin 0 -> 1786 bytes etc/images/prev-node.xpm | 44 + etc/images/print.pbm | Bin 0 -> 185 bytes etc/images/print.xpm | 202 + etc/images/refresh.pbm | Bin 0 -> 81 bytes etc/images/refresh.xpm | 113 + etc/images/right-arrow.pbm | Bin 0 -> 185 bytes etc/images/right-arrow.xpm | 68 + etc/images/save.pbm | Bin 0 -> 1786 bytes etc/images/save.xpm | 247 + etc/images/saveas.pbm | Bin 0 -> 185 bytes etc/images/saveas.xpm | 289 + .../toolbar => etc/images}/search-replace.pbm | Bin .../toolbar => etc/images}/search-replace.xpm | 0 etc/images/search.pbm | Bin 0 -> 185 bytes etc/images/search.xpm | 234 + etc/images/show.pbm | Bin 0 -> 81 bytes {lisp/toolbar => etc/images}/show.xpm | 0 etc/images/smilies/blink.pbm | Bin 0 -> 37 bytes etc/images/smilies/blink.xpm | 20 + etc/images/smilies/braindamaged.xpm | 20 + etc/images/smilies/cry.xpm | 20 + etc/images/smilies/evil.xpm | 20 + etc/images/smilies/forced.xpm | 20 + {lisp/gnus => etc/images/smilies}/frown.pbm | Bin etc/images/smilies/frown.xpm | 20 + etc/images/smilies/grin.xpm | 21 + etc/images/smilies/indifferent.xpm | 20 + etc/images/smilies/sad.pbm | Bin 0 -> 37 bytes etc/images/smilies/sad.xpm | 20 + {lisp/gnus => etc/images/smilies}/smile.pbm | Bin etc/images/smilies/smile.xpm | 20 + {lisp/gnus => etc/images/smilies}/wry.pbm | Bin etc/images/smilies/wry.xpm | 20 + etc/images/spell.pbm | Bin 0 -> 185 bytes etc/images/spell.xpm | 64 + etc/images/undo.pbm | Bin 0 -> 185 bytes etc/images/undo.xpm | 58 + etc/images/up-arrow.pbm | Bin 0 -> 185 bytes etc/images/up-arrow.xpm | 94 + etc/images/up-node.pbm | Bin 0 -> 1786 bytes etc/images/up-node.xpm | 45 + etc/images/widen.pbm | Bin 0 -> 81 bytes {lisp/toolbar => etc/images}/widen.xpm | 0 etc/ledit.l | 2 + etc/letter.pbm | 3 + etc/letter.xbm | 5 - etc/letter.xpm | 4 +- etc/ms-7bkermit | 2 + etc/ms-kermit | 1 + etc/orgcard.ps | 2775 ++ etc/orgcard.tex | 758 + etc/pl-refcard.tex | 15 +- etc/ps-prin0.ps | 4 +- etc/ps-prin1.ps | 13 +- etc/refcard.tex | 75 +- etc/ru-refcard.ps | 2087 ++ etc/ru-refcard.tex | 518 + etc/ses-example.ses | 2 + etc/sk-dired-ref.tex | 13 +- etc/sk-refcard.tex | 13 +- etc/sk-survival.tex | 13 +- etc/survival.tex | 10 +- etc/tasks.texi | 960 - etc/termcap.src | 1 - etc/tree-widget/default/close.png | Bin 0 -> 999 bytes etc/tree-widget/default/close.xpm | 284 + etc/tree-widget/default/empty.png | Bin 0 -> 999 bytes etc/tree-widget/default/empty.xpm | 284 + etc/tree-widget/default/end-guide.png | Bin 0 -> 913 bytes etc/tree-widget/default/end-guide.xpm | 284 + etc/tree-widget/default/guide.png | Bin 0 -> 911 bytes etc/tree-widget/default/guide.xpm | 284 + etc/tree-widget/default/handle.png | Bin 0 -> 916 bytes etc/tree-widget/default/handle.xpm | 284 + etc/tree-widget/default/leaf.png | Bin 0 -> 994 bytes etc/tree-widget/default/leaf.xpm | 284 + etc/tree-widget/default/no-guide.png | Bin 0 -> 914 bytes etc/tree-widget/default/no-guide.xpm | 284 + etc/tree-widget/default/no-handle.png | Bin 0 -> 914 bytes etc/tree-widget/default/no-handle.xpm | 284 + etc/tree-widget/default/open.png | Bin 0 -> 1006 bytes etc/tree-widget/default/open.xpm | 284 + etc/tree-widget/folder/close.png | Bin 0 -> 981 bytes etc/tree-widget/folder/close.xpm | 285 + etc/tree-widget/folder/empty.png | Bin 0 -> 1008 bytes etc/tree-widget/folder/empty.xpm | 285 + etc/tree-widget/folder/end-guide.png | Bin 0 -> 942 bytes etc/tree-widget/folder/end-guide.xpm | 285 + etc/tree-widget/folder/guide.png | Bin 0 -> 940 bytes etc/tree-widget/folder/guide.xpm | 285 + etc/tree-widget/folder/handle.png | Bin 0 -> 915 bytes etc/tree-widget/folder/handle.xpm | 285 + etc/tree-widget/folder/leaf.png | Bin 0 -> 980 bytes etc/tree-widget/folder/leaf.xpm | 285 + etc/tree-widget/folder/no-guide.png | Bin 0 -> 934 bytes etc/tree-widget/folder/no-guide.xpm | 285 + etc/tree-widget/folder/no-handle.png | Bin 0 -> 942 bytes etc/tree-widget/folder/no-handle.xpm | 285 + etc/tree-widget/folder/open.png | Bin 0 -> 1019 bytes etc/tree-widget/folder/open.xpm | 285 + etc/ulimit.hack | 2 + etc/vipcard.tex | 8 +- etc/viperCard.tex | 9 +- info/.arch-inventory | 20 + info/.cvsignore | 49 +- info/COPYING | 6 +- info/dir | 24 +- leim/.arch-inventory | 4 + leim/.cvsignore | 5 +- leim/COPYING | 6 +- leim/CXTERM-DIC/4Corner.tit | 3 +- leim/CXTERM-DIC/ARRAY30.tit | 2 + leim/CXTERM-DIC/CCDOSPY.tit | 3 +- leim/CXTERM-DIC/ECDICT.tit | 1 + leim/CXTERM-DIC/ETZY.tit | 2 + leim/CXTERM-DIC/PY-b5.tit | 2 + leim/CXTERM-DIC/Punct-b5.tit | 2 + leim/CXTERM-DIC/Punct.tit | 3 +- leim/CXTERM-DIC/QJ-b5.tit | 2 + leim/CXTERM-DIC/QJ.tit | 3 +- leim/CXTERM-DIC/SW.tit | 3 +- leim/CXTERM-DIC/TONEPY.tit | 3 +- leim/CXTERM-DIC/ZOZY.tit | 2 + leim/ChangeLog | 326 +- leim/MISC-DIC/CTLau-b5.html | 5 +- leim/MISC-DIC/CTLau.html | 5 +- leim/Makefile.in | 130 +- leim/SKK-DIC/SKK-JISYO.L | 3 +- leim/ja-dic/ja-dic.el | 4 +- leim/leim-ext.el | 53 + leim/makefile.nt | 204 - leim/makefile.w32-in | 32 +- leim/quail/.arch-inventory | 4 + leim/quail/croatian.el | 8 +- leim/quail/cyril-jis.el | 11 +- leim/quail/cyrillic.el | 91 +- leim/quail/czech.el | 7 +- leim/quail/ethiopic.el | 10 +- leim/quail/georgian.el | 7 +- leim/quail/greek.el | 121 +- leim/quail/hangul.el | 11 +- leim/quail/hangul3.el | 11 +- leim/quail/hanja-jis.el | 10 +- leim/quail/hanja.el | 10 +- leim/quail/hanja3.el | 7 +- leim/quail/hebrew.el | 18 +- leim/quail/indian.el | 75 +- leim/quail/ipa.el | 10 +- leim/quail/japanese.el | 16 +- leim/quail/lao.el | 86 +- leim/quail/latin-alt.el | 12 +- leim/quail/latin-ltx.el | 1843 +- leim/quail/latin-post.el | 12 +- leim/quail/latin-pre.el | 24 +- leim/quail/lrt.el | 11 +- leim/quail/py-punct.el | 10 +- leim/quail/pypunct-b5.el | 12 +- leim/quail/rfc1345.el | Bin 31701 -> 31756 bytes leim/quail/sgml-input.el | 8 +- leim/quail/sisheng.el | 293 + leim/quail/slovak.el | 7 +- leim/quail/symbol-ksc.el | 41 +- leim/quail/thai.el | 90 +- leim/quail/tibetan.el | 10 +- leim/quail/uni-input.el | 37 +- leim/quail/viqr.el | 10 +- leim/quail/vntelex.el | 7 +- leim/quail/welsh.el | 5 +- lib-src/.arch-inventory | 10 + lib-src/.cvsignore | 6 +- lib-src/COPYING | 6 +- lib-src/ChangeLog | 463 +- lib-src/Makefile.in | 56 +- lib-src/README | 2 +- lib-src/b2m.c | 23 +- lib-src/b2m.pl | 6 +- lib-src/cvtmail.c | 26 +- lib-src/digest-doc.c | 10 +- lib-src/ebrowse.c | 29 +- lib-src/emacsclient.c | 215 +- lib-src/emacstool.c | 10 +- lib-src/etags.c | 1418 +- lib-src/fakemail.c | 18 +- lib-src/getopt.c | 638 +- lib-src/getopt1.c | 85 +- lib-src/{getopt.h => getopt_.h} | 124 +- lib-src/getopt_int.h | 134 + {nt/inc => lib-src}/gettext.h | 33 +- lib-src/grep-changelog | 68 +- lib-src/hexl.c | 17 +- lib-src/leditcfns.c | 3 + lib-src/make-docfile.c | 58 +- lib-src/makefile.nt | 415 - lib-src/makefile.w32-in | 84 +- lib-src/movemail.c | 79 +- lib-src/ntlib.c | 9 +- lib-src/ntlib.h | 11 +- lib-src/pop.c | 45 +- lib-src/pop.h | 10 +- lib-src/profile.c | 18 +- lib-src/rcs-checkin | 8 +- lib-src/rcs2log | 101 +- lib-src/sorted-doc.c | 17 +- lib-src/test-distrib.c | 24 +- lib-src/update-game-score.c | 49 +- lib-src/vcdiff | 12 +- lib-src/yow.c | 26 +- lisp/.arch-inventory | 7 + lisp/.cvsignore | 3 + lisp/COPYING | 6 +- lisp/ChangeLog | 29130 ++++++++------- lisp/ChangeLog.1 | 2 + lisp/ChangeLog.10 | 23552 ++++++++++++ lisp/ChangeLog.11 | 14343 +++++++ lisp/ChangeLog.2 | 2 + lisp/ChangeLog.3 | 2 + lisp/ChangeLog.4 | 2 + lisp/ChangeLog.5 | 4 +- lisp/ChangeLog.6 | 2 + lisp/ChangeLog.7 | 23 +- lisp/ChangeLog.8 | 2 + lisp/ChangeLog.9 | 18 +- lisp/Makefile.in | 235 +- lisp/abbrev.el | 123 +- lisp/abbrevlist.el | 10 +- lisp/add-log.el | 324 +- lisp/align.el | 68 +- lisp/allout.el | 2029 +- lisp/ansi-color.el | 63 +- lisp/apropos.el | 464 +- lisp/arc-mode.el | 521 +- lisp/array.el | 33 +- lisp/autoarg.el | 8 +- lisp/autoinsert.el | 26 +- lisp/autorevert.el | 401 +- lisp/avoid.el | 92 +- lisp/battery.el | 390 +- lisp/bindings.el | 288 +- lisp/bookmark.el | 527 +- lisp/bs.el | 162 +- lisp/buff-menu.el | 367 +- lisp/button.el | 65 +- lisp/byte-run.el | 166 - lisp/calc/README | 46 +- lisp/calc/calc-aent.el | 776 +- lisp/calc/calc-alg.el | 1007 +- lisp/calc/calc-arith.el | 509 +- lisp/calc/calc-bin.el | 23 +- lisp/calc/calc-comb.el | 77 +- lisp/calc/calc-cplx.el | 14 +- lisp/calc/calc-embed.el | 464 +- lisp/calc/calc-ext.el | 591 +- lisp/calc/calc-fin.el | 14 +- lisp/calc/calc-forms.el | 472 +- lisp/calc/calc-frac.el | 22 +- lisp/calc/calc-funcs.el | 13 +- lisp/calc/calc-graph.el | 761 +- lisp/calc/calc-help.el | 206 +- lisp/calc/calc-incom.el | 23 +- lisp/calc/calc-keypd.el | 41 +- lisp/calc/calc-lang.el | 531 +- lisp/calc/calc-macs.el | 13 +- lisp/calc/calc-maint.el | 391 - lisp/calc/calc-map.el | 58 +- lisp/calc/calc-math.el | 438 +- lisp/calc/calc-misc.el | 101 +- lisp/calc/calc-mode.el | 48 +- lisp/calc/calc-mtx.el | 23 +- lisp/calc/calc-poly.el | 188 +- lisp/calc/calc-prog.el | 778 +- lisp/calc/calc-rewr.el | 392 +- lisp/calc/calc-rules.el | 24 +- lisp/calc/calc-sel.el | 117 +- lisp/calc/calc-stat.el | 14 +- lisp/calc/calc-store.el | 237 +- lisp/calc/calc-stuff.el | 41 +- lisp/calc/calc-trail.el | 14 +- lisp/calc/calc-undo.el | 17 +- lisp/calc/calc-units.el | 781 +- lisp/calc/calc-vec.el | 155 +- lisp/calc/calc-yank.el | 73 +- lisp/calc/calc.el | 1098 +- lisp/calc/calcalg2.el | 1209 +- lisp/calc/calcalg3.el | 352 +- lisp/calc/calccomp.el | 506 +- lisp/calc/calcsel2.el | 37 +- lisp/calculator.el | 256 +- lisp/calendar/appt.el | 688 +- lisp/calendar/cal-bahai.el | 515 + lisp/calendar/cal-china.el | 17 +- lisp/calendar/cal-coptic.el | 21 +- lisp/calendar/cal-dst.el | 13 +- lisp/calendar/cal-french.el | 19 +- lisp/calendar/cal-hebrew.el | 342 +- lisp/calendar/cal-islam.el | 68 +- lisp/calendar/cal-iso.el | 65 +- lisp/calendar/cal-julian.el | 21 +- lisp/calendar/cal-mayan.el | 23 +- lisp/calendar/cal-menu.el | 155 +- lisp/calendar/cal-move.el | 38 +- lisp/calendar/cal-persia.el | 15 +- lisp/calendar/cal-tex.el | 21 +- lisp/calendar/cal-x.el | 31 +- lisp/calendar/calendar.el | 934 +- lisp/calendar/diary-lib.el | 1366 +- lisp/calendar/holidays.el | 183 +- lisp/calendar/icalendar.el | 1940 + lisp/calendar/lunar.el | 17 +- lisp/calendar/parse-time.el | 9 +- lisp/calendar/solar.el | 157 +- lisp/calendar/time-date.el | 171 +- lisp/calendar/timeclock.el | 289 +- lisp/calendar/todo-mode.el | 20 +- lisp/case-table.el | 85 +- lisp/cdl.el | 7 +- lisp/chistory.el | 9 +- lisp/cmuscheme.el | 161 +- lisp/comint.el | 1241 +- lisp/compare-w.el | 243 +- lisp/complete.el | 108 +- lisp/completion.el | 832 +- lisp/composite.el | 31 +- lisp/cus-dep.el | 88 +- lisp/cus-edit.el | 1557 +- lisp/cus-face.el | 96 +- lisp/cus-start.el | 140 +- lisp/cus-theme.el | 396 +- lisp/custom.el | 1010 +- lisp/cvs-status.el | 69 +- lisp/dabbrev.el | 224 +- lisp/delim-col.el | 22 +- lisp/delsel.el | 20 +- lisp/descr-text.el | 771 +- lisp/desktop.el | 1319 +- lisp/dframe.el | 1073 + lisp/diff-mode.el | 567 +- lisp/diff.el | 306 +- lisp/dired-aux.el | 447 +- lisp/dired-x.el | 357 +- lisp/dired.el | 1132 +- lisp/dirtrack.el | 18 +- lisp/disp-table.el | 38 +- lisp/dnd.el | 192 + lisp/dos-fns.el | 18 +- lisp/dos-vars.el | 7 +- lisp/dos-w32.el | 13 +- lisp/double.el | 9 +- lisp/ebuff-menu.el | 62 +- lisp/echistory.el | 9 +- lisp/ediff-diff.el | 261 +- lisp/ediff-help.el | 10 +- lisp/ediff-hook.el | 24 +- lisp/ediff-init.el | 494 +- lisp/ediff-merg.el | 19 +- lisp/ediff-mult.el | 79 +- lisp/ediff-ptch.el | 168 +- lisp/ediff-util.el | 104 +- lisp/ediff-vers.el | 18 +- lisp/ediff-wind.el | 25 +- lisp/ediff.el | 188 +- lisp/edmacro.el | 88 +- lisp/ehelp.el | 39 +- lisp/electric.el | 29 +- lisp/elide-head.el | 15 +- lisp/emacs-lisp/advice.el | 164 +- lisp/emacs-lisp/assoc.el | 7 +- lisp/emacs-lisp/authors.el | 73 +- lisp/emacs-lisp/autoload.el | 96 +- lisp/emacs-lisp/backquote.el | 16 +- lisp/emacs-lisp/benchmark.el | 8 +- lisp/emacs-lisp/bindat.el | 14 +- lisp/emacs-lisp/byte-opt.el | 286 +- lisp/emacs-lisp/byte-run.el | 235 + lisp/emacs-lisp/bytecomp.el | 926 +- lisp/emacs-lisp/checkdoc.el | 298 +- lisp/emacs-lisp/cl-compat.el | 9 +- lisp/emacs-lisp/cl-extra.el | 119 +- lisp/emacs-lisp/cl-indent.el | 24 +- lisp/emacs-lisp/cl-macs.el | 572 +- lisp/emacs-lisp/cl-seq.el | 218 +- lisp/emacs-lisp/cl-specs.el | 10 +- lisp/emacs-lisp/cl.el | 90 +- lisp/emacs-lisp/copyright.el | 188 +- lisp/emacs-lisp/crm.el | 32 +- lisp/emacs-lisp/cust-print.el | 9 +- lisp/emacs-lisp/debug.el | 545 +- lisp/{ => emacs-lisp}/derived.el | 74 +- lisp/emacs-lisp/disass.el | 12 +- lisp/emacs-lisp/easy-mmode.el | 307 +- lisp/emacs-lisp/easymenu.el | 182 +- lisp/emacs-lisp/edebug.el | 656 +- lisp/emacs-lisp/eldoc.el | 187 +- lisp/emacs-lisp/elint.el | 169 +- lisp/emacs-lisp/elp.el | 86 +- lisp/emacs-lisp/ewoc.el | 88 +- lisp/emacs-lisp/find-func.el | 296 +- lisp/emacs-lisp/find-gc.el | 115 +- lisp/{ => emacs-lisp}/float-sup.el | 10 +- lisp/emacs-lisp/generic.el | 321 + lisp/emacs-lisp/gulp.el | 7 +- lisp/emacs-lisp/helper.el | 9 +- lisp/emacs-lisp/levents.el | 8 +- lisp/emacs-lisp/lisp-mnt.el | 172 +- lisp/emacs-lisp/lisp-mode.el | 493 +- lisp/emacs-lisp/lisp.el | 325 +- lisp/emacs-lisp/lmenu.el | 14 +- lisp/emacs-lisp/lselect.el | 35 +- lisp/emacs-lisp/lucid.el | 37 +- lisp/emacs-lisp/macroexp.el | 199 + lisp/{ => emacs-lisp}/map-ynp.el | 40 +- lisp/emacs-lisp/pp.el | 77 +- lisp/emacs-lisp/re-builder.el | 144 +- lisp/emacs-lisp/regexp-opt.el | 30 +- lisp/{ => emacs-lisp}/regi.el | 7 +- lisp/emacs-lisp/ring.el | 38 +- lisp/emacs-lisp/rx.el | 501 +- lisp/emacs-lisp/shadow.el | 16 +- lisp/emacs-lisp/sregex.el | 8 +- lisp/emacs-lisp/syntax.el | 310 +- .../{testcover-ses.el => tcover-ses.el} | 10 +- ...testcover-unsafep.el => tcover-unsafep.el} | 9 +- lisp/emacs-lisp/testcover.el | 306 +- lisp/{ => emacs-lisp}/timer.el | 109 +- lisp/emacs-lisp/tq.el | 12 +- lisp/emacs-lisp/trace.el | 92 +- lisp/emacs-lisp/unsafep.el | 11 +- lisp/{ => emacs-lisp}/warnings.el | 108 +- lisp/emacs-lock.el | 8 +- lisp/emerge.el | 96 +- lisp/emulation/crisp.el | 12 +- lisp/emulation/cua-base.el | 800 +- lisp/emulation/cua-gmrk.el | 25 +- lisp/emulation/cua-rect.el | 615 +- lisp/emulation/edt-lk201.el | 8 +- lisp/emulation/edt-mapper.el | 14 +- lisp/emulation/edt-pc.el | 8 +- lisp/emulation/edt-vt100.el | 8 +- lisp/emulation/edt.el | 50 +- lisp/emulation/keypad.el | 15 +- lisp/emulation/pc-mode.el | 7 +- lisp/emulation/pc-select.el | 41 +- lisp/emulation/tpu-edt.el | 783 +- lisp/emulation/tpu-extras.el | 22 +- lisp/emulation/tpu-mapper.el | 10 +- lisp/emulation/vi.el | 83 +- lisp/emulation/vip.el | 49 +- lisp/emulation/viper-cmd.el | 219 +- lisp/emulation/viper-ex.el | 28 +- lisp/emulation/viper-init.el | 80 +- lisp/emulation/viper-keym.el | 103 +- lisp/emulation/viper-macs.el | 73 +- lisp/emulation/viper-mous.el | 12 +- lisp/emulation/viper-util.el | 86 +- lisp/emulation/viper.el | 201 +- lisp/emulation/ws-mode.el | 11 +- lisp/env.el | 67 +- lisp/eshell/.arch-inventory | 4 + lisp/eshell/.cvsignore | 13 + lisp/eshell/em-alias.el | 13 +- lisp/eshell/em-banner.el | 10 +- lisp/eshell/em-basic.el | 8 +- lisp/eshell/em-cmpl.el | 16 +- lisp/eshell/em-dirs.el | 20 +- lisp/eshell/em-glob.el | 32 +- lisp/eshell/em-hist.el | 23 +- lisp/eshell/em-ls.el | 97 +- lisp/eshell/em-pred.el | 27 +- lisp/eshell/em-prompt.el | 14 +- lisp/eshell/em-rebind.el | 8 +- lisp/eshell/em-script.el | 8 +- lisp/eshell/em-smart.el | 12 +- lisp/eshell/em-term.el | 8 +- lisp/eshell/em-unix.el | 21 +- lisp/eshell/em-xtra.el | 8 +- lisp/eshell/esh-arg.el | 14 +- lisp/eshell/esh-cmd.el | 43 +- lisp/eshell/esh-ext.el | 16 +- lisp/eshell/esh-io.el | 61 +- lisp/eshell/esh-maint.el | 8 +- lisp/eshell/esh-mode.el | 30 +- lisp/eshell/esh-module.el | 59 +- lisp/eshell/esh-opt.el | 10 +- lisp/eshell/esh-proc.el | 12 +- lisp/eshell/esh-test.el | 32 +- lisp/eshell/esh-util.el | 25 +- lisp/eshell/esh-var.el | 18 +- lisp/eshell/eshell.el | 23 +- lisp/expand.el | 8 +- lisp/ezimage.el | 372 + lisp/facemenu.el | 231 +- lisp/faces.el | 715 +- lisp/ffap.el | 375 +- lisp/filecache.el | 156 +- lisp/files.el | 2201 +- lisp/filesets.el | 137 +- lisp/find-dired.el | 51 +- lisp/find-file.el | 75 +- lisp/find-lisp.el | 34 +- lisp/finder.el | 59 +- lisp/flow-ctrl.el | 8 +- lisp/foldout.el | 52 +- lisp/follow.el | 21 +- lisp/font-core.el | 190 +- lisp/font-lock.el | 2112 +- lisp/format.el | 53 +- lisp/forms-d2.el | 7 +- lisp/forms-pass.el | 1 + lisp/forms.el | 151 +- lisp/frame.el | 263 +- lisp/fringe.el | 141 +- lisp/gdb-ui.el | 2256 -- lisp/generic-x.el | 3184 +- lisp/generic.el | 420 - lisp/gnus/ChangeLog | 12601 ++----- lisp/gnus/ChangeLog.1 | 2 + lisp/gnus/ChangeLog.2 | 18930 ++++++++++ lisp/gnus/TODO | 193 + lisp/gnus/binhex.el | 76 +- lisp/gnus/canlock.el | 251 + lisp/gnus/catchup.xpm | 73 - lisp/gnus/compface.el | 59 + lisp/gnus/cu-exit.xpm | 64 - lisp/gnus/describe-group.xpm | 72 - lisp/gnus/deuglify.el | 483 + lisp/gnus/dig.el | 193 + lisp/gnus/dns.el | 361 + lisp/gnus/earcon.el | 16 +- lisp/gnus/exit-gnus.xpm | 76 - lisp/gnus/exit-summ.xpm | 45 - lisp/gnus/flow-fill.el | 152 +- lisp/gnus/followup.xpm | 54 - lisp/gnus/format-spec.el | 23 +- lisp/gnus/fuwo.xpm | 53 - lisp/gnus/get-news.xpm | 68 - lisp/gnus/gnntg.xpm | 64 - lisp/gnus/gnus-agent.el | 3733 +- lisp/gnus/gnus-art.el | 4685 ++- lisp/gnus/gnus-async.el | 32 +- lisp/gnus/gnus-audio.el | 21 +- lisp/gnus/gnus-bcklg.el | 59 +- lisp/gnus/gnus-cache.el | 221 +- lisp/gnus/gnus-cite.el | 512 +- lisp/gnus/gnus-cus.el | 510 +- lisp/gnus/gnus-delay.el | 198 + lisp/gnus/gnus-demon.el | 63 +- lisp/gnus/gnus-diary.el | 464 + lisp/gnus/gnus-dired.el | 207 + lisp/gnus/gnus-draft.el | 169 +- lisp/gnus/gnus-dup.el | 20 +- lisp/gnus/gnus-eform.el | 18 +- lisp/gnus/gnus-ems.el | 180 +- lisp/gnus/gnus-fun.el | 260 + lisp/gnus/gnus-gl.el | 35 +- lisp/gnus/gnus-group.el | 1678 +- lisp/gnus/gnus-int.el | 286 +- lisp/gnus/gnus-kill.el | 70 +- lisp/gnus/gnus-logic.el | 50 +- lisp/gnus/gnus-mh.el | 13 +- lisp/gnus/gnus-ml.el | 59 +- lisp/gnus/gnus-mlspl.el | 48 +- lisp/gnus/gnus-move.el | 10 +- lisp/gnus/gnus-msg.el | 1286 +- lisp/gnus/gnus-mule.el | 74 - lisp/gnus/gnus-nocem.el | 36 +- lisp/gnus/gnus-picon.el | 288 + lisp/gnus/gnus-range.el | 284 +- lisp/gnus/gnus-registry.el | 711 + lisp/gnus/gnus-salt.el | 218 +- lisp/gnus/gnus-score.el | 290 +- lisp/gnus/gnus-setup.el | 14 +- lisp/gnus/gnus-sieve.el | 241 + lisp/gnus/gnus-soup.el | 66 +- lisp/gnus/gnus-spec.el | 385 +- lisp/gnus/gnus-srvr.el | 418 +- lisp/gnus/gnus-start.el | 1017 +- lisp/gnus/gnus-sum.el | 5393 ++- lisp/gnus/gnus-topic.el | 340 +- lisp/gnus/gnus-undo.el | 11 +- lisp/gnus/gnus-util.el | 1003 +- lisp/gnus/gnus-uu.el | 275 +- lisp/gnus/gnus-vm.el | 9 +- lisp/gnus/gnus-win.el | 79 +- lisp/gnus/gnus.el | 2153 +- lisp/gnus/hex-util.el | 75 + lisp/gnus/html2text.el | 479 + lisp/gnus/ietf-drums.el | 87 +- lisp/gnus/imap.el | 811 +- lisp/gnus/kill-group.xpm | 50 - lisp/gnus/legacy-gnus-agent.el | 227 + lisp/gnus/mail-parse.el | 23 +- lisp/gnus/mail-prsvr.el | 11 +- lisp/gnus/mail-reply.xpm | 51 - lisp/gnus/mail-source.el | 310 +- lisp/gnus/mailcap.el | 154 +- lisp/gnus/message.el | 3939 +- lisp/gnus/messcompat.el | 11 +- lisp/gnus/mm-bodies.el | 187 +- lisp/gnus/mm-decode.el | 1106 +- lisp/gnus/mm-encode.el | 107 +- lisp/gnus/mm-extern.el | 173 + lisp/gnus/mm-partial.el | 35 +- lisp/gnus/mm-url.el | 463 + lisp/gnus/mm-util.el | 602 +- lisp/gnus/mm-uu.el | 602 +- lisp/gnus/mm-view.el | 566 +- lisp/gnus/mml-sec.el | 299 + lisp/gnus/mml-smime.el | 212 + lisp/gnus/mml.el | 864 +- lisp/gnus/mml1991.el | 313 + lisp/gnus/mml2015.el | 934 + lisp/gnus/next-ur.xpm | 66 - lisp/gnus/nnagent.el | 108 +- lisp/gnus/nnbabyl.el | 27 +- lisp/gnus/nndb.el | 320 + lisp/gnus/nndiary.el | 1714 + lisp/gnus/nndir.el | 9 +- lisp/gnus/nndoc.el | 88 +- lisp/gnus/nndraft.el | 77 +- lisp/gnus/nneething.el | 121 +- lisp/gnus/nnfolder.el | 686 +- lisp/gnus/nngateway.el | 12 +- lisp/gnus/nnheader.el | 485 +- lisp/gnus/nnimap.el | 974 +- lisp/gnus/nnkiboze.el | 221 +- lisp/gnus/nnlistserv.el | 27 +- lisp/gnus/nnmail.el | 612 +- lisp/gnus/nnmaildir.el | 1627 + lisp/gnus/nnmbox.el | 232 +- lisp/gnus/nnmh.el | 52 +- lisp/gnus/nnml.el | 385 +- lisp/gnus/nnnil.el | 83 + lisp/gnus/nnoo.el | 29 +- lisp/gnus/nnrss.el | 1081 + lisp/gnus/nnslashdot.el | 121 +- lisp/gnus/nnsoup.el | 23 +- lisp/gnus/nnspool.el | 30 +- lisp/gnus/nntp.el | 1399 +- lisp/gnus/nnultimate.el | 68 +- lisp/gnus/nnvirtual.el | 40 +- lisp/gnus/nnwarchive.el | 89 +- lisp/gnus/nnweb.el | 699 +- lisp/gnus/nnwfm.el | 433 + lisp/gnus/pop3.el | 235 +- lisp/gnus/post.xpm | 53 - lisp/gnus/prev-ur.xpm | 65 - lisp/gnus/qp.el | 46 +- lisp/gnus/reply-wo.xpm | 65 - lisp/gnus/reply.xpm | 64 - lisp/gnus/rfc1843.el | 23 +- lisp/gnus/rfc2045.el | 10 +- lisp/gnus/rfc2047.el | 1033 +- lisp/gnus/rfc2104.el | 9 +- lisp/gnus/rfc2231.el | 84 +- lisp/gnus/rot13.xpm | 50 - lisp/gnus/save-aif.xpm | 55 - lisp/gnus/save-art.xpm | 62 - lisp/gnus/score-mode.el | 18 +- lisp/gnus/sha1.el | 443 + lisp/gnus/sieve-manage.el | 626 + lisp/gnus/sieve-mode.el | 218 + lisp/gnus/sieve.el | 386 + lisp/gnus/{smiley-ems.el => smiley.el} | 148 +- lisp/gnus/smime.el | 654 + lisp/gnus/spam-report.el | 265 + lisp/gnus/spam-stat.el | 605 + lisp/gnus/spam.el | 1817 + lisp/gnus/starttls.el | 266 +- lisp/gnus/subscribe.xpm | 49 - lisp/gnus/unsubscribe.xpm | 48 - lisp/gnus/utf7.el | 124 +- lisp/gnus/uu-decode.xpm | 48 - lisp/gnus/uu-post.xpm | 57 - lisp/gnus/uudecode.el | 201 +- lisp/gnus/webmail.el | 129 +- lisp/gnus/yenc.el | 122 + lisp/gs.el | 13 +- lisp/help-at-pt.el | 358 + lisp/help-fns.el | 488 +- lisp/help-macro.el | 17 +- lisp/help-mode.el | 195 +- lisp/help.el | 648 +- lisp/hexl.el | 143 +- lisp/hi-lock.el | 309 +- lisp/hilit-chg.el | 328 +- lisp/hippie-exp.el | 13 +- lisp/hl-line.el | 199 +- lisp/ibuf-ext.el | 182 +- lisp/ibuf-macs.el | 30 +- lisp/ibuffer.el | 396 +- lisp/icomplete.el | 158 +- lisp/ido.el | 1468 +- lisp/ielm.el | 150 +- lisp/iimage.el | 152 + lisp/image-file.el | 30 +- lisp/image-mode.el | 170 + lisp/image.el | 231 +- lisp/imenu.el | 350 +- lisp/indent.el | 71 +- lisp/info-look.el | 212 +- lisp/info-xref.el | 172 +- lisp/info.el | 2519 +- lisp/informat.el | 7 +- lisp/international/ccl.el | 24 +- lisp/international/characters.el | 231 +- lisp/international/code-pages.el | 602 +- lisp/international/codepage.el | 33 +- lisp/international/encoded-kb.el | 348 +- lisp/international/fontset.el | 254 +- lisp/international/isearch-x.el | 23 +- lisp/international/iso-ascii.el | 34 +- lisp/international/iso-cvt.el | 139 +- lisp/international/iso-transl.el | 8 +- lisp/international/ja-dic-cnv.el | 14 +- lisp/international/ja-dic-utl.el | 10 +- lisp/international/kinsoku.el | 40 +- lisp/international/kkc.el | 50 +- lisp/international/latexenc.el | 185 + lisp/international/latin-1.el | 26 +- lisp/international/latin-2.el | 21 +- lisp/international/latin-3.el | 21 +- lisp/international/latin-4.el | 21 +- lisp/international/latin-5.el | 21 +- lisp/international/latin-8.el | 20 +- lisp/international/latin-9.el | 21 +- lisp/international/latin1-disp.el | 250 +- lisp/international/mule-cmds.el | 1225 +- lisp/international/mule-conf.el | 55 +- lisp/international/mule-diag.el | 106 +- lisp/international/mule-util.el | 62 +- lisp/international/mule.el | 805 +- lisp/international/ogonek.el | 11 +- lisp/international/quail.el | 654 +- lisp/international/subst-big5.el | 14 +- lisp/international/subst-gb2312.el | 14 +- lisp/international/subst-jis.el | 89 +- lisp/international/subst-ksc.el | 14 +- lisp/international/titdic-cnv.el | 56 +- lisp/international/ucs-tables.el | 91 +- lisp/international/utf-16.el | 668 +- lisp/international/utf-7.el | 142 + lisp/international/utf-8.el | 1247 +- lisp/isearch.el | 1326 +- lisp/isearchb.el | 227 + lisp/iswitchb.el | 418 +- lisp/jit-lock.el | 199 +- lisp/jka-cmpr-hook.el | 284 + lisp/jka-compr.el | 322 +- lisp/kermit.el | 7 +- lisp/kmacro.el | 350 +- lisp/language/china-util.el | 88 +- lisp/language/chinese.el | 19 +- lisp/language/cyril-util.el | 179 +- lisp/language/cyrillic.el | 100 +- lisp/language/czech.el | 5 +- lisp/language/devan-util.el | 166 +- lisp/language/devanagari.el | 7 +- lisp/language/english.el | 11 +- lisp/language/ethio-util.el | 52 +- lisp/language/ethiopic.el | 11 +- lisp/language/european.el | 59 +- lisp/language/georgian.el | 5 +- lisp/language/greek.el | 10 +- lisp/language/hebrew.el | 12 +- lisp/language/ind-util.el | 33 +- lisp/language/indian.el | 97 +- lisp/language/japan-util.el | 31 +- lisp/language/japanese.el | 13 +- lisp/language/kannada.el | 50 + lisp/language/knd-util.el | 544 + lisp/language/korea-util.el | 10 +- lisp/language/korean.el | 12 +- lisp/language/lao-util.el | 12 +- lisp/language/lao.el | 12 +- lisp/language/malayalam.el | 5 +- lisp/language/misc-lang.el | 10 +- lisp/language/mlm-util.el | 60 +- lisp/language/romanian.el | 5 +- lisp/language/slovak.el | 5 +- lisp/language/tamil.el | 5 +- lisp/language/thai-util.el | 194 +- lisp/language/thai-word.el | 11079 ++++++ lisp/language/thai.el | 15 +- lisp/language/tibet-util.el | 11 +- lisp/language/tibetan.el | 11 +- lisp/language/tml-util.el | 6 +- lisp/language/utf-8-lang.el | 6 +- lisp/language/viet-util.el | 13 +- lisp/language/vietnamese.el | 12 +- lisp/{loaddefs.el => ldefs-boot.el} | 19184 ++++++---- lisp/ledit.el | 11 +- lisp/loadhist.el | 160 +- lisp/loadup.el | 53 +- lisp/locate.el | 207 +- lisp/log-edit.el | 304 +- lisp/log-view.el | 119 +- lisp/longlines.el | 463 + lisp/lpr.el | 28 +- lisp/ls-lisp.el | 115 +- lisp/macros.el | 33 +- lisp/mail/blessmail.el | 7 +- lisp/mail/emacsbug.el | 85 +- lisp/mail/feedmail.el | 13 +- lisp/mail/footnote.el | 15 +- lisp/mail/mail-extr.el | 787 +- lisp/mail/mail-hist.el | 7 +- lisp/mail/mail-utils.el | 80 +- lisp/mail/mailabbrev.el | 55 +- lisp/mail/mailalias.el | 48 +- lisp/mail/mailclient.el | 174 + lisp/mail/mailheader.el | 7 +- lisp/mail/mailpost.el | 1 + lisp/mail/metamail.el | 12 +- lisp/mail/mspools.el | 17 +- lisp/mail/reply2.pbm | Bin 81 -> 0 bytes lisp/mail/reporter.el | 11 +- lisp/mail/rfc2368.el | 47 +- lisp/mail/rfc822.el | 34 +- lisp/mail/rmail.el | 639 +- lisp/mail/rmailedit.el | 16 +- lisp/mail/rmailkwd.el | 15 +- lisp/mail/rmailmsc.el | 10 +- lisp/mail/rmailout.el | 35 +- lisp/mail/rmailsort.el | 12 +- lisp/mail/rmailsum.el | 310 +- lisp/mail/sendmail.el | 757 +- lisp/mail/smtpmail.el | 242 +- lisp/mail/supercite.el | 540 +- lisp/mail/uce.el | 20 +- lisp/mail/undigest.el | 33 +- lisp/mail/unrmail.el | 373 +- lisp/mail/vms-pmail.el | 7 +- lisp/makefile.nt | 282 - lisp/makefile.w32-in | 278 +- lisp/makesum.el | 7 +- lisp/man.el | 551 +- lisp/master.el | 29 +- lisp/menu-bar.el | 527 +- lisp/mh-e/.arch-inventory | 4 + lisp/mh-e/.cvsignore | 2 + lisp/mh-e/ChangeLog | 7197 +--- lisp/mh-e/ChangeLog.1 | 11416 ++++++ lisp/mh-e/mh-acros.el | 180 + lisp/mh-e/mh-alias.el | 501 +- lisp/mh-e/mh-buffers.el | 90 + lisp/mh-e/mh-comp.el | 1717 +- lisp/mh-e/mh-customize.el | 3990 +- lisp/mh-e/mh-e.el | 2143 +- lisp/mh-e/mh-exec.el | 263 + lisp/mh-e/mh-funcs.el | 314 +- lisp/mh-e/mh-gnus.el | 176 + lisp/mh-e/mh-identity.el | 341 +- lisp/mh-e/mh-inc.el | 109 + lisp/mh-e/mh-index.el | 1303 - lisp/mh-e/mh-init.el | 441 + lisp/mh-e/mh-junk.el | 442 + lisp/mh-e/mh-loaddefs.el | 930 - lisp/mh-e/mh-mime.el | 1265 +- lisp/mh-e/mh-pick.el | 309 - lisp/mh-e/mh-print.el | 259 + lisp/mh-e/mh-search.el | 1918 + lisp/mh-e/mh-seq.el | 1086 +- lisp/mh-e/mh-speed.el | 183 +- lisp/mh-e/mh-utils.el | 1957 +- lisp/mh-e/mh-xemacs-compat.el | 62 - lisp/midnight.el | 19 +- lisp/minibuf-eldef.el | 10 +- lisp/misc.el | 56 +- lisp/mouse-copy.el | 7 +- lisp/mouse-drag.el | 8 +- lisp/mouse-sel.el | 89 +- lisp/mouse.el | 691 +- lisp/msb.el | 16 +- lisp/mwheel.el | 28 +- lisp/net/ange-ftp.el | 663 +- lisp/net/browse-url.el | 385 +- lisp/net/eudc-bob.el | 14 +- lisp/net/eudc-export.el | 8 +- lisp/net/eudc-hotlist.el | 21 +- lisp/net/eudc-vars.el | 8 +- lisp/net/eudc.el | 160 +- lisp/net/eudcb-bbdb.el | 8 +- lisp/net/eudcb-ldap.el | 10 +- lisp/net/eudcb-mab.el | 133 + lisp/net/eudcb-ph.el | 10 +- lisp/net/goto-addr.el | 72 +- lisp/net/ldap.el | 39 +- lisp/net/net-utils.el | 61 +- lisp/net/netrc.el | 9 +- lisp/net/newsticker.el | 5410 +++ lisp/net/quickurl.el | 26 +- lisp/net/rcirc.el | 2012 + lisp/net/rcompile.el | 14 +- lisp/net/rlogin.el | 40 +- lisp/net/snmp-mode.el | 16 +- lisp/net/telnet.el | 63 +- lisp/net/tls.el | 163 + lisp/net/tramp-ftp.el | 61 +- lisp/net/tramp-smb.el | 506 +- lisp/net/tramp-util.el | 81 +- lisp/net/tramp-uu.el | 19 +- lisp/net/tramp-vc.el | 75 +- lisp/net/tramp.el | 4094 +- lisp/net/trampver.el | 42 + lisp/net/webjump.el | 239 +- lisp/net/zone-mode.el | 13 +- lisp/newcomment.el | 481 +- lisp/novice.el | 43 +- lisp/obsolete/auto-show.el | 1 + lisp/{progmodes => obsolete}/awk-mode.el | 10 +- lisp/{term => obsolete}/bg-mouse.el | 14 +- lisp/obsolete/cplus-md.el | 1078 - lisp/{ => obsolete}/fast-lock.el | 58 +- lisp/{emacs-lisp => obsolete}/float.el | 11 +- lisp/obsolete/hilit19.el | 102 +- lisp/obsolete/hscroll.el | 9 +- lisp/{international => obsolete}/iso-acc.el | 22 +- .../{international => obsolete}/iso-insert.el | 5 +- lisp/{international => obsolete}/iso-swed.el | 7 +- lisp/{term => obsolete}/keyswap.el | 7 +- lisp/{ => obsolete}/lazy-lock.el | 19 +- lisp/obsolete/mlsupport.el | 15 +- lisp/obsolete/ooutline.el | 12 +- lisp/{ => obsolete}/options.el | 9 +- lisp/obsolete/profile.el | 8 +- lisp/obsolete/rnews.el | 30 +- lisp/obsolete/rnewspost.el | 12 +- lisp/obsolete/rsz-mini.el | 13 +- lisp/obsolete/sc.el | 3 + lisp/{textmodes => obsolete}/scribe.el | 9 +- lisp/obsolete/sun-curs.el | 28 +- lisp/obsolete/sun-fns.el | 17 +- lisp/{international => obsolete}/swedish.el | 18 +- lisp/obsolete/uncompress.el | 16 +- lisp/obsolete/x-apollo.el | 7 +- lisp/obsolete/x-menu.el | 9 +- lisp/{textmodes => }/outline.el | 472 +- lisp/paren.el | 66 +- lisp/patcomp.el | 1 + lisp/paths.el | 33 +- lisp/pcmpl-cvs.el | 10 +- lisp/pcmpl-gnu.el | 8 +- lisp/pcmpl-linux.el | 8 +- lisp/pcmpl-rpm.el | 10 +- lisp/pcmpl-unix.el | 8 +- lisp/pcomplete.el | 75 +- lisp/pcvs-defs.el | 37 +- lisp/pcvs-info.el | 89 +- lisp/pcvs-parse.el | 65 +- lisp/pcvs-util.el | 52 +- lisp/pcvs.el | 486 +- lisp/pgg-def.el | 91 + lisp/pgg-gpg.el | 349 + lisp/pgg-parse.el | 515 + lisp/pgg-pgp.el | 261 + lisp/pgg-pgp5.el | 260 + lisp/pgg.el | 594 + lisp/play/5x5.el | 17 +- lisp/play/animate.el | 25 +- lisp/play/blackbox.el | 116 +- lisp/play/bruce.el | 8 +- lisp/play/cookie1.el | 7 +- lisp/play/decipher.el | 23 +- lisp/play/dissociate.el | 7 +- lisp/play/doctor.el | 63 +- lisp/play/dunnet.el | 30 +- lisp/play/fortune.el | 12 +- lisp/play/gamegrid.el | 164 +- lisp/play/gametree.el | 20 +- lisp/play/gomoku.el | 87 +- lisp/play/handwrite.el | 13 +- lisp/play/hanoi.el | 1 + lisp/play/landmark.el | 41 +- lisp/play/life.el | 19 +- lisp/play/meese.el | 1 + lisp/play/morse.el | 13 +- lisp/play/mpuz.el | 36 +- lisp/play/pong.el | 8 +- lisp/play/snake.el | 28 +- lisp/play/solitaire.el | 9 +- lisp/play/spook.el | 8 +- lisp/play/studly.el | 1 + lisp/play/tetris.el | 28 +- lisp/play/yow.el | 11 +- lisp/play/zone.el | 401 +- lisp/printing.el | 2735 +- lisp/progmodes/ada-mode.el | 1025 +- lisp/progmodes/ada-prj.el | 89 +- lisp/progmodes/ada-stmt.el | 126 +- lisp/progmodes/ada-xref.el | 842 +- lisp/progmodes/antlr-mode.el | 308 +- lisp/progmodes/asm-mode.el | 231 +- lisp/progmodes/autoconf.el | 17 +- lisp/progmodes/cc-align.el | 690 +- lisp/progmodes/cc-awk.el | 1014 + lisp/progmodes/cc-bytecomp.el | 398 +- lisp/progmodes/cc-cmds.el | 3501 +- lisp/progmodes/cc-compat.el | 24 +- lisp/progmodes/cc-defs.el | 2103 +- lisp/progmodes/cc-engine.el | 9320 +++-- lisp/progmodes/cc-fonts.el | 2369 ++ lisp/progmodes/cc-langs.el | 3424 +- lisp/progmodes/cc-menus.el | 165 +- lisp/progmodes/cc-mode.el | 878 +- lisp/progmodes/cc-styles.el | 305 +- lisp/progmodes/cc-subword.el | 312 + lisp/progmodes/cc-vars.el | 868 +- lisp/progmodes/cfengine.el | 252 + lisp/progmodes/cmacexp.el | 40 +- lisp/progmodes/compile.el | 3370 +- lisp/progmodes/cperl-mode.el | 3094 +- lisp/progmodes/cpp.el | 38 +- lisp/progmodes/cwarn.el | 14 +- lisp/progmodes/dcl-mode.el | 45 +- lisp/progmodes/delphi.el | 39 +- lisp/progmodes/ebnf-abn.el | 663 + lisp/progmodes/ebnf-bnf.el | 76 +- lisp/progmodes/ebnf-dtd.el | 1349 + lisp/progmodes/ebnf-ebx.el | 668 + lisp/progmodes/ebnf-iso.el | 51 +- lisp/progmodes/ebnf-otz.el | 58 +- lisp/progmodes/ebnf-yac.el | 85 +- lisp/progmodes/ebnf2ps.el | 944 +- lisp/progmodes/ebrowse.el | 143 +- lisp/progmodes/etags.el | 418 +- lisp/progmodes/executable.el | 117 +- lisp/progmodes/f90.el | 672 +- lisp/progmodes/flymake.el | 1737 + lisp/progmodes/fortran.el | 1499 +- lisp/progmodes/gdb-ui.el | 3214 ++ lisp/progmodes/glasses.el | 28 +- lisp/progmodes/grep.el | 656 + lisp/{ => progmodes}/gud.el | 1027 +- lisp/progmodes/hideif.el | 17 +- lisp/progmodes/hideshow.el | 401 +- lisp/progmodes/icon.el | 15 +- lisp/progmodes/idlw-complete-structtag.el | 244 + lisp/progmodes/idlw-help.el | 1198 + lisp/progmodes/idlw-rinfo.el | 3513 +- lisp/progmodes/idlw-shell.el | 2766 +- lisp/progmodes/idlw-toolbar.el | 197 +- lisp/progmodes/idlwave.el | 2731 +- lisp/progmodes/inf-lisp.el | 59 +- lisp/progmodes/ld-script.el | 150 + lisp/progmodes/m4-mode.el | 11 +- lisp/progmodes/make-mode.el | 639 +- lisp/progmodes/mantemp.el | 8 +- lisp/progmodes/meta-mode.el | 19 +- lisp/progmodes/mixal-mode.el | 1126 + lisp/progmodes/modula2.el | 8 +- lisp/progmodes/octave-hlp.el | 12 +- lisp/progmodes/octave-inf.el | 31 +- lisp/progmodes/octave-mod.el | 58 +- lisp/progmodes/pascal.el | 201 +- lisp/progmodes/perl-mode.el | 281 +- lisp/progmodes/prolog.el | 120 +- lisp/progmodes/ps-mode.el | 26 +- lisp/progmodes/python.el | 1774 + lisp/progmodes/scheme.el | 227 +- lisp/progmodes/sh-script.el | 771 +- lisp/progmodes/simula.el | 28 +- lisp/progmodes/sql.el | 2074 +- lisp/progmodes/tcl.el | 198 +- lisp/progmodes/vhdl-mode.el | 12818 +++++-- lisp/{ => progmodes}/which-func.el | 150 +- lisp/{ => progmodes}/xscheme.el | 310 +- lisp/ps-bdf.el | 45 +- lisp/ps-mule.el | 291 +- lisp/ps-print.el | 1017 +- lisp/recentf.el | 1891 +- lisp/rect.el | 22 +- lisp/register.el | 29 +- lisp/repeat.el | 11 +- lisp/replace.el | 1074 +- lisp/reposition.el | 8 +- lisp/resume.el | 7 +- lisp/reveal.el | 201 +- lisp/rfn-eshadow.el | 98 +- lisp/rot13.el | 7 +- lisp/ruler-mode.el | 788 +- lisp/s-region.el | 18 +- lisp/savehist.el | 384 + lisp/saveplace.el | 88 +- lisp/sb-dir-minus.xpm | 22 - lisp/sb-dir-plus.xpm | 22 - lisp/sb-image.el | 111 + lisp/scroll-all.el | 7 +- lisp/scroll-bar.el | 51 +- lisp/scroll-lock.el | 129 + lisp/select.el | 125 +- lisp/server.el | 110 +- lisp/ses.el | 1348 +- lisp/shadowfile.el | 107 +- lisp/shell.el | 133 +- lisp/simple.el | 2133 +- lisp/skeleton.el | 231 +- lisp/smerge-mode.el | 457 +- lisp/sort.el | 109 +- lisp/soundex.el | 7 +- lisp/speedbar.el | 2722 +- lisp/startup.el | 1240 +- lisp/strokes.el | 116 +- lisp/subr.el | 2785 +- lisp/tabify.el | 8 +- lisp/talk.el | 7 +- lisp/tar-mode.el | 512 +- lisp/tempo.el | 134 +- lisp/term.el | 1266 +- lisp/term/AT386.el | 7 +- lisp/term/README | 7 +- lisp/term/apollo.el | 6 +- lisp/term/bobcat.el | 9 +- lisp/term/cygwin.el | 10 + lisp/term/internal.el | 8 +- lisp/term/iris-ansi.el | 387 +- lisp/term/linux.el | 22 +- lisp/term/lk201.el | 1 + lisp/term/mac-win.el | 1542 +- lisp/term/news.el | 86 +- lisp/term/pc-win.el | 8 +- lisp/term/rxvt.el | 287 +- lisp/term/sun-mouse.el | 21 +- lisp/term/sun.el | 222 +- lisp/term/sup-mouse.el | 8 +- lisp/term/tty-colors.el | 25 +- lisp/term/tvi970.el | 154 +- lisp/term/vt100.el | 14 +- lisp/term/vt102.el | 5 +- lisp/term/vt125.el | 5 +- lisp/term/vt200.el | 9 +- lisp/term/vt201.el | 10 +- lisp/term/vt220.el | 10 +- lisp/term/vt240.el | 10 +- lisp/term/vt300.el | 10 +- lisp/term/vt320.el | 10 +- lisp/term/vt400.el | 10 +- lisp/term/vt420.el | 10 +- lisp/term/w32-win.el | 146 +- lisp/term/wyse50.el | 179 +- lisp/term/x-win.el | 333 +- lisp/term/xterm.el | 355 +- lisp/terminal.el | 24 +- lisp/textmodes/artist.el | 281 +- lisp/textmodes/bib-mode.el | 8 +- lisp/textmodes/bibtex.el | 6940 ++-- lisp/textmodes/conf-mode.el | 549 + lisp/textmodes/dns-mode.el | 200 + lisp/{ => textmodes}/enriched.el | 129 +- lisp/textmodes/fill.el | 419 +- lisp/textmodes/flyspell.el | 1962 +- lisp/textmodes/ispell.el | 1481 +- lisp/textmodes/makeinfo.el | 52 +- lisp/textmodes/nroff-mode.el | 11 +- lisp/textmodes/org.el | 12171 ++++++ lisp/textmodes/page-ext.el | 13 +- lisp/textmodes/page.el | 9 +- lisp/textmodes/paragraphs.el | 112 +- lisp/textmodes/picture.el | 119 +- lisp/textmodes/po.el | 31 +- lisp/textmodes/refbib.el | 100 +- lisp/textmodes/refer.el | 18 +- lisp/textmodes/refill.el | 135 +- lisp/textmodes/reftex-auc.el | 106 +- lisp/textmodes/reftex-cite.el | 956 +- lisp/textmodes/reftex-dcr.el | 422 +- lisp/textmodes/reftex-global.el | 382 +- lisp/textmodes/reftex-index.el | 1873 +- lisp/textmodes/reftex-parse.el | 875 +- lisp/textmodes/reftex-ref.el | 793 +- lisp/textmodes/reftex-sel.el | 497 +- lisp/textmodes/reftex-toc.el | 867 +- lisp/textmodes/reftex-vars.el | 503 +- lisp/textmodes/reftex.el | 1369 +- lisp/textmodes/sgml-mode.el | 489 +- lisp/textmodes/spell.el | 13 +- lisp/textmodes/table.el | 221 +- lisp/textmodes/tex-mode.el | 810 +- lisp/textmodes/texinfmt.el | 37 +- lisp/textmodes/texinfo.el | 140 +- lisp/textmodes/texnfo-upd.el | 56 +- lisp/textmodes/text-mode.el | 13 +- lisp/textmodes/tildify.el | 16 +- lisp/textmodes/two-column.el | 12 +- lisp/textmodes/underline.el | 7 +- lisp/thingatpt.el | 5 +- lisp/thumbs.el | 800 + lisp/time-stamp.el | 77 +- lisp/time.el | 145 +- lisp/timezone.el | 30 +- lisp/tmm.el | 123 +- lisp/{toolbar => }/tool-bar.el | 84 +- lisp/toolbar/alias.pbm | 3 - lisp/toolbar/close.pbm | Bin 81 -> 0 bytes lisp/toolbar/close.xpm | 32 - lisp/toolbar/copy.pbm | Bin 634 -> 0 bytes lisp/toolbar/copy.xpm | 37 - lisp/toolbar/cut.pbm | Bin 81 -> 0 bytes lisp/toolbar/cut.xpm | 32 - lisp/toolbar/execute.pbm | 3 - lisp/toolbar/gud-break.pbm | Bin 242 -> 0 bytes lisp/toolbar/gud-cont.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-display.pbm | Bin 242 -> 0 bytes lisp/toolbar/gud-display.xpm | 29 - lisp/toolbar/gud-down.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-finish.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-next.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-print.pbm | Bin 242 -> 0 bytes lisp/toolbar/gud-remove.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-run.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-step.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-until.pbm | Bin 155 -> 0 bytes lisp/toolbar/gud-up.pbm | Bin 155 -> 0 bytes lisp/toolbar/help.pbm | Bin 634 -> 0 bytes lisp/toolbar/help.xpm | 36 - lisp/toolbar/home.pbm | Bin 634 -> 0 bytes lisp/toolbar/home.xpm | 36 - lisp/toolbar/index.pbm | Bin 634 -> 0 bytes lisp/toolbar/index.xpm | 39 - lisp/toolbar/jump_to.pbm | Bin 634 -> 0 bytes lisp/toolbar/jump_to.xpm | 39 - lisp/toolbar/left_arrow.pbm | Bin 81 -> 0 bytes lisp/toolbar/left_arrow.xpm | 36 - lisp/toolbar/new.pbm | Bin 634 -> 0 bytes lisp/toolbar/new.xpm | 37 - lisp/toolbar/open.pbm | Bin 634 -> 0 bytes lisp/toolbar/open.xpm | 34 - lisp/toolbar/page-down.pbm | Bin 81 -> 0 bytes lisp/toolbar/paste.pbm | Bin 634 -> 0 bytes lisp/toolbar/paste.xpm | 35 - lisp/toolbar/preferences.pbm | Bin 634 -> 0 bytes lisp/toolbar/preferences.xpm | 35 - lisp/toolbar/print.pbm | Bin 634 -> 0 bytes lisp/toolbar/print.xpm | 36 - lisp/toolbar/refile.pbm | Bin 81 -> 0 bytes lisp/toolbar/repack.pbm | Bin 81 -> 0 bytes lisp/toolbar/reply-all.pbm | Bin 81 -> 0 bytes lisp/toolbar/reply-from.pbm | Bin 81 -> 0 bytes lisp/toolbar/reply-to.pbm | Bin 81 -> 0 bytes lisp/toolbar/rescan.pbm | Bin 81 -> 0 bytes lisp/toolbar/rescan.xpm | 35 - lisp/toolbar/right_arrow.pbm | Bin 81 -> 0 bytes lisp/toolbar/right_arrow.xpm | 36 - lisp/toolbar/save.pbm | Bin 634 -> 0 bytes lisp/toolbar/save.xpm | 35 - lisp/toolbar/saveas.pbm | Bin 634 -> 0 bytes lisp/toolbar/saveas.xpm | 35 - lisp/toolbar/search.pbm | Bin 634 -> 0 bytes lisp/toolbar/search.xpm | 38 - lisp/toolbar/show.pbm | Bin 81 -> 0 bytes lisp/toolbar/spell.pbm | Bin 81 -> 0 bytes lisp/toolbar/spell.xpm | 35 - lisp/toolbar/undo.pbm | Bin 81 -> 0 bytes lisp/toolbar/undo.xpm | 35 - lisp/toolbar/up_arrow.pbm | Bin 81 -> 0 bytes lisp/toolbar/up_arrow.xpm | 36 - lisp/toolbar/widen.pbm | 3 - lisp/tooltip.el | 330 +- lisp/tree-widget.el | 806 + lisp/tumme.el | 2634 ++ lisp/type-break.el | 466 +- lisp/uniquify.el | 312 +- lisp/unused.el | 46 - lisp/url/.cvsignore | 4 + lisp/url/ChangeLog | 1549 + lisp/url/url-about.el | 106 + lisp/url/url-auth.el | 319 + lisp/url/url-cache.el | 207 + lisp/url/url-cid.el | 66 + lisp/url/url-cookie.el | 471 + lisp/url/url-dav.el | 972 + lisp/url/url-dired.el | 101 + lisp/url/url-expand.el | 144 + lisp/url/url-file.el | 239 + lisp/url/url-ftp.el | 47 + lisp/url/url-gw.el | 271 + lisp/url/url-handlers.el | 264 + lisp/url/url-history.el | 190 + lisp/url/url-http.el | 1235 + lisp/url/url-https.el | 56 + lisp/url/url-imap.el | 83 + lisp/url/url-irc.el | 81 + lisp/url/url-ldap.el | 244 + lisp/url/url-mailto.el | 144 + lisp/url/url-methods.el | 151 + lisp/url/url-misc.el | 121 + lisp/url/url-news.el | 142 + lisp/url/url-nfs.el | 96 + lisp/url/url-ns.el | 107 + lisp/url/url-parse.el | 211 + lisp/url/url-privacy.el | 83 + lisp/url/url-proxy.el | 79 + lisp/url/url-util.el | 510 + lisp/url/url-vars.el | 403 + lisp/url/url.el | 277 + lisp/url/vc-dav.el | 184 + lisp/userlock.el | 8 +- lisp/vc-arch.el | 412 + lisp/vc-cvs.el | 506 +- lisp/vc-hooks.el | 316 +- lisp/vc-mcvs.el | 601 + lisp/vc-rcs.el | 523 +- lisp/vc-sccs.el | 72 +- lisp/vc-svn.el | 550 + lisp/vc.el | 1318 +- lisp/vcursor.el | 58 +- lisp/version.el | 17 +- lisp/view.el | 131 +- lisp/vms-patch.el | 77 +- lisp/vmsproc.el | 82 +- lisp/vt-control.el | 8 +- lisp/vt100-led.el | 7 +- lisp/w32-fns.el | 55 +- lisp/w32-vars.el | 16 +- lisp/wdired.el | 756 + lisp/whitespace.el | 258 +- lisp/wid-browse.el | 9 +- lisp/wid-edit.el | 615 +- lisp/widget.el | 69 +- lisp/windmove.el | 102 +- lisp/window.el | 449 +- lisp/winner.el | 102 +- lisp/woman.el | 512 +- lisp/x-dnd.el | 745 + lisp/xml.el | 985 +- lisp/xt-mouse.el | 88 +- lispintro/.cvsignore | 1 + lispintro/ChangeLog | 44 +- lispintro/Makefile.am | 2 + lispintro/Makefile.in | 7 +- lispintro/Makefile.old | 2 + lispintro/aclocal.m4 | 3 +- lispintro/configure.in | 4 + lispintro/emacs-lisp-intro.texi | 983 +- lispintro/makefile.w32-in | 73 + lispintro/missing | 4 +- lispintro/mkinstalldirs | 2 - lispintro/texinfo.tex | 2366 +- lispref/.arch-inventory | 4 + lispref/.cvsignore | 1 + lispref/ChangeLog | 3620 +- lispref/Makefile.in | 71 +- lispref/README | 4 +- lispref/abbrevs.texi | 186 +- lispref/advice.texi | 118 +- lispref/anti.texi | 472 +- lispref/back.texi | 4 + lispref/backups.texi | 111 +- lispref/book-spine.texinfo | 6 +- lispref/buffers.texi | 322 +- lispref/commands.texi | 714 +- lispref/compile.texi | 241 +- lispref/configure.in | 4 + lispref/control.texi | 125 +- lispref/customize.texi | 261 +- lispref/debugging.texi | 216 +- lispref/display.texi | 2898 +- lispref/doclicense.texi | 213 +- lispref/edebug.texi | 250 +- lispref/elisp-covers.texi | 4 + lispref/elisp.texi | 402 +- lispref/errors.texi | 47 +- lispref/eval.texi | 85 +- lispref/files.texi | 715 +- lispref/frames.texi | 805 +- lispref/front-cover-1.texi | 4 + lispref/functions.texi | 284 +- lispref/gpl.texi | 8 +- lispref/hash.texi | 81 +- lispref/help.texi | 150 +- lispref/hooks.texi | 258 +- lispref/index.perm | 38 - lispref/{index.unperm => index.texi} | 0 lispref/internals.texi | 160 +- lispref/intro.texi | 54 +- lispref/keymaps.texi | 609 +- lispref/lay-flat.texi | 4 + lispref/lists.texi | 440 +- lispref/loading.texi | 235 +- lispref/locals.texi | 90 +- lispref/macros.texi | 123 +- lispref/makefile.w32-in | 122 + lispref/maps.texi | 7 +- lispref/markers.texi | 80 +- lispref/minibuf.texi | 896 +- lispref/mkinstalldirs | 2 - lispref/modes.texi | 2167 +- lispref/nonascii.texi | 454 +- lispref/numbers.texi | 302 +- lispref/objects.texi | 386 +- lispref/os.texi | 682 +- lispref/permute-index | 124 - lispref/positions.texi | 185 +- lispref/processes.texi | 1316 +- lispref/searching.texi | 775 +- lispref/sequences.texi | 88 +- lispref/streams.texi | 71 +- lispref/strings.texi | 330 +- lispref/symbols.texi | 37 +- lispref/syntax.texi | 195 +- lispref/text.texi | 874 +- lispref/tindex.pl | 7 +- lispref/tips.texi | 455 +- lispref/two.el | 2 + lispref/variables.texi | 442 +- lispref/vol1.texi | 58 +- lispref/vol2.texi | 59 +- lispref/windows.texi | 607 +- lwlib/COPYING | 6 +- lwlib/ChangeLog | 141 +- lwlib/Makefile.in | 7 +- lwlib/lwlib-Xaw.c | 24 +- lwlib/lwlib-Xaw.h | 3 + lwlib/lwlib-Xlw.c | 56 +- lwlib/lwlib-Xlw.h | 3 + lwlib/lwlib-Xm.c | 56 +- lwlib/lwlib-Xm.h | 25 + lwlib/lwlib-int.h | 3 + lwlib/lwlib-utils.c | 7 +- lwlib/lwlib-utils.h | 3 + lwlib/lwlib.c | 6 +- lwlib/lwlib.h | 5 + lwlib/xlwmenu.c | 273 +- lwlib/xlwmenu.h | 26 +- lwlib/xlwmenuP.h | 29 + m4/getopt.m4 | 82 + mac/COPYING | 6 +- mac/ChangeLog | 213 +- mac/Emacs.app/Contents/.cvsignore | 1 + mac/Emacs.app/Contents/Info.plist | 92 +- mac/Emacs.app/Contents/Resources/Emacs.rsrc | Bin 6058 -> 0 bytes .../Resources/English.lproj/InfoPlist.strings | 4 +- mac/INSTALL | 94 +- mac/README | 43 +- mac/cw6-mcp.xml | 6 +- mac/inc/alloca.h | 9 +- mac/inc/config.h | 1280 +- mac/inc/defs-cw6.h | 9 +- mac/inc/dirent.h | 10 +- mac/inc/epaths.h | 15 +- mac/inc/grp.h | 36 + mac/inc/m-mac.h | 31 +- mac/inc/pwd.h | 10 +- mac/inc/s-mac.h | 93 +- mac/inc/sys/file.h | 10 +- mac/inc/sys/ioctl.h | 10 +- mac/inc/sys/param.h | 10 +- mac/inc/sys/stat.h | 10 +- mac/inc/sys/time.h | 24 +- mac/inc/sys/types.h | 10 +- mac/inc/termio.h | 10 +- mac/inc/utime.h | 9 +- mac/inc/utsname.h | 9 +- mac/make-package | 29 +- mac/makefile.MPW | 285 +- mac/src/Emacs.r | 29 +- mac/src/EmacsMPW.r | 21 +- mac/src/chdir.c | 10 +- make-dist | 93 +- man/.cvsignore | 1 + man/ChangeLog | 4323 ++- man/Makefile.in | 107 +- man/abbrevs.texi | 27 +- man/ack.texi | 208 +- man/ada-mode.texi | 9 +- man/anti.texi | 292 +- man/autotype.texi | 41 +- man/back.texi | 4 + man/basic.texi | 264 +- man/buffers.texi | 182 +- man/building.texi | 623 +- man/calc.texi | 7819 ++-- man/calendar.texi | 321 +- man/cc-mode.texi | 9279 +++-- man/cl.texi | 46 +- man/cmdargs.texi | 332 +- man/commands.texi | 69 +- man/custom.texi | 1453 +- man/dired-x.texi | 118 +- man/dired.texi | 211 +- man/display.texi | 675 +- man/doclicense.texi | 208 +- man/ebrowse.texi | 9 +- man/ediff.texi | 55 +- man/emacs-mime.texi | 2310 +- lispref/calendar.texi => man/emacs-xtra.texi | 445 +- man/emacs.texi | 586 +- man/entering.texi | 87 +- man/eshell.texi | 207 +- man/eudc.texi | 11 +- man/faq.texi | 932 +- man/files.texi | 716 +- man/fixit.texi | 58 +- man/flymake.texi | 756 + man/forms.texi | 9 +- man/frames.texi | 400 +- man/glossary.texi | 143 +- man/gnu.texi | 43 +- man/gnus-faq.texi | 2610 +- man/gnus.texi | 16011 +++++--- man/help.texi | 378 +- man/idlwave.texi | 2358 +- man/indent.texi | 119 +- man/info.texi | 825 +- man/killing.texi | 217 +- man/kmacro.texi | 573 + man/m-x.texi | 19 +- man/macos.texi | 419 +- man/maintaining.texi | 54 +- man/major.texi | 45 +- man/makefile.w32-in | 368 + man/mark.texi | 123 +- man/message.texi | 1163 +- man/mh-e.texi | 16 +- man/mini.texi | 134 +- man/misc.texi | 524 +- man/msdog.texi | 105 +- man/mule.texi | 311 +- man/newsticker.texi | 286 + man/org.texi | 3320 ++ man/pcl-cvs.texi | 72 +- man/pgg.texi | 423 + man/picture.texi | 44 +- man/programs.texi | 1073 +- man/reftex.texi | 1933 +- man/regs.texi | 28 +- man/rmail.texi | 352 +- man/sc.texi | 13 +- man/screen.texi | 79 +- man/search.texi | 554 +- man/sending.texi | 77 +- man/ses.texi | 185 +- man/sieve.texi | 364 + man/smtpmail.texi | 412 + man/speedbar.texi | 74 +- man/texinfo.tex | 16 +- man/text.texi | 1008 +- man/tramp.texi | 1396 +- man/trampver.texi | 60 + man/trouble.texi | 104 +- man/url.texi | 1192 + man/vip.texi | 13 +- man/viper.texi | 88 +- man/widget.texi | 112 +- man/windows.texi | 83 +- man/woman.texi | 41 +- man/xresources.texi | 364 +- mkinstalldirs | 2 - msdos/COPYING | 6 +- msdos/ChangeLog | 94 +- msdos/README | 3 +- msdos/is_exec.c | 3 + msdos/mainmake | 9 +- msdos/mainmake.v2 | 111 +- msdos/sed1.inp | 6 +- msdos/sed1v2.inp | 14 +- msdos/sed1x.inp | 2 + msdos/sed2.inp | 6 +- msdos/sed2v2.inp | 19 +- msdos/sed2x.inp | 5 +- msdos/sed3.inp | 6 +- msdos/sed3v2.inp | 11 +- msdos/sed4.inp | 5 +- msdos/sed5x.inp | 5 +- msdos/sed6.inp | 18 +- msdos/sedleim.inp | 13 +- msdos/sedlisp.inp | 11 +- msdos/sigaction.c | 2 + nt/.arch-inventory | 3 + nt/.cvsignore | 5 + nt/COPYING | 6 +- nt/ChangeLog | 205 +- nt/INSTALL | 187 +- nt/README | 2 +- nt/addpm.c | 9 +- nt/addsection.c | 38 +- nt/cmdproxy.c | 9 +- nt/config.nt | 20 +- nt/configure.bat | 122 +- nt/ddeclient.c | 9 +- nt/ebuild.bat | 3 - nt/emacs.rc | 12 +- nt/envadd.bat | 48 + nt/fast-install.bat | 1 - nt/ftime-nostartup.bat | 4 + nt/ftime.bat | 4 + nt/gmake.defs | 21 +- nt/icons/emacs.ico | Bin 766 -> 22486 bytes nt/icons/emacs21.ico | Bin 0 -> 766 bytes nt/inc/arpa/inet.h | 3 + nt/inc/grp.h | 36 + nt/inc/netdb.h | 3 + nt/inc/netinet/in.h | 3 + nt/inc/pwd.h | 7 + nt/inc/sys/dir.h | 3 + nt/inc/sys/file.h | 3 + nt/inc/sys/ioctl.h | 3 + nt/inc/sys/param.h | 3 + nt/inc/sys/socket.h | 11 +- nt/inc/sys/time.h | 3 + nt/inc/unistd.h | 3 + nt/install.bat | 8 - nt/makefile.def | 230 - nt/makefile.nt | 212 - nt/makefile.w32-in | 40 +- nt/multi-install-info.bat | 45 + nt/nmake.defs | 16 +- nt/paths.h | 22 +- nt/preprep.c | 9 +- nt/runemacs.c | 25 +- oldXMenu/Activate.c | 36 +- oldXMenu/AddPane.c | 5 +- oldXMenu/AddSel.c | 5 +- oldXMenu/ChangeLog | 18 +- oldXMenu/ChgPane.c | 5 +- oldXMenu/ChgSel.c | 5 +- oldXMenu/Create.c | 5 +- oldXMenu/DelPane.c | 5 +- oldXMenu/DelSel.c | 5 +- oldXMenu/Destroy.c | 5 +- oldXMenu/Error.c | 4 +- oldXMenu/EvHand.c | 4 +- oldXMenu/FindPane.c | 5 +- oldXMenu/FindSel.c | 5 +- oldXMenu/Imakefile | 3 + oldXMenu/InsPane.c | 5 +- oldXMenu/InsSel.c | 5 +- oldXMenu/Internal.c | 4 +- oldXMenu/Locate.c | 5 +- oldXMenu/Post.c | 5 +- oldXMenu/Recomp.c | 5 +- oldXMenu/SetAEQ.c | 5 +- oldXMenu/SetFrz.c | 5 +- oldXMenu/SetPane.c | 5 +- oldXMenu/SetSel.c | 5 +- oldXMenu/X10.h | 5 +- oldXMenu/XCrAssoc.c | 5 +- oldXMenu/XDelAssoc.c | 4 +- oldXMenu/XDestAssoc.c | 4 +- oldXMenu/XLookAssoc.c | 4 +- oldXMenu/XMakeAssoc.c | 4 +- oldXMenu/XMenu.h | 6 +- oldXMenu/XMenuInt.h | 5 +- oldXMenu/copyright.h | 5 +- oldXMenu/insque.c | 5 + src/.arch-inventory | 9 + src/.cvsignore | 11 +- src/.gdbinit | 590 +- src/COPYING | 6 +- src/ChangeLog | 14799 +++++++- src/ChangeLog.1 | 2 + src/ChangeLog.2 | 2 + src/ChangeLog.3 | 2 + src/ChangeLog.4 | 2 + src/ChangeLog.5 | 12 +- src/ChangeLog.6 | 6 +- src/ChangeLog.7 | 2 + src/ChangeLog.8 | 14 +- src/ChangeLog.9 | 2 + src/Makefile.in | 283 +- src/abbrev.c | 27 +- src/acldef.h | 3 + src/alloc.c | 2168 +- src/alloca.c | 64 +- src/alloca.s | 350 - src/atimer.c | 26 +- src/atimer.h | 16 +- src/blockinput.h | 36 +- src/buffer.c | 1306 +- src/buffer.h | 179 +- src/bytecode.c | 192 +- src/callint.c | 220 +- src/callproc.c | 110 +- src/casefiddle.c | 107 +- src/casetab.c | 34 +- src/category.c | 37 +- src/category.h | 12 +- src/ccl.c | 149 +- src/ccl.h | 26 +- src/charset.c | 118 +- src/charset.h | 53 +- src/chpdef.h | 3 + src/cm.c | 10 +- src/cm.h | 10 +- src/cmds.c | 20 +- src/coding.c | 904 +- src/coding.h | 56 +- src/commands.h | 26 +- src/composite.c | 150 +- src/composite.h | 15 +- src/config.in | 153 +- src/cxux-crt0.s | 5 +- src/data.c | 303 +- src/dired.c | 172 +- src/dispextern.h | 976 +- src/dispnew.c | 875 +- src/disptab.h | 9 +- src/doc.c | 194 +- src/doprnt.c | 9 +- src/dosfns.c | 17 +- src/dosfns.h | 11 +- src/ecrt0.c | 10 +- src/editfns.c | 735 +- src/emacs.c | 411 +- src/epaths.in | 11 +- src/eval.c | 577 +- src/fileio.c | 993 +- src/filelock.c | 23 +- src/filemode.c | 8 +- src/firstfile.c | 8 +- src/floatfns.c | 20 +- src/fns.c | 786 +- src/fontset.c | 455 +- src/fontset.h | 20 +- src/frame.c | 2036 +- src/frame.h | 473 +- src/fringe.c | 1536 + src/getloadavg.c | 55 +- src/getpagesize.h | 10 +- src/gmalloc.c | 54 +- src/gnu.h | 219 +- src/gtkutil.c | 1489 +- src/gtkutil.h | 50 +- src/hftctl.c | 3 + src/image.c | 8514 +++++ src/indent.c | 243 +- src/indent.h | 9 +- src/insdel.c | 249 +- src/intervals.c | 228 +- src/intervals.h | 91 +- src/ioctl.h | 3 + src/keyboard.c | 2336 +- src/keyboard.h | 39 +- src/keymap.c | 807 +- src/keymap.h | 20 +- src/lastfile.c | 11 +- src/lisp.h | 741 +- src/lread.c | 336 +- src/m/7300.h | 9 +- src/m/acorn.h | 9 +- src/m/alliant-2800.h | 9 +- src/m/alliant.h | 10 +- src/m/alliant1.h | 3 + src/m/alliant4.h | 3 + src/m/alpha.h | 10 +- src/m/altos.h | 10 +- src/m/amdahl.h | 10 +- src/m/amdx86-64.h | 44 +- src/m/apollo.h | 10 +- src/m/arm.h | 9 +- src/m/att3b.h | 9 +- src/m/aviion-intel.h | 3 + src/m/aviion.h | 9 +- src/m/celerity.h | 10 +- src/m/clipper.h | 10 +- src/m/cnvrgnt.h | 9 +- src/m/convex.h | 10 +- src/m/cydra5.h | 10 +- src/m/delta88k.h | 10 +- src/m/dpx2.h | 9 +- src/m/dual.h | 10 +- src/m/elxsi.h | 10 +- src/m/ews4800.h | 10 +- src/m/f301.h | 3 + src/m/gould-np1.h | 8 +- src/m/gould.h | 9 +- src/m/hp800.h | 16 +- src/m/hp9000s300.h | 9 +- src/m/i860.h | 10 +- src/m/ia64.h | 27 +- src/m/ibm370aix.h | 10 +- src/m/ibmps2-aix.h | 9 +- src/m/ibmrs6000.h | 11 +- src/m/ibmrs6000.inp | 2 + src/m/ibmrt-aix.h | 10 +- src/m/ibmrt.h | 9 +- src/m/ibms390.h | 10 +- src/m/intel386.h | 9 +- src/m/iris4d.h | 16 +- src/m/irist.h | 10 +- src/m/is386.h | 3 + src/m/isi-ov.h | 10 +- src/m/m68k.h | 10 +- src/m/macppc.h | 23 +- src/m/masscomp.h | 9 +- src/m/mega68.h | 9 +- src/m/mg1.h | 9 +- src/m/mips-siemens.h | 14 +- src/m/mips.h | 15 +- src/m/mips4.h | 3 + src/m/ncr386.h | 3 + src/m/news-r6.h | 6 +- src/m/news-risc.h | 3 + src/m/news.h | 9 +- src/m/next.h | 9 +- src/m/nh3000.h | 9 +- src/m/nh4000.h | 9 +- src/m/ns16000.h | 9 +- src/m/ns32000.h | 10 +- src/m/nu.h | 9 +- src/m/orion.h | 9 +- src/m/orion105.h | 9 +- src/m/paragon.h | 3 + src/m/pfa50.h | 10 +- src/m/plexus.h | 9 +- src/m/pmax.h | 3 + src/m/powermac.h | 9 +- src/m/powerpcle.h | 8 +- src/m/pyramid.h | 10 +- src/m/pyrmips.h | 2 + src/m/sequent-ptx.h | 9 +- src/m/sequent.h | 10 +- src/m/sparc.h | 9 +- src/m/sps7.h | 10 +- src/m/sr2k.h | 16 +- src/m/stride.h | 10 +- src/m/sun1.h | 10 +- src/m/sun2.h | 10 +- src/m/sun3-68881.h | 3 + src/m/sun3-fpa.h | 3 + src/m/sun3-soft.h | 3 + src/m/sun3.h | 3 + src/m/sun386.h | 9 +- src/m/symmetry.h | 10 +- src/m/tad68k.h | 9 +- src/m/tahoe.h | 9 +- src/m/tandem-s2.h | 3 + src/m/targon31.h | 10 +- src/m/tek4300.h | 9 +- src/m/tekxd88.h | 9 +- src/m/template.h | 10 +- src/m/tower32.h | 9 +- src/m/tower32v3.h | 9 +- src/m/ustation.h | 10 +- src/m/vax.h | 10 +- src/m/wicat.h | 9 +- src/m/windowsnt.h | 10 +- src/m/xps100.h | 10 +- src/mac.c | 3402 +- src/macfns.c | 7839 +--- src/macgui.h | 245 +- src/macmenu.c | 819 +- src/macros.c | 70 +- src/macros.h | 17 +- src/macselect.c | 1460 + src/macterm.c | 16392 ++++---- src/macterm.h | 346 +- src/makefile.nt | 1230 - src/makefile.w32-in | 86 +- src/marker.c | 143 +- src/md5.c | 10 +- src/md5.h | 10 +- src/mem-limits.h | 24 +- src/minibuf.c | 789 +- src/mktime.c | 42 +- src/msdos.c | 224 +- src/msdos.h | 30 +- src/ndir.h | 3 + src/param.h | 3 + src/point.h | 3 + src/pre-crt0.c | 3 + src/prefix-args.c | 9 +- src/print.c | 241 +- src/process.c | 1848 +- src/process.h | 30 +- src/puresize.h | 15 +- src/ralloc.c | 15 +- src/regex.c | 447 +- src/regex.h | 59 +- src/region-cache.c | 15 +- src/region-cache.h | 10 +- src/s/386-ix.h | 3 + src/s/386bsd.h | 3 + src/s/aix3-1.h | 9 +- src/s/aix3-2-5.h | 3 + src/s/aix3-2.h | 3 + src/s/aix4-1.h | 3 + src/s/aix4-2.h | 21 + src/s/aix4.h | 3 + src/s/bsd386.h | 3 + src/s/bsd4-1.h | 10 +- src/s/bsd4-2.h | 10 +- src/s/bsd4-3.h | 9 +- src/s/bsdos2-1.h | 3 + src/s/bsdos2.h | 3 + src/s/bsdos3.h | 3 + src/s/bsdos4.h | 3 + src/s/cxux.h | 9 +- src/s/cxux7.h | 3 + src/s/cygwin.h | 20 +- src/s/darwin.h | 65 +- src/s/dgux.h | 10 +- src/s/dgux4.h | 8 +- src/s/dgux5-4-3.h | 9 +- src/s/dgux5-4r2.h | 9 +- src/s/domain.h | 3 + src/s/esix.h | 3 + src/s/esix5r4.h | 3 + src/s/freebsd.h | 22 +- src/s/gnu-linux.h | 34 +- src/s/gnu.h | 10 +- src/s/hiuxmpp.h | 2 + src/s/hiuxwe2.h | 2 + src/s/hpux.h | 10 +- src/s/hpux10-20.h | 13 + src/s/hpux10.h | 9 +- src/s/hpux11.h | 6 +- src/s/hpux8.h | 3 + src/s/hpux9-x11r4.h | 2 + src/s/hpux9.h | 2 + src/s/hpux9shr.h | 3 + src/s/hpux9shxr4.h | 2 + src/s/iris3-5.h | 10 +- src/s/iris3-6.h | 10 +- src/s/irix3-3.h | 10 +- src/s/irix4-0.h | 3 + src/s/irix5-0.h | 3 + src/s/irix5-2.h | 3 + src/s/irix6-0.h | 3 + src/s/irix6-5.h | 3 + src/s/isc2-2.h | 3 + src/s/isc3-0.h | 3 + src/s/isc4-0.h | 3 + src/s/isc4-1.h | 3 + src/s/lynxos.h | 10 +- src/s/mach-bsd4-3.h | 3 + src/s/ms-w32.h | 16 +- src/s/msdos.h | 10 +- src/s/netbsd.h | 21 +- src/s/newsos5.h | 10 +- src/s/newsos6.h | 3 + src/s/nextstep.h | 10 +- src/s/openbsd.h | 32 +- src/s/osf1.h | 3 + src/s/osf5-0.h | 3 + src/s/ptx.h | 10 +- src/s/ptx4-2.h | 3 + src/s/ptx4.h | 3 + src/s/riscix1-1.h | 9 +- src/s/riscix12.h | 9 +- src/s/riscos5.h | 3 + src/s/rtu.h | 10 +- src/s/sco4.h | 10 +- src/s/sco5.h | 9 +- src/s/sol2-3.h | 3 + src/s/sol2-4.h | 2 + src/s/sol2-5.h | 3 + src/s/sol2-6.h | 3 + src/s/sol2.h | 3 + src/s/sunos4-0.h | 3 + src/s/sunos4-1.h | 3 + src/s/sunos413.h | 3 + src/s/sunos4shr.h | 3 + src/s/template.h | 10 +- src/s/ultrix4-3.h | 3 + src/s/umax.h | 10 +- src/s/umips.h | 3 + src/s/unipl5-2.h | 10 +- src/s/unixware.h | 3 + src/s/usg5-0.h | 10 +- src/s/usg5-2-2.h | 10 +- src/s/usg5-2.h | 10 +- src/s/usg5-3.h | 10 +- src/s/usg5-4-2.h | 3 + src/s/usg5-4-3.h | 3 + src/s/usg5-4.h | 10 +- src/s/ux4800.h | 3 + src/s/uxpds.h | 3 + src/s/uxpv.h | 3 + src/s/vms.h | 18 +- src/s/vms4-0.h | 3 + src/s/vms4-2.h | 2 + src/s/vms4-4.h | 4 + src/s/vms5-5.h | 5 + src/s/windows95.h | 3 + src/s/xenix.h | 10 +- src/scroll.c | 62 +- src/search.c | 529 +- src/sheap.c | 103 + src/sound.c | 10 +- src/strftime.c | 1596 +- src/sunfns.c | 18 +- src/syntax.c | 512 +- src/syntax.h | 52 +- src/sysdep.c | 253 +- src/sysselect.h | 17 +- src/syssignal.h | 45 +- src/systime.h | 21 +- src/systty.h | 10 +- src/syswait.h | 10 +- src/term.c | 588 +- src/termcap.c | 60 +- src/termchar.h | 10 +- src/termhooks.h | 69 +- src/terminfo.c | 10 +- src/termopts.h | 10 +- src/textprop.c | 111 +- src/tparam.c | 24 +- src/uaf.h | 9 +- src/undo.c | 239 +- src/unexaix.c | 10 +- src/unexalpha.c | 11 +- src/unexapollo.c | 10 +- src/unexconvex.c | 9 +- src/unexcw.c | 306 + src/unexec.c | 207 +- src/unexelf.c | 69 +- src/unexenix.c | 10 +- src/unexhp9k800.c | 3 + src/unexmacosx.c | 308 +- src/unexmips.c | 10 +- src/unexnext.c | 10 +- src/unexsni.c | 11 +- src/unexsol.c | 3 + src/unexsunos4.c | 10 +- src/unexw32.c | 71 +- src/vlimit.h | 3 + src/vm-limit.c | 10 +- src/w16select.c | 10 +- src/w32.c | 144 +- src/w32.h | 31 +- src/w32bdf.c | 25 +- src/w32bdf.h | 9 +- src/w32console.c | 301 +- src/w32fns.c | 8378 +---- src/w32gui.h | 56 +- src/w32heap.c | 13 +- src/w32heap.h | 18 +- src/w32inevt.c | 47 +- src/w32inevt.h | 13 +- src/w32menu.c | 283 +- src/w32proc.c | 30 +- src/w32reg.c | 73 +- src/w32select.c | 1071 +- src/w32term.c | 9615 ++--- src/w32term.h | 196 +- src/w32xfns.c | 10 +- src/widget.c | 73 +- src/widget.h | 9 +- src/widgetprv.h | 9 +- src/window.c | 2623 +- src/window.h | 518 +- src/xdisp.c | 31079 ++++++++++------ src/xfaces.c | 1768 +- src/xfns.c | 11495 ++---- src/xmenu.c | 747 +- src/xrdb.c | 16 +- src/xselect.c | 857 +- src/xsmfns.c | 185 +- src/xterm.c | 11665 ++---- src/xterm.h | 304 +- update-subdirs | 14 +- vms/README | 5 + vms/make-mms-derivative.el | 140 + vpath.sed | 2 + 2401 files changed, 602080 insertions(+), 275312 deletions(-) create mode 100644 .arch-inventory delete mode 100755 INSTALL-CVS create mode 100644 INSTALL.CVS create mode 100644 admin/FOR-RELEASE create mode 100644 admin/notes/BRANCH create mode 100644 admin/notes/cpp create mode 100644 admin/notes/exit-value create mode 100644 admin/notes/trailing-whitespace create mode 100644 admin/notes/years create mode 100644 etc/.arch-inventory create mode 100644 etc/GNUS-NEWS delete mode 100644 etc/ORDERS.EUROPE delete mode 100644 etc/ORDERS.JAPAN create mode 100644 etc/TUTORIAL.cn create mode 100644 etc/TUTORIAL.pt_BR create mode 100644 etc/TUTORIAL.zh create mode 100644 etc/compilation.txt delete mode 100644 etc/e/eterm create mode 100644 etc/e/eterm-color create mode 100644 etc/e/eterm-color.ti delete mode 100644 etc/e/eterm.ti create mode 100644 etc/emacs-buffer.gdb create mode 100644 etc/emacs.py create mode 100644 etc/gnus-logo.eps create mode 100644 etc/gnus-refcard.tex create mode 100644 etc/grep.txt create mode 100644 etc/images/README rename {lisp/toolbar => etc/images}/attach.pbm (100%) create mode 100644 etc/images/back-arrow.pbm create mode 100644 etc/images/back-arrow.xpm rename {lisp/toolbar => etc/images}/cancel.pbm (100%) rename {lisp/toolbar => etc/images}/cancel.xpm (100%) create mode 100644 etc/images/close.pbm create mode 100644 etc/images/close.xpm create mode 100644 etc/images/copy.pbm create mode 100644 etc/images/copy.xpm create mode 100644 etc/images/cut.pbm create mode 100644 etc/images/cut.xpm create mode 100644 etc/images/diropen.pbm create mode 100644 etc/images/diropen.xpm create mode 100644 etc/images/execute.pbm rename {lisp/toolbar => etc/images}/execute.xpm (100%) rename {lisp/toolbar => etc/images}/exit.pbm (100%) rename {lisp/toolbar => etc/images}/exit.xpm (100%) create mode 100644 etc/images/ezimage/bits.xpm create mode 100644 etc/images/ezimage/bitsbang.xpm create mode 100644 etc/images/ezimage/box-minus.xpm create mode 100644 etc/images/ezimage/box-plus.xpm create mode 100644 etc/images/ezimage/box.xpm create mode 100644 etc/images/ezimage/checkmark.xpm create mode 100644 etc/images/ezimage/dir-minus.xpm create mode 100644 etc/images/ezimage/dir-plus.xpm rename lisp/sb-dir.xpm => etc/images/ezimage/dir.xpm (51%) create mode 100644 etc/images/ezimage/doc-minus.xpm create mode 100644 etc/images/ezimage/doc-plus.xpm create mode 100644 etc/images/ezimage/doc.xpm create mode 100644 etc/images/ezimage/info.xpm create mode 100644 etc/images/ezimage/key.xpm create mode 100644 etc/images/ezimage/label.xpm create mode 100644 etc/images/ezimage/lock.xpm rename lisp/sb-mail.xpm => etc/images/ezimage/mail.xpm (100%) rename lisp/sb-pg-minus.xpm => etc/images/ezimage/page-minus.xpm (67%) rename lisp/sb-pg-plus.xpm => etc/images/ezimage/page-plus.xpm (67%) rename lisp/sb-pg.xpm => etc/images/ezimage/page.xpm (68%) rename lisp/sb-tag-gt.xpm => etc/images/ezimage/tag-gt.xpm (100%) rename lisp/sb-tag-minus.xpm => etc/images/ezimage/tag-minus.xpm (100%) rename lisp/sb-tag-plus.xpm => etc/images/ezimage/tag-plus.xpm (100%) rename lisp/sb-tag-type.xpm => etc/images/ezimage/tag-type.xpm (100%) rename lisp/sb-tag-v.xpm => etc/images/ezimage/tag-v.xpm (100%) rename lisp/sb-tag.xpm => etc/images/ezimage/tag.xpm (100%) create mode 100644 etc/images/ezimage/unlock.xpm rename lisp/toolbar/fld_open.pbm => etc/images/fld-open.pbm (100%) rename lisp/toolbar/fld_open.xpm => etc/images/fld-open.xpm (100%) create mode 100644 etc/images/fwd-arrow.pbm create mode 100644 etc/images/fwd-arrow.xpm create mode 100644 etc/images/gnus/bar.xbm create mode 100644 etc/images/gnus/bar.xpm rename {lisp => etc/images}/gnus/catchup.pbm (100%) create mode 100644 etc/images/gnus/catchup.xpm rename {lisp => etc/images}/gnus/cu-exit.pbm (100%) create mode 100644 etc/images/gnus/cu-exit.xpm create mode 100644 etc/images/gnus/dead.xpm rename {lisp => etc/images}/gnus/describe-group.pbm (100%) create mode 100644 etc/images/gnus/describe-group.xpm rename {lisp => etc/images}/gnus/exit-gnus.pbm (100%) create mode 100644 etc/images/gnus/exit-gnus.xpm rename {lisp => etc/images}/gnus/exit-summ.pbm (100%) create mode 100644 etc/images/gnus/exit-summ.xpm rename {lisp => etc/images}/gnus/followup.pbm (100%) create mode 100644 etc/images/gnus/followup.xpm rename {lisp => etc/images}/gnus/fuwo.pbm (100%) create mode 100644 etc/images/gnus/fuwo.xpm rename {lisp => etc/images}/gnus/get-news.pbm (100%) create mode 100644 etc/images/gnus/get-news.xpm rename {lisp => etc/images}/gnus/gnntg.pbm (100%) create mode 100644 etc/images/gnus/gnntg.xpm rename etc/{ => images/gnus}/gnus-pointer.xbm (63%) rename etc/{ => images/gnus}/gnus-pointer.xpm (86%) create mode 100644 etc/images/gnus/gnus.xbm rename etc/{ => images/gnus}/gnus.xpm (99%) create mode 100644 etc/images/gnus/important.xpm rename {lisp => etc/images}/gnus/kill-group.pbm (100%) create mode 100644 etc/images/gnus/kill-group.xpm rename {lisp => etc/images}/gnus/mail-reply.pbm (100%) create mode 100644 etc/images/gnus/mail-reply.xpm rename {lisp => etc/images}/gnus/next-ur.pbm (100%) create mode 100644 etc/images/gnus/next-ur.xpm rename {lisp => etc/images}/gnus/post.pbm (100%) create mode 100644 etc/images/gnus/post.xpm rename {lisp => etc/images}/gnus/prev-ur.pbm (100%) create mode 100644 etc/images/gnus/prev-ur.xpm create mode 100644 etc/images/gnus/preview.xbm create mode 100644 etc/images/gnus/preview.xpm create mode 100644 etc/images/gnus/receipt.xpm rename {lisp => etc/images}/gnus/reply-wo.pbm (100%) create mode 100644 etc/images/gnus/reply-wo.xpm rename {lisp => etc/images}/gnus/reply.pbm (100%) create mode 100644 etc/images/gnus/reply.xpm create mode 100644 etc/images/gnus/reverse-smile.xpm rename {lisp => etc/images}/gnus/rot13.pbm (100%) create mode 100644 etc/images/gnus/rot13.xpm rename {lisp => etc/images}/gnus/save-aif.pbm (100%) create mode 100644 etc/images/gnus/save-aif.xpm rename {lisp => etc/images}/gnus/save-art.pbm (100%) create mode 100644 etc/images/gnus/save-art.xpm rename {lisp => etc/images}/gnus/subscribe.pbm (100%) create mode 100644 etc/images/gnus/subscribe.xpm create mode 100644 etc/images/gnus/unimportant.xpm rename {lisp => etc/images}/gnus/unsubscribe.pbm (100%) create mode 100644 etc/images/gnus/unsubscribe.xpm rename {lisp => etc/images}/gnus/uu-decode.pbm (100%) create mode 100644 etc/images/gnus/uu-decode.xpm rename {lisp => etc/images}/gnus/uu-post.pbm (100%) create mode 100644 etc/images/gnus/uu-post.xpm create mode 100644 etc/images/gud/break.pbm create mode 100644 etc/images/gud/break.xpm create mode 100644 etc/images/gud/cont.pbm rename lisp/toolbar/gud-cont.xpm => etc/images/gud/cont.xpm (98%) create mode 100644 etc/images/gud/down.pbm rename lisp/toolbar/gud-down.xpm => etc/images/gud/down.xpm (97%) create mode 100644 etc/images/gud/finish.pbm rename lisp/toolbar/gud-finish.xpm => etc/images/gud/finish.xpm (98%) create mode 100644 etc/images/gud/go.pbm rename lisp/toolbar/gud-remove.xpm => etc/images/gud/go.xpm (58%) create mode 100644 etc/images/gud/next.pbm rename lisp/toolbar/gud-next.xpm => etc/images/gud/next.xpm (98%) create mode 100644 etc/images/gud/nexti.pbm create mode 100644 etc/images/gud/nexti.xpm create mode 100644 etc/images/gud/pp.pbm create mode 100644 etc/images/gud/pp.xpm create mode 100644 etc/images/gud/print.pbm rename lisp/toolbar/gud-print.xpm => etc/images/gud/print.xpm (97%) create mode 100644 etc/images/gud/pstar.pbm create mode 100644 etc/images/gud/pstar.xpm create mode 100644 etc/images/gud/remove.pbm create mode 100644 etc/images/gud/remove.xpm create mode 100644 etc/images/gud/run.pbm rename lisp/toolbar/gud-run.xpm => etc/images/gud/run.xpm (98%) create mode 100644 etc/images/gud/step.pbm rename lisp/toolbar/gud-step.xpm => etc/images/gud/step.xpm (98%) create mode 100644 etc/images/gud/stepi.pbm create mode 100644 etc/images/gud/stepi.xpm create mode 100644 etc/images/gud/stop.pbm rename lisp/toolbar/gud-break.xpm => etc/images/gud/stop.xpm (92%) create mode 100644 etc/images/gud/until.pbm rename lisp/toolbar/gud-until.xpm => etc/images/gud/until.xpm (92%) create mode 100644 etc/images/gud/up.pbm rename lisp/toolbar/gud-up.xpm => etc/images/gud/up.xpm (97%) create mode 100644 etc/images/gud/watch.pbm create mode 100644 etc/images/gud/watch.xpm create mode 100644 etc/images/help.pbm create mode 100644 etc/images/help.xpm create mode 100644 etc/images/highlight.pbm create mode 100644 etc/images/highlight.xpm create mode 100644 etc/images/home.pbm create mode 100644 etc/images/home.xpm create mode 100644 etc/images/icons/emacs_16.png create mode 100644 etc/images/icons/emacs_24.png create mode 100644 etc/images/icons/emacs_32.png create mode 100644 etc/images/icons/emacs_48.png create mode 100644 etc/images/index.pbm create mode 100644 etc/images/index.xpm rename {lisp/toolbar => etc/images}/info.pbm (100%) rename {lisp/toolbar => etc/images}/info.xpm (100%) create mode 100644 etc/images/jump-to.pbm create mode 100644 etc/images/jump-to.xpm create mode 100644 etc/images/left-arrow.pbm create mode 100644 etc/images/left-arrow.xpm create mode 100644 etc/images/low-color/back-arrow.xpm create mode 100644 etc/images/low-color/copy.xpm create mode 100644 etc/images/low-color/cut.xpm create mode 100644 etc/images/low-color/fwd-arrow.xpm create mode 100644 etc/images/low-color/help.xpm create mode 100644 etc/images/low-color/home.xpm create mode 100644 etc/images/low-color/index.xpm create mode 100644 etc/images/low-color/jump-to.xpm create mode 100644 etc/images/low-color/left-arrow.xpm create mode 100644 etc/images/low-color/new.xpm create mode 100644 etc/images/low-color/next-node.xpm create mode 100644 etc/images/low-color/open.xpm create mode 100644 etc/images/low-color/paste.xpm create mode 100644 etc/images/low-color/preferences.xpm create mode 100644 etc/images/low-color/prev-node.xpm create mode 100644 etc/images/low-color/print.xpm create mode 100644 etc/images/low-color/right-arrow.xpm create mode 100644 etc/images/low-color/save.xpm create mode 100644 etc/images/low-color/saveas.xpm create mode 100644 etc/images/low-color/search.xpm create mode 100644 etc/images/low-color/spell.xpm create mode 100644 etc/images/low-color/undo.xpm create mode 100644 etc/images/low-color/up-arrow.xpm create mode 100644 etc/images/low-color/up-node.xpm rename {lisp/toolbar => etc/images}/mail.pbm (100%) rename {lisp/toolbar => etc/images}/mail.xpm (100%) create mode 100644 etc/images/mail/alias.pbm rename {lisp/toolbar => etc/images/mail}/alias.xpm (100%) rename lisp/toolbar/mail_compose.pbm => etc/images/mail/compose.pbm (100%) rename lisp/toolbar/mail_compose.xpm => etc/images/mail/compose.xpm (100%) create mode 100644 etc/images/mail/refile.pbm rename {lisp/toolbar => etc/images/mail}/refile.xpm (100%) create mode 100644 etc/images/mail/repack.pbm rename {lisp/toolbar => etc/images/mail}/repack.xpm (100%) create mode 100644 etc/images/mail/reply-all.pbm rename {lisp/toolbar => etc/images/mail}/reply-all.xpm (100%) create mode 100644 etc/images/mail/reply-from.pbm rename {lisp/toolbar => etc/images/mail}/reply-from.xpm (100%) create mode 100644 etc/images/mail/reply-to.pbm rename {lisp/toolbar => etc/images/mail}/reply-to.xpm (100%) create mode 100644 etc/images/mail/reply.pbm rename lisp/mail/reply2.xpm => etc/images/mail/reply.xpm (100%) rename lisp/toolbar/mail_send.pbm => etc/images/mail/send.pbm (100%) rename lisp/toolbar/mail_send.xpm => etc/images/mail/send.xpm (100%) rename {lisp/toolbar => etc/images}/mh-logo.xpm (100%) create mode 100644 etc/images/new.pbm create mode 100644 etc/images/new.xpm create mode 100644 etc/images/next-node.pbm create mode 100644 etc/images/next-node.xpm create mode 100644 etc/images/open.pbm create mode 100644 etc/images/open.xpm create mode 100644 etc/images/page-down.pbm rename {lisp/toolbar => etc/images}/page-down.xpm (100%) create mode 100644 etc/images/paste.pbm create mode 100644 etc/images/paste.xpm create mode 100644 etc/images/preferences.pbm create mode 100644 etc/images/preferences.xpm create mode 100644 etc/images/prev-node.pbm create mode 100644 etc/images/prev-node.xpm create mode 100644 etc/images/print.pbm create mode 100644 etc/images/print.xpm create mode 100644 etc/images/refresh.pbm create mode 100644 etc/images/refresh.xpm create mode 100644 etc/images/right-arrow.pbm create mode 100644 etc/images/right-arrow.xpm create mode 100644 etc/images/save.pbm create mode 100644 etc/images/save.xpm create mode 100644 etc/images/saveas.pbm create mode 100644 etc/images/saveas.xpm rename {lisp/toolbar => etc/images}/search-replace.pbm (100%) rename {lisp/toolbar => etc/images}/search-replace.xpm (100%) create mode 100644 etc/images/search.pbm create mode 100644 etc/images/search.xpm create mode 100644 etc/images/show.pbm rename {lisp/toolbar => etc/images}/show.xpm (100%) create mode 100644 etc/images/smilies/blink.pbm create mode 100644 etc/images/smilies/blink.xpm create mode 100644 etc/images/smilies/braindamaged.xpm create mode 100644 etc/images/smilies/cry.xpm create mode 100644 etc/images/smilies/evil.xpm create mode 100644 etc/images/smilies/forced.xpm rename {lisp/gnus => etc/images/smilies}/frown.pbm (100%) create mode 100644 etc/images/smilies/frown.xpm create mode 100644 etc/images/smilies/grin.xpm create mode 100644 etc/images/smilies/indifferent.xpm create mode 100644 etc/images/smilies/sad.pbm create mode 100644 etc/images/smilies/sad.xpm rename {lisp/gnus => etc/images/smilies}/smile.pbm (100%) create mode 100644 etc/images/smilies/smile.xpm rename {lisp/gnus => etc/images/smilies}/wry.pbm (100%) create mode 100644 etc/images/smilies/wry.xpm create mode 100644 etc/images/spell.pbm create mode 100644 etc/images/spell.xpm create mode 100644 etc/images/undo.pbm create mode 100644 etc/images/undo.xpm create mode 100644 etc/images/up-arrow.pbm create mode 100644 etc/images/up-arrow.xpm create mode 100644 etc/images/up-node.pbm create mode 100644 etc/images/up-node.xpm create mode 100644 etc/images/widen.pbm rename {lisp/toolbar => etc/images}/widen.xpm (100%) create mode 100644 etc/letter.pbm delete mode 100644 etc/letter.xbm create mode 100644 etc/orgcard.ps create mode 100644 etc/orgcard.tex create mode 100644 etc/ru-refcard.ps create mode 100644 etc/ru-refcard.tex delete mode 100644 etc/tasks.texi create mode 100644 etc/tree-widget/default/close.png create mode 100644 etc/tree-widget/default/close.xpm create mode 100644 etc/tree-widget/default/empty.png create mode 100644 etc/tree-widget/default/empty.xpm create mode 100644 etc/tree-widget/default/end-guide.png create mode 100644 etc/tree-widget/default/end-guide.xpm create mode 100644 etc/tree-widget/default/guide.png create mode 100644 etc/tree-widget/default/guide.xpm create mode 100644 etc/tree-widget/default/handle.png create mode 100644 etc/tree-widget/default/handle.xpm create mode 100644 etc/tree-widget/default/leaf.png create mode 100644 etc/tree-widget/default/leaf.xpm create mode 100644 etc/tree-widget/default/no-guide.png create mode 100644 etc/tree-widget/default/no-guide.xpm create mode 100644 etc/tree-widget/default/no-handle.png create mode 100644 etc/tree-widget/default/no-handle.xpm create mode 100644 etc/tree-widget/default/open.png create mode 100644 etc/tree-widget/default/open.xpm create mode 100644 etc/tree-widget/folder/close.png create mode 100644 etc/tree-widget/folder/close.xpm create mode 100644 etc/tree-widget/folder/empty.png create mode 100644 etc/tree-widget/folder/empty.xpm create mode 100644 etc/tree-widget/folder/end-guide.png create mode 100644 etc/tree-widget/folder/end-guide.xpm create mode 100644 etc/tree-widget/folder/guide.png create mode 100644 etc/tree-widget/folder/guide.xpm create mode 100644 etc/tree-widget/folder/handle.png create mode 100644 etc/tree-widget/folder/handle.xpm create mode 100644 etc/tree-widget/folder/leaf.png create mode 100644 etc/tree-widget/folder/leaf.xpm create mode 100644 etc/tree-widget/folder/no-guide.png create mode 100644 etc/tree-widget/folder/no-guide.xpm create mode 100644 etc/tree-widget/folder/no-handle.png create mode 100644 etc/tree-widget/folder/no-handle.xpm create mode 100644 etc/tree-widget/folder/open.png create mode 100644 etc/tree-widget/folder/open.xpm create mode 100644 info/.arch-inventory create mode 100644 leim/.arch-inventory create mode 100644 leim/leim-ext.el delete mode 100644 leim/makefile.nt create mode 100644 leim/quail/.arch-inventory create mode 100644 leim/quail/sisheng.el create mode 100644 lib-src/.arch-inventory rename lib-src/{getopt.h => getopt_.h} (62%) create mode 100644 lib-src/getopt_int.h rename {nt/inc => lib-src}/gettext.h (71%) mode change 100755 => 100644 delete mode 100644 lib-src/makefile.nt create mode 100644 lisp/.arch-inventory create mode 100644 lisp/ChangeLog.10 create mode 100644 lisp/ChangeLog.11 delete mode 100644 lisp/byte-run.el delete mode 100644 lisp/calc/calc-maint.el create mode 100644 lisp/calendar/cal-bahai.el create mode 100644 lisp/calendar/icalendar.el create mode 100644 lisp/dframe.el create mode 100644 lisp/dnd.el create mode 100644 lisp/emacs-lisp/byte-run.el rename lisp/{ => emacs-lisp}/derived.el (87%) rename lisp/{ => emacs-lisp}/float-sup.el (85%) create mode 100644 lisp/emacs-lisp/generic.el create mode 100644 lisp/emacs-lisp/macroexp.el rename lisp/{ => emacs-lisp}/map-ynp.el (91%) rename lisp/{ => emacs-lisp}/regi.el (97%) rename lisp/emacs-lisp/{testcover-ses.el => tcover-ses.el} (98%) rename lisp/emacs-lisp/{testcover-unsafep.el => tcover-unsafep.el} (95%) rename lisp/{ => emacs-lisp}/timer.el (84%) rename lisp/{ => emacs-lisp}/warnings.el (76%) create mode 100644 lisp/eshell/.arch-inventory create mode 100644 lisp/ezimage.el delete mode 100644 lisp/gdb-ui.el delete mode 100644 lisp/generic.el create mode 100644 lisp/gnus/ChangeLog.2 create mode 100644 lisp/gnus/TODO create mode 100644 lisp/gnus/canlock.el delete mode 100644 lisp/gnus/catchup.xpm create mode 100644 lisp/gnus/compface.el delete mode 100644 lisp/gnus/cu-exit.xpm delete mode 100644 lisp/gnus/describe-group.xpm create mode 100644 lisp/gnus/deuglify.el create mode 100644 lisp/gnus/dig.el create mode 100644 lisp/gnus/dns.el delete mode 100644 lisp/gnus/exit-gnus.xpm delete mode 100644 lisp/gnus/exit-summ.xpm delete mode 100644 lisp/gnus/followup.xpm delete mode 100644 lisp/gnus/fuwo.xpm delete mode 100644 lisp/gnus/get-news.xpm delete mode 100644 lisp/gnus/gnntg.xpm create mode 100644 lisp/gnus/gnus-delay.el create mode 100644 lisp/gnus/gnus-diary.el create mode 100644 lisp/gnus/gnus-dired.el create mode 100644 lisp/gnus/gnus-fun.el delete mode 100644 lisp/gnus/gnus-mule.el create mode 100644 lisp/gnus/gnus-picon.el create mode 100644 lisp/gnus/gnus-registry.el create mode 100644 lisp/gnus/gnus-sieve.el create mode 100644 lisp/gnus/hex-util.el create mode 100644 lisp/gnus/html2text.el delete mode 100644 lisp/gnus/kill-group.xpm create mode 100644 lisp/gnus/legacy-gnus-agent.el delete mode 100644 lisp/gnus/mail-reply.xpm create mode 100644 lisp/gnus/mm-extern.el create mode 100644 lisp/gnus/mm-url.el create mode 100644 lisp/gnus/mml-sec.el create mode 100644 lisp/gnus/mml-smime.el create mode 100644 lisp/gnus/mml1991.el create mode 100644 lisp/gnus/mml2015.el delete mode 100644 lisp/gnus/next-ur.xpm create mode 100644 lisp/gnus/nndb.el create mode 100644 lisp/gnus/nndiary.el create mode 100644 lisp/gnus/nnmaildir.el create mode 100644 lisp/gnus/nnnil.el create mode 100644 lisp/gnus/nnrss.el create mode 100644 lisp/gnus/nnwfm.el delete mode 100644 lisp/gnus/post.xpm delete mode 100644 lisp/gnus/prev-ur.xpm delete mode 100644 lisp/gnus/reply-wo.xpm delete mode 100644 lisp/gnus/reply.xpm delete mode 100644 lisp/gnus/rot13.xpm delete mode 100644 lisp/gnus/save-aif.xpm delete mode 100644 lisp/gnus/save-art.xpm create mode 100644 lisp/gnus/sha1.el create mode 100644 lisp/gnus/sieve-manage.el create mode 100644 lisp/gnus/sieve-mode.el create mode 100644 lisp/gnus/sieve.el rename lisp/gnus/{smiley-ems.el => smiley.el} (50%) create mode 100644 lisp/gnus/smime.el create mode 100644 lisp/gnus/spam-report.el create mode 100644 lisp/gnus/spam-stat.el create mode 100644 lisp/gnus/spam.el delete mode 100644 lisp/gnus/subscribe.xpm delete mode 100644 lisp/gnus/unsubscribe.xpm delete mode 100644 lisp/gnus/uu-decode.xpm delete mode 100644 lisp/gnus/uu-post.xpm create mode 100644 lisp/gnus/yenc.el create mode 100644 lisp/help-at-pt.el create mode 100644 lisp/iimage.el create mode 100644 lisp/image-mode.el create mode 100644 lisp/international/latexenc.el create mode 100644 lisp/international/utf-7.el create mode 100644 lisp/isearchb.el create mode 100644 lisp/jka-cmpr-hook.el create mode 100644 lisp/language/kannada.el create mode 100644 lisp/language/knd-util.el create mode 100644 lisp/language/thai-word.el rename lisp/{loaddefs.el => ldefs-boot.el} (71%) create mode 100644 lisp/longlines.el create mode 100644 lisp/mail/mailclient.el delete mode 100644 lisp/mail/reply2.pbm delete mode 100644 lisp/makefile.nt create mode 100644 lisp/mh-e/.arch-inventory create mode 100644 lisp/mh-e/.cvsignore create mode 100644 lisp/mh-e/ChangeLog.1 create mode 100644 lisp/mh-e/mh-acros.el create mode 100644 lisp/mh-e/mh-buffers.el create mode 100644 lisp/mh-e/mh-exec.el create mode 100644 lisp/mh-e/mh-gnus.el create mode 100644 lisp/mh-e/mh-inc.el delete mode 100644 lisp/mh-e/mh-index.el create mode 100644 lisp/mh-e/mh-init.el create mode 100644 lisp/mh-e/mh-junk.el delete mode 100644 lisp/mh-e/mh-loaddefs.el delete mode 100644 lisp/mh-e/mh-pick.el create mode 100644 lisp/mh-e/mh-print.el create mode 100644 lisp/mh-e/mh-search.el delete mode 100644 lisp/mh-e/mh-xemacs-compat.el create mode 100644 lisp/net/eudcb-mab.el create mode 100644 lisp/net/newsticker.el create mode 100644 lisp/net/rcirc.el create mode 100644 lisp/net/tls.el create mode 100644 lisp/net/trampver.el rename lisp/{progmodes => obsolete}/awk-mode.el (92%) rename lisp/{term => obsolete}/bg-mouse.el (96%) delete mode 100644 lisp/obsolete/cplus-md.el rename lisp/{ => obsolete}/fast-lock.el (96%) rename lisp/{emacs-lisp => obsolete}/float.el (97%) rename lisp/{international => obsolete}/iso-acc.el (95%) rename lisp/{international => obsolete}/iso-insert.el (98%) rename lisp/{international => obsolete}/iso-swed.el (96%) rename lisp/{term => obsolete}/keyswap.el (83%) rename lisp/{ => obsolete}/lazy-lock.el (98%) rename lisp/{ => obsolete}/options.el (94%) rename lisp/{textmodes => obsolete}/scribe.el (97%) rename lisp/{international => obsolete}/swedish.el (92%) rename lisp/{textmodes => }/outline.el (69%) create mode 100644 lisp/pgg-def.el create mode 100644 lisp/pgg-gpg.el create mode 100644 lisp/pgg-parse.el create mode 100644 lisp/pgg-pgp.el create mode 100644 lisp/pgg-pgp5.el create mode 100644 lisp/pgg.el create mode 100644 lisp/progmodes/cc-awk.el create mode 100644 lisp/progmodes/cc-fonts.el create mode 100644 lisp/progmodes/cc-subword.el create mode 100644 lisp/progmodes/cfengine.el create mode 100644 lisp/progmodes/ebnf-abn.el create mode 100644 lisp/progmodes/ebnf-dtd.el create mode 100644 lisp/progmodes/ebnf-ebx.el create mode 100644 lisp/progmodes/flymake.el create mode 100644 lisp/progmodes/gdb-ui.el create mode 100644 lisp/progmodes/grep.el rename lisp/{ => progmodes}/gud.el (76%) create mode 100644 lisp/progmodes/idlw-complete-structtag.el create mode 100644 lisp/progmodes/idlw-help.el create mode 100644 lisp/progmodes/ld-script.el create mode 100644 lisp/progmodes/mixal-mode.el create mode 100644 lisp/progmodes/python.el rename lisp/{ => progmodes}/which-func.el (59%) rename lisp/{ => progmodes}/xscheme.el (98%) create mode 100644 lisp/savehist.el delete mode 100644 lisp/sb-dir-minus.xpm delete mode 100644 lisp/sb-dir-plus.xpm create mode 100644 lisp/sb-image.el create mode 100644 lisp/scroll-lock.el create mode 100644 lisp/term/cygwin.el create mode 100644 lisp/textmodes/conf-mode.el create mode 100644 lisp/textmodes/dns-mode.el rename lisp/{ => textmodes}/enriched.el (82%) create mode 100644 lisp/textmodes/org.el create mode 100644 lisp/thumbs.el rename lisp/{toolbar => }/tool-bar.el (78%) delete mode 100644 lisp/toolbar/alias.pbm delete mode 100644 lisp/toolbar/close.pbm delete mode 100644 lisp/toolbar/close.xpm delete mode 100644 lisp/toolbar/copy.pbm delete mode 100644 lisp/toolbar/copy.xpm delete mode 100644 lisp/toolbar/cut.pbm delete mode 100644 lisp/toolbar/cut.xpm delete mode 100644 lisp/toolbar/execute.pbm delete mode 100644 lisp/toolbar/gud-break.pbm delete mode 100644 lisp/toolbar/gud-cont.pbm delete mode 100644 lisp/toolbar/gud-display.pbm delete mode 100644 lisp/toolbar/gud-display.xpm delete mode 100644 lisp/toolbar/gud-down.pbm delete mode 100644 lisp/toolbar/gud-finish.pbm delete mode 100644 lisp/toolbar/gud-next.pbm delete mode 100644 lisp/toolbar/gud-print.pbm delete mode 100644 lisp/toolbar/gud-remove.pbm delete mode 100644 lisp/toolbar/gud-run.pbm delete mode 100644 lisp/toolbar/gud-step.pbm delete mode 100644 lisp/toolbar/gud-until.pbm delete mode 100644 lisp/toolbar/gud-up.pbm delete mode 100644 lisp/toolbar/help.pbm delete mode 100644 lisp/toolbar/help.xpm delete mode 100644 lisp/toolbar/home.pbm delete mode 100644 lisp/toolbar/home.xpm delete mode 100644 lisp/toolbar/index.pbm delete mode 100644 lisp/toolbar/index.xpm delete mode 100644 lisp/toolbar/jump_to.pbm delete mode 100644 lisp/toolbar/jump_to.xpm delete mode 100644 lisp/toolbar/left_arrow.pbm delete mode 100644 lisp/toolbar/left_arrow.xpm delete mode 100644 lisp/toolbar/new.pbm delete mode 100644 lisp/toolbar/new.xpm delete mode 100644 lisp/toolbar/open.pbm delete mode 100644 lisp/toolbar/open.xpm delete mode 100644 lisp/toolbar/page-down.pbm delete mode 100644 lisp/toolbar/paste.pbm delete mode 100644 lisp/toolbar/paste.xpm delete mode 100644 lisp/toolbar/preferences.pbm delete mode 100644 lisp/toolbar/preferences.xpm delete mode 100644 lisp/toolbar/print.pbm delete mode 100644 lisp/toolbar/print.xpm delete mode 100644 lisp/toolbar/refile.pbm delete mode 100644 lisp/toolbar/repack.pbm delete mode 100644 lisp/toolbar/reply-all.pbm delete mode 100644 lisp/toolbar/reply-from.pbm delete mode 100644 lisp/toolbar/reply-to.pbm delete mode 100644 lisp/toolbar/rescan.pbm delete mode 100644 lisp/toolbar/rescan.xpm delete mode 100644 lisp/toolbar/right_arrow.pbm delete mode 100644 lisp/toolbar/right_arrow.xpm delete mode 100644 lisp/toolbar/save.pbm delete mode 100644 lisp/toolbar/save.xpm delete mode 100644 lisp/toolbar/saveas.pbm delete mode 100644 lisp/toolbar/saveas.xpm delete mode 100644 lisp/toolbar/search.pbm delete mode 100644 lisp/toolbar/search.xpm delete mode 100644 lisp/toolbar/show.pbm delete mode 100644 lisp/toolbar/spell.pbm delete mode 100644 lisp/toolbar/spell.xpm delete mode 100644 lisp/toolbar/undo.pbm delete mode 100644 lisp/toolbar/undo.xpm delete mode 100644 lisp/toolbar/up_arrow.pbm delete mode 100644 lisp/toolbar/up_arrow.xpm delete mode 100644 lisp/toolbar/widen.pbm create mode 100644 lisp/tree-widget.el create mode 100644 lisp/tumme.el delete mode 100644 lisp/unused.el create mode 100644 lisp/url/.cvsignore create mode 100644 lisp/url/ChangeLog create mode 100644 lisp/url/url-about.el create mode 100644 lisp/url/url-auth.el create mode 100644 lisp/url/url-cache.el create mode 100644 lisp/url/url-cid.el create mode 100644 lisp/url/url-cookie.el create mode 100644 lisp/url/url-dav.el create mode 100644 lisp/url/url-dired.el create mode 100644 lisp/url/url-expand.el create mode 100644 lisp/url/url-file.el create mode 100644 lisp/url/url-ftp.el create mode 100644 lisp/url/url-gw.el create mode 100644 lisp/url/url-handlers.el create mode 100644 lisp/url/url-history.el create mode 100644 lisp/url/url-http.el create mode 100644 lisp/url/url-https.el create mode 100644 lisp/url/url-imap.el create mode 100644 lisp/url/url-irc.el create mode 100644 lisp/url/url-ldap.el create mode 100644 lisp/url/url-mailto.el create mode 100644 lisp/url/url-methods.el create mode 100644 lisp/url/url-misc.el create mode 100644 lisp/url/url-news.el create mode 100644 lisp/url/url-nfs.el create mode 100644 lisp/url/url-ns.el create mode 100644 lisp/url/url-parse.el create mode 100644 lisp/url/url-privacy.el create mode 100644 lisp/url/url-proxy.el create mode 100644 lisp/url/url-util.el create mode 100644 lisp/url/url-vars.el create mode 100644 lisp/url/url.el create mode 100644 lisp/url/vc-dav.el create mode 100644 lisp/vc-arch.el create mode 100644 lisp/vc-mcvs.el create mode 100644 lisp/vc-svn.el create mode 100644 lisp/wdired.el create mode 100644 lisp/x-dnd.el create mode 100644 lispintro/makefile.w32-in create mode 100644 lispref/.arch-inventory delete mode 100644 lispref/index.perm rename lispref/{index.unperm => index.texi} (100%) create mode 100644 lispref/makefile.w32-in delete mode 100644 lispref/permute-index create mode 100644 m4/getopt.m4 delete mode 100644 mac/Emacs.app/Contents/Resources/Emacs.rsrc create mode 100755 mac/inc/grp.h rename lispref/calendar.texi => man/emacs-xtra.texi (69%) create mode 100644 man/flymake.texi create mode 100644 man/kmacro.texi create mode 100644 man/makefile.w32-in create mode 100644 man/newsticker.texi create mode 100644 man/org.texi create mode 100644 man/pgg.texi create mode 100644 man/sieve.texi create mode 100644 man/smtpmail.texi create mode 100644 man/trampver.texi create mode 100644 man/url.texi create mode 100644 nt/.arch-inventory delete mode 100755 nt/ebuild.bat create mode 100644 nt/envadd.bat delete mode 100755 nt/fast-install.bat create mode 100644 nt/icons/emacs21.ico create mode 100755 nt/inc/grp.h delete mode 100755 nt/install.bat delete mode 100644 nt/makefile.def delete mode 100644 nt/makefile.nt create mode 100644 nt/multi-install-info.bat create mode 100644 src/.arch-inventory delete mode 100644 src/alloca.s create mode 100644 src/fringe.c create mode 100644 src/image.c create mode 100644 src/macselect.c delete mode 100644 src/makefile.nt create mode 100644 src/s/hpux10-20.h create mode 100644 src/sheap.c create mode 100644 src/unexcw.c create mode 100644 vms/make-mms-derivative.el diff --git a/.arch-inventory b/.arch-inventory new file mode 100644 index 00000000000..66aae859b87 --- /dev/null +++ b/.arch-inventory @@ -0,0 +1,7 @@ +# Generated files +precious ^(config\.status|config\.cache)$ + +# Install-in-place makes these directories, so just ignore them +backup ^(bin|data|lock|site-lisp)$ + +# arch-tag: 6eeeaa4e-cc7e-4b22-b3d7-1089e155da14 diff --git a/.cvsignore b/.cvsignore index 839d033219b..e4ba64ee512 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,14 +1,19 @@ -configure +*.xdelta +.DS_Store +.arch-inventory +Makefile +autom4te.cache bin boot.log boot.log.diff boot.log.old -update.log +config.cache config.log config.status -config.cache -Makefile +configure +data emacs*.tar.gz leim*.tar.gz -*.xdelta -autom4te.cache +lock +site-lisp +update.log diff --git a/AUTHORS b/AUTHORS index 2c7a2cbccb1..f7339296b79 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3,19 +3,19 @@ Foundation's distribution of GNU Emacs. To show our appreciation for their public spirit, we list here in alphabetical order a condensed list of their contributions. -Aaron Larson: changed bibtex.el +Aaron Hawley: changed files.el -Aaron M. Ucko: changed mail-source.el message.el nnmail.el nnsoup.el +Aaron Larson: changed bibtex.el Abraham Nahum: changed configure.in dgux4.h sysdep.c Abramo Bagnara: changed term.c -Adam P. Jenkins: changed gnus-sum.el +Adrian Colley: changed aix3-2.h -Adrian Aichner: changed nnmail.el +Adrian Lanz: changed mail-source.el -Adrian Colley: changed aix3-2.h +Aidan Kehoe: changed mm-util.el Ake Stenhoff: wrote imenu.el and changed cc-mode.el perl-mode.el @@ -25,104 +25,143 @@ Aki Vehtari: changed bibtex.el gnus-art.el gnus-score.el gnus-sum.el Alakazam Petrofsky: changed hanoi.el -Alan Shutko: changed diary-lib.el bindings.el cal-hebrew.el calendar.el - easy-mmode.el ibuf-ext.el ibuffer.el lunar.el solar.el +Alan Mackenzie: wrote cc-awk.el +and changed cc-engine.el cc-mode.el cc-fonts.el cc-cmds.el cc-vars.el + isearch.el search.texi buffers.texi cc-align.el cc-defs.el cc-langs.el + cc-mode-19.el cc-styles.el ebrowse.el emacs.texi fill.el frames.texi + page.el programs.texi regexp-opt.el simple.el text.texi -Alastair Burt: changed smiley.el +Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el + easy-mmode.el gnus-sum.el ibuf-ext.el ibuffer.el lunar.el macros.el + solar.el -Albert: wrote rcompile.el +Alastair Burt: changed gnus-art.el smiley.el Albert L. Ting: changed gnus-group.el mail-hist.el +Alex Coventry: changed files.el + +Alex Ott: changed TUTORIAL.ru ispell.el ru-refcard.ps ru-refcard.tex + Alex Rezinsky: wrote which-func.el -Alex Schroeder: wrote ansi-color.el cus-theme.el master.el sql.el -and changed comint.el goto-addr.el cus-edit.el cus-face.el custom.el +Alex Schroeder: wrote ansi-color.el cus-theme.el master.el spam-stat.el + sql.el +and changed comint.el custom.el goto-addr.el sending.texi smtpmail.texi + Makefile.in cmdargs.texi cus-edit.el cus-face.el misc.texi nnrss.el + xml.el + +Alexander Klimov: changed man.el -Alexander Pohoyda: changed rmail.el sendmail.el +Alexander Kreuzer: changed nnrss.el + +Alexander Pohoyda: changed rmailsum.el man.el rmail.el sendmail.el Alexander Zhuckov: changed ebrowse.c Alexandre Oliva: wrote gnus-mlspl.el -and changed nnmail.el unexelf.c gnus.el format.el gnus-cus.el - gnus-mlsplt.el iris4d.h iris5d.h unexsgi.c +and changed unexelf.c format.el iris4d.h iris5d.h unexsgi.c + +Alexandre Veyrenc: changed fr-refcard.tex Alfred Correira: changed generic-x.el +Alfred M. Szmidt: changed compile.el + +Ami Fischman: changed calendar.el diary-lib.el + Anders Holst: wrote hippie-exp.el Anders Lindgren: wrote autorevert.el cwarn.el follow.el and changed font-lock.el etags.c compile.el Andre Spiegel: changed vc.el vc-hooks.el vc-cvs.el vc-rcs.el vc-sccs.el - files.el dired.el ediff-util.el log-view.el startup.el viper-util.el + files.el dired.el files.texi cperl-mode.el ediff-util.el log-view.el + parse-time.el startup.el vc-arch.el vc-mcvs.el vc-svn.el viper-util.el + +Andre Srinivasan: changed gnus.texi + +Andreas B,A|(Bsching: changed emacsclient.c + +Andreas Fuchs: changed mml-sec.el -Andrea Arcangeli: changed message.el +Andreas Jaeger: changed gnus-msg.el gnus-start.el gnus-xmas.el -Andreas Jaeger: changed gnus-cus.el gnus-msg.el gnus-start.el gnus-uu.el - gnus-xmas.el +Andreas Leue: changed artist.el Andreas Luik: changed xfns.c xterm.c -Andreas Schwab: changed Makefile.in files.el xdisp.c coding.c editfns.c - fns.c lisp.h alloc.c eval.c dired.el fileio.c simple.el keyboard.c - minibuf.c buffer.c emacs.c indent.c process.c xterm.c configure.in - cus-edit.el and 381 other files +Andreas Schwab: changed Makefile.in files.el xdisp.c lisp.h alloc.c fns.c + coding.c configure.in dired.el editfns.c info.el eval.c fileio.c + print.c simple.el buffer.c keyboard.c minibuf.c xterm.c emacs.c + process.c and 435 other files Andrew Choi: wrote mac-win.el -and changed macterm.c mac.c macfns.c macmenu.c INSTALL darwin.h sysdep.c - emacs.c macterm.h fontset.c xfaces.c README cw5-mcp.xml cw6-mcp.xml - frame.c keyboard.c macgui.h makefile.MPW Emacs.r Info.plist Makefile.in - and 60 other files +and changed macterm.c mac.c macfns.c INSTALL macmenu.c darwin.h macterm.h + sysdep.c emacs.c fontset.c frame.c keyboard.c macgui.h xfaces.c Emacs.r + README cw5-mcp.xml cw6-mcp.xml dispextern.h make-package makefile.MPW + and 62 other files + +Andrew Cohen: changed dns.el Andrew Csillag: wrote m4-mode.el Andrew Hall: changed paren.el -Andrew Innes: changed makefile.w32-in makefile.nt w32fns.c w32term.c - w32.c w32proc.c fileio.c gmake.defs dos-w32.el ms-w32.h nmake.defs - w32-fns.el w32term.h makefile.def unexw32.c w32menu.c w32xfns.c addpm.c - cmdproxy.c emacs.c w32-win.el and 134 other files - -Andrew J. Cosgriff: changed mm-view.el +Andrew Innes: changed makefile.w32-in w32fns.c w32term.c w32.c w32proc.c + fileio.c gmake.defs dos-w32.el ms-w32.h nmake.defs w32-fns.el w32term.h + unexw32.c w32menu.c w32xfns.c addpm.c cmdproxy.c emacs.c w32-win.el + w32inevt.c configure.bat and 136 other files Andrew Oram: changed man/calendar.texi miscellaneous changes to files in man/ Andy Norman: wrote ange-ftp.el -Andy Piper: changed nnmail.el +Andy Petrusenco: changed w32term.c -Arisawa Akihiro: changed ps-print.el +Ari Roponen: changed startup.el + +Arisawa Akihiro: changed ps-print.el time.el utf-8.el Arne Georg Gleditsch: changed gnus-sum.el -Ashwin Ram: wrote refer.el +Arne J,Ax(Brgensen: wrote latexenc.el +and changed smime.el mm-decode.el mule-conf.el nnimap.el nnrss.el + wid-edit.el -Atae@Spva.Physics.Imperial.Ac.Uk: wrote cdl.el +Artem Chuprina: changed message.el + +Ashwin Ram: wrote refer.el Aubrey Jaffer: changed info.el Axel Boldt: changed ehelp.el electric.el +B. Anyos: changed w32term.c + Barry A. Warsaw: wrote assoc.el elp.el man.el regi.el reporter.el supercite.el and changed cc-mode.el cc-cmds.el cc-engine.el cc-langs.el cc-styles.el cc-vars.el c++-mode.el cc-menus.el cc-align.el cc-defs.el cplus-md1.el syntax.c syntax.h -Ben Gertzfield: changed gnus-sum.el +Barry Fishman: changed gnu-linux.h Ben Harris: changed configure.in Ben Key: changed w32.c w32fns.c w32menu.c makefile.w32-in w32.h w32term.c emacs.c gmake.defs ms-w32.h nmake.defs sound.c +Ben North: changed fill.el lisp-mode.el + Benjamin Drieu: wrote pong.el -Benjamin Riefenstahl: changed mac-win.el macterm.c +Benjamin Riefenstahl: changed emacs.c mac-win.el macterm.c ms-w32.h + mule-cmds.el runemacs.c tcl.el w32.c w32.h w32select.c -Benjamin Rutt: changed simple.el +Benjamin Rutt: changed vc.el diff-mode.el ffap.el nnmbox.el simple.el + vc-cvs.el Bill Burton: changed ptx.h sequent-ptx.h @@ -130,6 +169,9 @@ Bill Carpenter: wrote feedmail.el (public domain) Bill Mann: changed configure.in unexaix.c ibmrs6000.h usg5-4-3.h +Bill Perry: wrote url-dav.el url-gw.el url-http.el url-util.el url.el + vc-dav.el + Bill Pringlemeir: changed messcompat.el Bill Richter: changed fill.el quail.el ccl.el encoded-kb.el fontset.el @@ -141,14 +183,18 @@ Bill Rozas: wrote scheme.el and changed xscheme.el Bill Wohler: wrote mh-comp.el mh-customize.el mh-e.el mh-funcs.el - mh-mime.el mh-pick.el mh-seq.el mh-utils.el -and changed mh-xemacs-compat.el MH-E-NEWS mh-index.el mh-speed.el - mh-alias.el mh-identity.el mh-loaddefs.el alias.pbm alias.xpm - execute.pbm execute.xpm makefile.nt makefile.w32-in mh-e page-down.pbm - page-down.xpm refile.pbm refile.xpm repack.pbm repack.xpm reply-all.pbm - and 14 other files + mh-loaddefs.el mh-mime.el mh-pick.el mh-seq.el mh-utils.el +and changed mh-index.el MH-E-NEWS Makefile README mh-identity.el + mh-alias.el mh-speed.el mh-unit.el mh-xemacs-compat.el mh-junk.el + mh-inc.el mh-xemacs.el mh-gnus.el mh-init.el mh-xemacs-toolbar.el + ChangeLog mh-acros.el *.el *.pbm alias.pbm alias.xpm and 26 other files + +Bjorn Solberg: changed nnimap.el -Bj,Av(Brn Torkelsson: changed message.el mm-util.el nnheader.el rfc2047.el +Bj,Av(Brn Torkelsson: changed gnus-art.el gnus-group.el gnus-srvr.el + gnus-sum.el gnus-mlspl.el gnus-msg.el message.el dgnushack.el + gnus-agent.el gnus-cus.el gnus-gl.el gnus-nocem.el gnus-score.el + gnus-topic.el gnus.el mail-source.el nnmail.el Blitz Product Development Corporation: wrote ispell.el @@ -168,11 +214,13 @@ and changed fill.el simple.el indent.el paragraphs.el cmds.c intervals.c text-mode.el textprop.c ada.el allout.el awk-mode.el bibtex.el buffer.c buffer.h c-mode.el and 38 other files +Boyd Lynn Gerber: changed configure.in + Brad Howes: changed gnus-demon.el Brad Miller: wrote gnus-gl.el -Brendan Kehoe: changed gnus-sum.el hpux9.h +Brendan Kehoe: changed hpux9.h Brian D. Carlstrom: changed gud.el smtpmail.el @@ -191,7 +239,7 @@ Brian Preble: changed abbrev.el apropos.el asm-mode.el doctex.el Bryan O'sullivan: changed ange-ftp.el -Bryan P. Johnson: changed gnus-group.el +Bzyl Wlodzimierz: changed latin-pre.el Caleb Deupree: changed winnt.el @@ -199,27 +247,32 @@ Carl D. Roth: changed gnus-nocem.el Carsten Bormann: changed ibmrs6000.h -Carsten Dominik: wrote idlw-rinfo.el idlw-shell.el idlw-toolbar.el - idlwave.el reftex-auc.el reftex-cite.el reftex-dcr.el reftex-global.el +Carsten Dominik: wrote idlw-complete-structtag.el idlw-toolbar.el org.el + reftex-auc.el reftex-cite.el reftex-dcr.el reftex-global.el reftex-index.el reftex-parse.el reftex-ref.el reftex-sel.el reftex-toc.el reftex-vars.el reftex.el -and changed reftex-vcr.el bibtex.el files.el idlwave-rinfo.el - idlwave-shell.el idlwave-toolbar.el reftex.texi - -Carsten Leonhardt: changed mail-source.el nnmail.el - -Castor: changed nntp.el +and changed org.texi idlw-shell.el idlwave.el idlw-rinfo.el reftex.texi + diary-lib.el reftex-vcr.el bibtex.el bookmark.el files.el + idlwave-rinfo.el idlwave-shell.el idlwave-toolbar.el Caveh Jalali: changed configure.in intel386.h sol2-4.h Changwoo Ryu: changed files.el +Chao-Hong Liu: changed TUTORIAL.cn TUTORIAL.zh + Charles Hannum: changed aix3-1.h aix3-2.h configure ibmrs6000.h keyboard.c netbsd.h pop.c sysdep.c systime.h systty.h xrdb.c Charlie Martin: wrote autoinsert.el -Chris Brierley: changed gnus-sum.el +Cheng Gao: changed MORE.STUFF flymake.el tips.texi + +Chong Yidong: changed text.texi files.texi dired.texi display.texi + anti.texi frames.texi longlines.el misc.texi positions.texi ack.texi + buff-menu.el building.texi calendar.texi custom.el custom.texi + emacs.texi help.texi minibuf.texi modes.texi mule.texi nonascii.texi + and 26 other files Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el @@ -237,31 +290,33 @@ Christian Plaunt: wrote soundex.el Christian Von Roques: changed gnus-start.el -Christoph Conrad: changed gnus-draft.el qp.el - -Christoph Rohland: changed rfc2047.el +Christoph Conrad: changed qp.el Christoph Wedler: wrote antlr-mode.el -and changed gnus-art.el gnus-picon.el message.el register.el smiley.el +and changed format.el gnus-art.el gnus-picon.el message.el register.el + smiley.el texinfmt.el Christopher J. Madsen: wrote decipher.el -and changed files.el replace.el time.el +and changed files.el ispell.el replace.el time.el + +Chunyu Wang: changed pcl-cvs.texi -Colin Rafferty: changed message.el gnus-art.el gnus-sum.el +Colin Marquardt: changed gnus.el message.el + +Colin Rafferty: changed message.el Colin Walters: wrote ibuf-ext.el ibuf-macs.el ibuffer.el and changed calc.el replace.el update-game-score.c calc-ext.el calc-misc.el Makefile.in calc-macs.el calc-mode.el calc-graph.el gamegrid.el calc-aent.el calc-bin.el calc-embed.el calc-keypd.el calc-math.el calc-prog.el calc-units.el calcalg2.el font-core.el - info.el calc-alg.el and 75 other files - -Conrad Sauerwald: changed mm-decode.el + info.el calc-alg.el and 78 other files -Daiki Ueno: wrote starttls.el -and changed imap.el gnus-sum.el +Daiki Ueno: wrote pgg-def.el pgg-gpg.el pgg-parse.el pgg-pgp.el + pgg-pgp5.el pgg.el starttls.el +and changed gnus-agent.el mml2015.el -Dale Hagglund: changed gnus-art.el gnus-sum.el mm-decode.el unexelf.c +Dale Hagglund: changed unexelf.c Dale R. Worley: wrote emerge.el (public domain) @@ -269,32 +324,42 @@ Dale Worley: changed mail-extr.el Damon Anton Permezel: wrote hanoi.el (public domain) -Dan Christensen: changed gnus-score.el nnfolder.el gnus-art.el - gnus-group.el nnmail.el +Dan Christensen: changed nnfolder.el gnus-art.el gnus-group.el + gnus-score.el gnus-sum.el nnmail.el Dan Nicolaescu: wrote iris-ansi.el romanian.el -and changed hideshow.el icon.el isearch.el bindings.el cus-edit.el - dabbrev.el imenu.el outline.el speedbar.el abbrev.el autoload.el - cus-dep.el files.el generic.el iswitchb.el pc-select.el rsz-mini.el - subr.el term.el vhdl-mode.el autoinsert.el and 43 other files +and changed hideshow.el term.el xterm.el icon.el isearch.el cus-edit.el + eterm.ti eterm sh-script.el vhdl-mode.el bindings.el compile.el + dabbrev.el faces.el grep.el imenu.el outline.el replace.el simple.el + speedbar.el abbrev.el and 112 other files + +Daniel Brockman: changed ibuffer.el Daniel Laliberte: wrote cl-specs.el cust-print.el edebug.el hideif.el isearch.el and changed mlconvert.el eval-region.el -Daniel Pfeiffer: wrote copyright.el executable.el sh-script.el - skeleton.el two-column.el wyse50.el -and changed apropos.el mpuz.el autoinsert.el facemenu.el gomoku.el - sgml-mode.el autoload.el buff-menu.el help.el mailalias.el sendmail.el - tex-mode.el +Daniel M Coffman: changed arc-mode.el + +Daniel N,Ai(Bri: changed message.el + +Daniel Ortmann: changed paragraphs.el + +Daniel Pfeiffer: wrote conf-mode.el copyright.el executable.el + sh-script.el skeleton.el two-column.el wyse50.el +and changed compile.el files.el make-mode.el apropos.el buff-menu.el + font-lock.el grep.el mpuz.el sgml-mode.el autoinsert.el cperl-mode.el + facemenu.el gomoku.el help.el imenu.el autoload.el autorevert.el + bindings.el button.el cc-fonts.el cc-mode.el and 12 other files Daniel Pittman: wrote tramp-vc.el +and changed gnus-sum.el Daniel Quinlan: changed dired.el info.el Danny Roozendaal: wrote handwrite.el -Danny Siu: changed gnus-picon.el nndoc.el smiley.el +Danny Siu: changed gnus-picon.el gnus-sum.el nndoc.el nnimap.el smiley.el Darren Stalder: changed gnus-util.el @@ -304,45 +369,59 @@ Dave Edmondson: changed message.el Dave Lambert: changed sol2-5.h xfns.c xterm.c xterm.h -Dave Love: wrote autoarg.el autoconf.el code-pages.el elide-head.el - georgian.el hl-line.el latin-8.el latin-9.el latin1-disp.el refill.el - rfc1345.el sgml-input.el smiley-ems.el subst-big5.el subst-gb2312.el - subst-jis.el subst-ksc.el tool-bar.el ucs-tables.el uni-input.el - utf-16.el utf-8-lang.el welsh.el -and changed help.el Makefile.in configure.in fortran.el browse-url.el - mule-cmds.el gnus-art.el simple.el cus-edit.el info.el files.el - message.el mule.el vc.el wid-edit.el xterm.c buffer.c byte-opt.el - config.in fns.c imenu.el and 673 other files +Dave Love: wrote autoarg.el autoconf.el benchmark.el cfengine.el + code-pages.el elide-head.el georgian.el hl-line.el latin-8.el + latin-9.el latin1-disp.el python.el refill.el rfc1345.el sgml-input.el + smiley.el subst-big5.el subst-gb2312.el subst-jis.el subst-ksc.el + tool-bar.el ucs-tables.el uni-input.el utf-16.el utf-7.el utf-8-lang.el + welsh.el +and changed configure.in Makefile.in help.el fortran.el browse-url.el + mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el + wid-edit.el vc.el fns.c rfc2047.el bindings.el cus-start.el buffer.c + byte-opt.el bytecomp.el and 728 other files Dave Pearson: wrote 5x5.el quickurl.el -David Aspinwall: changed gnus-art.el +David A. Capello: changed etags.c + +David Abrahams: changed coding.c David Bakhash: wrote strokes.el David Byers: changed minibuf.c -David Edmondson: changed gnus.el +David Casperson: changed menu-bar.el tex-mode.el + +David Edmondson: changed message.el gnus-cite.el imap.el mm-view.el David Gillespie: wrote calc-aent.el calc-alg.el calc-arith.el calc-bin.el calc-comb.el calc-cplx.el calc-embed.el calc-ext.el calc-fin.el calc-forms.el calc-frac.el calc-funcs.el calc-graph.el calc-help.el - calc-incom.el calc-keypd.el calc-lang.el calc-macs.el calc-maint.el - calc-map.el calc-math.el calc-misc.el calc-mode.el calc-mtx.el - calc-poly.el calc-prog.el calc-rewr.el calc-rules.el calc-sel.el - calc-stat.el calc-store.el calc-stuff.el calc-trail.el calc-undo.el - calc-units.el calc-vec.el calc-yank.el calc.el calcalg2.el calcalg3.el - calccomp.el calcsel2.el cl-compat.el cl-extra.el cl-macs.el cl-seq.el - cl.el cl.texinfo complete.el edmacro.el + calc-incom.el calc-keypd.el calc-lang.el calc-macs.el calc-map.el + calc-math.el calc-misc.el calc-mode.el calc-mtx.el calc-poly.el + calc-prog.el calc-rewr.el calc-rules.el calc-sel.el calc-stat.el + calc-store.el calc-stuff.el calc-trail.el calc-undo.el calc-units.el + calc-vec.el calc-yank.el calc.el calcalg2.el calcalg3.el calccomp.el + calcsel2.el cl-compat.el cl-extra.el cl-macs.el cl-seq.el cl.el + cl.texinfo complete.el edmacro.el and changed info.el bytecomp.el +David Hansen: changed nnrss.el tempo.el + +David Herring: changed comint.el + +David Hunter: changed config.nt flymake.el ms-w32.h process.c + David J. Mackenzie: changed configure.in etags.c fakemail.c movemail.c wakeup.c Makefile cvtmail.c qsort.c termcap.c yow.c Makefile.in avoid.el b2m.c digest-doc.c emacsclient.c emacsserver.c emacstool.c etags-vmslib.c fortran.el hexl.c isearch.el and 12 other files -David Kastrup: changed calc.el Makefile.in ange-ftp.el autoload.el - calc-alg.el configure.in mouse-drag.el window.c +David Kastrup: changed greek.el replace.el search.c ange-ftp.el calc.el + faq.texi meta-mode.el process.c search.texi DEBUG MAILINGLISTS + Makefile.in autoload.el browse-url.el buffer.c building.texi + calc-alg.el configure.in cus-theme.el desktop.el easymenu.el + and 18 other files David K,Ae(Bgedal: wrote tempo.el and changed sendmail.el xmenu.c @@ -352,8 +431,6 @@ David Lawrence: changed loaddefs.el comint.el simple.el files.el Makefile c-mode.el cl.el dired.el emacs.1 emacsserver.c emerge.el gnus.el history.el lisp-mode.el lisp.el and 78 other files -David M Smith: changed ielm.el - David M. Brown: wrote array.el David M. Koppelman: wrote hi-lock.el @@ -361,6 +438,8 @@ David M. Koppelman: wrote hi-lock.el David M. Smith: wrote ielm.el and changed imenu.el +David Mccabe: changed lisp-mode.el + David Megginson: wrote derived.el and changed mode-clone.el @@ -372,17 +451,26 @@ David Mosberger-Tang: changed alpha.h unexelf.c cm.h config.in fakemail.c keyboard.c mem-limits.h process.c profile.c sorted-doc.c sysdep.c terminfo.c unexelf1.c yow.c -David Ponce: wrote recentf.el ruler-mode.el -and changed w32menu.c bytecomp.el emacs.rc makefile.w32-in w32fns.c - w32term.c +David Ponce: wrote recentf.el ruler-mode.el tree-widget.el +and changed w32menu.c w32term.c keyboard.c bytecomp.el callint.c + commands.texi cus-edit.el emacs.rc fileio.c files.el lread.c + makefile.w32-in mouse.el print.c termhooks.h tree-widget w32fns.c + which-func.el wid-edit.el windows.texi + +David Reitter: changed menu-bar.el url-http.el David Robinson: changed menu-bar.el x-win.el -David S. Goldberg: changed mm-decode.el emacs-mime.texi gnus-art.el +David S. Goldberg: changed gnus-art.el + +David Z. Maze: changed nnrss.el + +Davis Herring: changed isearch.el Decklin Foster: changed nngateway.el -Deepak Goel: changed README calc.el doctor.el snake.el +Deepak Goel: changed README appt.el calc-forms.el calc.el diary-lib.el + doctor.el snake.el Denis Howe: wrote browse-url.el @@ -390,15 +478,23 @@ Derek L. Davies: changed gud.el Detlev Zundel: wrote re-builder.el +Dhruva Krishnamurthy: changed makefile.w32-in + +Diane Murray: changed rmail-spam-filter.el rmail.el + Dick King: wrote uniquify.el -Didier Verna: changed gnus-picon.el gnus-msg.el gnus-start.el nnmail.el - rect.el binhex.el gnus-art.el gnus-spec.el gnus-sum.el gnus.el - gnus.texi message.el mm-bodies.el mm-util.el +Didier Verna: wrote gnus-diary.el nndiary.el +and changed nntp.el gnus-art.el gnus-msg.el gnus-group.el gnus-start.el + gnus-sum.el gnus-xmas.el gnus-picon.el gnus-salt.el cus-edit.el rect.el + dgnushack.el gnus-agent.el gnus-ems.el gnus-fun.el gnus-topic.el + message.el nnmail.el nnmbox.el smiley.el Dirk Herrmann: changed bibtex.el -Dirk Meyer: changed gnus-demon.el +Dmitry Antipov: changed keyboard.c + +Dominique De Waleffe: changed pcvs-info.el Don Morrison: wrote dabbrev.el @@ -406,35 +502,45 @@ Don Woods: changed replace.el Doug Cutting: wrote disass.el -Dr Francis J. Wright: changed comint.el - Drew Csillag: changed m4-mode.el E. Jay Berkenbilt: changed flyspell.el ispell.el window.h +Ed L. Cashin: changed gnus-sum.el imap.el + +Ed Swarthout: changed hexl.el + +Eduardo Mu,Aq(Boz: changed dired.el ls-lisp.el + Edward M. Reingold: wrote cal-china.el cal-coptic.el cal-french.el cal-islam.el cal-iso.el cal-julian.el cal-menu.el cal-move.el cal-persia.el calendar.el diary-lib.el holidays.el lunar.el solar.el and changed diary.el tex-mode.el cal-tex.el cal-mayan.el holiday.el cal-x.el cal-hebrew.el cal-chinese.el cal-dst.el diary-ins.el - diary-insert.el cal-persian.el cal-islamic.el list-holidays.el + diary-insert.el cal-persian.el cal-islamic.el calendar.texi + list-holidays.el + +Edwin Steiner: changed gnus-nocem.el -Ehud Karni: changed aviion-intel.h configure.in +Ehud Karni: changed rmail.el aviion-intel.h compile.el complete.el + configure.in frame.el rmailsum.el sort.el xdisp.c Eirik Fuller: changed ralloc.c xterm.c Eli Barzilay: wrote calculator.el -Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el -and changed msdos.c Makefile.in info.el files.el mainmake.v2 fileio.c - pc-win.el startup.el internal.el msdos.h config.bat dosfns.c xfaces.c - faces.el frame.c frame.el menu-bar.el simple.el w16select.c xdisp.c - sed2.inp and 348 other files +Eli Tziperman: wrote rmail-spam-filter.el -Emerick Rogul: changed message.el +Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el +and changed msdos.c Makefile.in files.el info.el fileio.c mainmake.v2 + config.bat pc-win.el startup.el internal.el msdos.h simple.el xfaces.c + dosfns.c menu-bar.el faces.el frame.c frame.el rmail.el makefile.w32-in + w16select.c and 430 other files -Emilio Lopes: changed help.el apropos.el bookmark.el fortran.el - hscroll.el iso-acc.el process.c window.el +Emilio C. Lopes: changed cmuscheme.el help.el woman.el apropos.el + bookmark.el cal-menu.el calendar.el calendar.texi display.texi + emacsclient.1 esh-cmd.el fortran.el hscroll.el iso-acc.el lisp.el + process.c window.el Emmanuel Briot: wrote ada-prj.el xml.el and changed ada-mode.el ada-stmt.el ada-xref.el @@ -444,11 +550,15 @@ Enami Tsugutomo: changed frame.c keyboard.c dispnew.c fileio.c process.c frame.h gnus-group.el perl-mode.el rmailsum.el sysdep.c vc.el window.c window.el +Era Eriksson: changed dired.el shell.el + Eric Decker: changed hp9000s800.h hpux.h sysdep.c Eric Ding: wrote goto-addr.el +and changed mh-utils.el mh-comp.el mh-e.el mh-mime.el -Eric Hanchrow: changed emacsclient.c +Eric Hanchrow: changed TUTORIAL.es abbrev.el autorevert.el dired.el + emacsclient.c make-dist Eric M. Ludlam: wrote checkdoc.el speedbar.el and changed info.el rmail.el speedbspec.el gud.el Makefile.in comint.el @@ -456,14 +566,14 @@ and changed info.el rmail.el speedbspec.el gud.el Makefile.in comint.el sb-dir-plus.xpm sb-dir.xpm sb-file+.xpm sb-file-.xpm sb-file.xpm sb-mail.xpm sb-pg-minus.xpm sb-pg-plus.xpm sb-pg.xpm and 9 other files -Eric Marsden: changed nnslashdot.el gnus-art.el +Eric Marsden: changed url-util.el Eric S. Raymond: wrote AT386.el asm-mode.el cookie1.el finder.el gud.el keyswap.el lisp-mnt.el loadhist.el -and changed vc.el Makefile.in files.el NEWS comint.el loaddefs.el - simple.el vc-hooks.el cust-print.el dired.el emacsbug.el help.el - isearch.el makefile.el tex-mode.el x-win.el bibtex.el buff-menu.el - bytecomp.el c-mode.el cmulisp.el and 219 other files +and changed vc.el Makefile.in files.el comint.el loaddefs.el simple.el + vc-hooks.el cust-print.el dired.el emacsbug.el help.el isearch.el + makefile.el tex-mode.el x-win.el bibtex.el buff-menu.el bytecomp.el + c-mode.el cmulisp.el cmuscheme.el and 217 other files Eric Youngdale: changed etags-vmslib.c @@ -472,70 +582,69 @@ Erik Naggum: wrote disp-table.el latin-4.el latin-5.el mailheader.el and changed simple.el emacs.c files.el lread.c rmail.el alloc.c editfns.c keyboard.c apropos.el configure.in dispnew.c filelock.c fns.c keymap.c lisp.h print.c process.c add-log.el buffer.c casetab.c cl-macs.el - and 111 other files + and 112 other files -Erik Toubro Nielsen: changed gnus-sum.el gnus-topic.el gnus-util.el +Erik Toubro Nielsen: changed gnus-sum.el gnus-topic.el Espen Skoglund: wrote pascal.el Ethan Bradford: changed ispell.el ange-ftp.el gnus.el gnuspost.el lpr.el mailalias.el vt-control.el -Ettore Perazzoli: changed mail-source.el - Eugene Exarevsky: changed sql.el -Evgeny Roubinchtein: changed pc-select.el +Evgeni Dobrev: changed man.el + +Evgeny Roubinchtein: changed mail-source.el pc-select.el F. Thomas May: wrote blackbox.el Fabrice Bauzac: changed dired-aux.el -Fabrice Popineau: changed etags.c gnus-cache.el gnus-score.el +Fabrice Popineau: changed etags.c gnus-cache.el -Felix Lee: changed nntp.el flyspell.el gnus-async.el outline.el - compile.el data.c gnus.el gud.el process.c vc.el xdisp.c +Felix Lee: changed flyspell.el outline.el compile.el data.c gud.el + nntp.el process.c vc.el xdisp.c -Flemming Hoejstrup Hansen: changed forms.el +Ferenc Wagner: changed nnweb.el -Florian Weimer: changed gnus-msg.el mm-bodies.el message.el mm-util.el - mml.el mailcap.el rfc2047.el gnus-cite.el gnus-score.el gnus-spec.el - gnus-uu.el mm-encode.el nnultimate.el qp.el +Flemming Hoejstrup Hansen: changed forms.el -Francesco Potorti: wrote cmacexp.el -and changed etags.c man.el delta.h uniquify.el latin-post.el latin-alt.el - rmail.el sgml-mode.el Makefile.in comint.el configure.in etags.1 - filelock.c gud.el hanoi.el mailalias.el sendmail.el simple.el - skeleton.el vc-hooks.el b2m.c and 16 other files +Florian Weimer: changed message.el coding.c gnus-art.el gnus.el gnus.texi + mm-util.el -Francesco Potort,Al(B: changed undigest.el comint.el etags.el data.c - generic-x.el tetris.el admin.el ange-ftp.el configure.in delta.h - dired-aux.el dos-w32.el etags.1 fileio.c files.el fns.c - maintaining.texi make-announcement make-tarball.txt mule.el pong.el - and 5 other files +Francesco Potort,Al(B: wrote cmacexp.el +and changed etags.c man.el delta.h undigest.el comint.el configure.in + uniquify.el latin-post.el rmail.el etags.1 etags.el latin-alt.el + sgml-mode.el Makefile.in data.c european.el filelock.c files.el + generic-x.el gud.el hanoi.el and 41 other files Francis J. Wright: wrote woman.el +and changed dired.el comint.el files.el -Francis Litterio: changed gnus-group.el saveplace.el - -Francis Wright: changed dired.el - -Francisco Solsona: changed message.el +Francis Litterio: changed keymaps.texi message.el os.texi saveplace.el -Francois Felix Ingrand: changed gnus-salt.el gnus-start.el +Francois Felix Ingrand: changed gnus-salt.el Frank Bennett: changed nnmail.el Frank Bresz: wrote diff.el +Frank Schmitt: changed gnus-sum.el + +Frank Weinberg: changed gnus-art.el + Fran,Ag(Bois Pinard: changed nndoc.el allout.el bytecomp.el gnus-sum.el - gnus-util.el gnus-uu.el gnus-win.el make-mode.el nnmail.el rmailsum.el - timezone.el + gnus-util.el gnus-uu.el make-mode.el nnmail.el rmailsum.el timezone.el + +Fran,Ag(Bois-David Collin: changed message.el mm-decode.el Fred Fish: changed linux.h unexec.c Fred Oberhauser: changed nnmail.el +Frederic Han: changed iso-cvt.el + Frederic Lepied: wrote expand.el and changed gnus.el @@ -545,11 +654,16 @@ and changed xmenu.c xterm.c xfns.c dpx2.h lwlib.c rmailsum.el rmail.el lwlib-Xaw.h lwlib-int.h xdisp.c compile.el editfns.c fns.c frame.h hilit19.el and 9 other files +Frederik Fouvry: changed sendmail.el TUTORIAL.nl emacs.bash faces.el + filecache.el mailalias.el rmail.el thumbs.el + Fritz Knabe: changed mh-mime.el +Fr,Ai(Bd,Ai(Bric Bothamy: changed TUTORIAL.fr + G Dinesh Dutt: changed etags.el -Gareth Jones: changed gnus-art.el gnus-score.el +Gareth Jones: changed fns.c gnus-score.el Garrett Wollman: changed sendmail.el @@ -560,39 +674,51 @@ and changed gnus-group.el gnus-topic.el Gary Delp: wrote mailpost.el (public domain) +Gary Howell: changed server.el + Gary Oberbrunner: changed gud.el Gary Wong: changed termcap.c tparam.c +Gaute B Strokkenes: changed process.c + Geoff Voelker: wrote lisp/makefile.nt nt.c nt.h ntheap.c ntheap.h ntinevt.c ntproc.c ntterm.c src/makefile.nt w32-fns.el windowsnt.h winnt.el -and changed makefile.nt w32.c w32fns.c fileio.c w32heap.c w32term.c - makefile.def w32inevt.c callproc.c s/ms-w32.h w32proc.c unexw32.c - w32term.h dos-w32.el emacs.bat loadup.el w32-win.el emacs.c keyboard.c - process.c w32console.c and 108 other files +and changed w32.c w32fns.c fileio.c w32heap.c w32term.c w32inevt.c + callproc.c s/ms-w32.h w32proc.c unexw32.c w32term.h dos-w32.el + emacs.bat loadup.el w32-win.el emacs.c keyboard.c process.c + w32console.c addpm.c cmdproxy.c and 107 other files -George V. Reilly: changed emacs.ico makefile.nt +George V. Reilly: changed emacs.ico Georges Brun-Cottan: wrote easy-mmode.el Gerd Moellmann: wrote authors.el ebrowse.el jit-lock.el rx.el tooltip.el and changed xdisp.c xterm.c dispnew.c dispextern.h xfns.c xfaces.c - window.c keyboard.c lisp.h faces.el Makefile.in alloc.c buffer.c + window.c keyboard.c lisp.h Makefile.in faces.el alloc.c buffer.c startup.el xterm.h fns.c simple.el term.c configure.in frame.c xmenu.c - and 618 other files + and 622 other files Germano Caronni: changed ralloc.c Gernot Heiser: changed refer.el -Glenn Morris: changed f90.el fortran.el scroll-all.el files.el - timeclock.el autoinsert.el calendar.el imenu.el startup.el +Giuseppe Scrivano: changed buffer.c configure configure.in sysdep.c + xsmfns.c + +Glenn Morris: changed f90.el diary-lib.el fortran.el calendar.el + calendar.texi appt.el sh-script.el timeclock.el cal-hebrew.el + cal-islam.el cal-menu.el files.el programs.texi scroll-all.el + startup.el cal-coptic.el cal-julian.el cal-move.el cal-x.el + display.texi emacs-xtra.texi and 37 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el Gordon Matzigkeit: changed gnus-uu.el +Greg Hill: changed bytecomp.el + Greg Hudson: changed configure.in indent.c Greg Klanderman: changed messagexmas.el @@ -604,6 +730,10 @@ Greg Stark: changed gnus-ems.el timezone.el Gregor Schmid: wrote tcl-mode.el and changed intervals.c intervals.h textprop.c dispnew.c indent.c xdisp.c +Gregorio Gervasio, Jr.: changed gnus-sum.el + +Gregory Chernov: changed nnslashdot.el + Gregory Neil Shapiro: changed mailabbrev.el Guillermo J. Rozas: wrote fakemail.c @@ -614,11 +744,12 @@ Gustav H,Ae(Bllberg: changed compile.el Guy Geens: changed gnus-score.el -Gvran Uddeborg: changed isc4-1.h +G,Av(Bran Uddeborg: changed isc4-1.h -Hallvard B. Furuseth: changed gnus-sum.el gnus-util.el editfns.c - gnus-cache.el lread.c mailcap.el messcompat.el mm-bodies.el mm-util.el - nntp.el print.c process.c rfc2047.el search.c +Hallvard B. Furuseth: changed gnus-util.el editfns.c gnus-cache.el + gnus-sum.el lread.c messcompat.el nntp.el print.c process.c search.c + +Han Boetes: changed netbsd.h Han-Wen Nienhuys: changed emacsclient.c server.el @@ -631,14 +762,18 @@ Harald Maier: changed w32heap.c Heiko Muenkel: changed b2m.c +Helmut Waitzmann: changed gnus.texi + Henrik Enberg: changed lread.c Henry Guillaume: wrote find-file.el -Henry Kautz: wrote refbib.el +Henry Kautz: wrote bib-mode.el refbib.el Hewlett-Packard: changed emacsclient.c emacsserver.c keyboard.c server.el +Hiroshi Fujishima: changed faq.texi + Hiroshi Nakano: changed ralloc.c unexelf.c Holger Schauer: wrote fortune.el @@ -653,13 +788,15 @@ Howard Melman: changed imenu.el picture.el Howie Kaye: wrote sort.el -Hrvoje Niksic: changed message.el gnus-art.el mml.el gnus-xmas.el - mm-decode.el nnmail.el fileio.c fns.c gnus-salt.el gnus-spec.el - gnus-sum.el mm-bodies.el uudecode.el add-log.el appt.el arc-mode.el - avoid.el binhex.el bookmark.el cal-china.el cal-tex.el - and 90 other files - Hrvoje Nik,B9(Bi,Bf(B: wrote croatian.el +and changed gnus-xmas.el message.el nnmail.el fileio.c fns.c gnus-art.el + gnus-salt.el gnus-spec.el mm-decode.el add-log.el appt.el arc-mode.el + avoid.el bookmark.el cal-china.el cal-tex.el calendar.el cl-indent.el + cmacexp.el comint.el compile.el and 83 other files + +H,Ae(Bkan Granath: changed dired.el + +H,Ae(Bkon Malmedal: changed calendar.el holidays.el Ian Lance Taylor: changed sco4.h @@ -668,6 +805,8 @@ and changed ange-ftp.el desktop.el tex-mode.el Ilja Weis: wrote gnus-topic.el +Ilya N. Golubev: changed shell.el + Ilya Zakharevich: wrote tmm.el and changed syntax.c cperl-mode.el syntax.h textprop.c dired.c font-lock.el interval.c intervals.c intervals.h regex.c regex.h @@ -679,8 +818,8 @@ Indiana University Foundation: changed buffer.c buffer.h indent.c region-cache.c region-cache.h search.c xdisp.c Inge Frick: changed easymenu.el keyboard.c view.el compile.el - dired-aux.el arc-mode.el dired.el files.el keyboard.h keymap.c - tar-mode.el window.el xmenu.c + dired-aux.el arc-mode.el dired.el files.el gnus-sum.el keyboard.h + keymap.c tar-mode.el window.el xmenu.c Inoue Seiichiro: changed xterm.c xfns.c xterm.h @@ -689,36 +828,33 @@ International Business Machines: changed emacs.c fileio.c ibmrt-aix.h Ishikawa Chiaki: changed aviion.h dgux.h -Istvan Marko: changed gnus-agent.el mm-decode.el +Istvan Marko: changed gnus-agent.el xfns.c -Ivan Zakharyaschev: changed codepage.el +Ivan Zakharyaschev: changed codepage.el lread.c Ivar Rummelhoff: wrote winner.el Iwamuro Motonori: changed gnus-kill.el -J.D. Smith: changed idlw-rinfo.el idlw-shell.el idlw-toolbar.el - idlwave.el - -Jaap-Henk Hoepman: changed gnus-msg.el +J.D. Smith: wrote idlw-rinfo.el +and changed idlwave.el idlw-shell.el idlw-toolbar.el idlw-help.el Jack Repenning: changed unexelfsgi.c -Jack Vinson: changed mailcap.el +Jack Twilley: changed message.el Jacques Duthen: changed ps-print.el -Jaeyoun Chung: changed hangul3.el hanja3.el gnus-mule.el gnus.el - hangul.el +Jaeyoun Chung: changed hangul3.el hanja3.el gnus-mule.el hangul.el James Clark: wrote sgml-mode.el -and changed window.c xselect.c +and changed fns.c window.c xselect.c -James H. Cloos, Jr.: changed gnus-art.el gnus-sum.el +James Cloos: changed url-history.el James R. Larus: wrote mh-e.el -James Thompson: changed ps-print.el +James R. Van Zandt: changed sh-script.el James Troup: changed gnus-sum.el @@ -728,38 +864,47 @@ Jamie Zawinski: wrote byte-opt.el byte-run.el bytecomp.el disass.el mailabbrev.el tar-mode.el and changed bytecode.c mail-extr.el subr.el -Jan Dj,Ad(Brv: changed xterm.c gtkutil.c xfns.c xterm.h configure.in - keyboard.c startup.el x-win.el xmenu.c Makefile.in config.in emacs.c - gtkutil.h lisp.h lwlib-Xm.c xlwmenu.c Activate.c DEBUG INSTALL alloc.c - authors.el and 8 other files +Jan Dj,Ad(Brv: wrote dnd.el x-dnd.el +and changed gtkutil.c xterm.c xfns.c xmenu.c xterm.h gtkutil.h + configure.in Makefile.in config.in keyboard.c configure frames.texi + xselect.c emacs.c alloc.c xdisp.c xlwmenu.c fileio.c frame.c x-win.el + xfaces.c and 158 other files -Jan Nieuwenhuizen: changed emacs.c emacsclient.c server.el startup.el +Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c + gud.el nnmh.el server.el startup.el Jan Schormann: wrote solitaire.el -Jan Vroonhof: changed gnus-cite.el gnus-msg.el message.el nntp.el +Jan Vroonhof: changed gnus-cite.el gnus-msg.el nntp.el Jan-Hein Buhrman: changed ange-ftp.el env.el -Jari Aalto: changed add-log.el gnus-art.el apropos.el cperl-mode.el - debug.el files.el font-lock.el lisp-mnt.el ls-lisp.el mailcap.el - nnmail.el +Jari Aalto: changed add-log.el filecache.el gnus-art.el lisp-mnt.el + nnmail.el apropos.el autorevert.el compile.el cperl-mode.el debug.el + executable.el files.el finder.el font-lock.el grep.el ls-lisp.el man.el + terminal.el -Jason R Mastaler: changed drums.el +Jason Merrill: changed imap.el Jason Rumney: wrote w32-vars.el -and changed w32term.c w32fns.c w32menu.c w32-win.el w32term.h makefile.nt - w32-fns.el w32.c w32bdf.c makefile.w32-in w32console.c w32gui.h - w32select.c mule-cmds.el w32bdf.h config.nt keyboard.c w32faces.c - w32inevt.c w32proc.c emacs.c and 55 other files +and changed w32fns.c w32term.c w32menu.c w32-win.el w32term.h + makefile.w32-in w32.c w32bdf.c w32-fns.el w32select.c w32console.c + w32gui.h w32proc.c keyboard.c mule-cmds.el emacs.c fileio.c w32bdf.h + w32inevt.c config.nt configure.bat and 76 other files -Jay K. Adams: wrote jka-compr.el +Jay Belanger: changed calc.texi calc.el calc-ext.el calc-embed.el + calc-aent.el calc-prog.el calc-help.el calc-graph.el calc-lang.el + calc-store.el calc-yank.el calc-units.el calcalg2.el calc-misc.el + calc-alg.el calc-arith.el calc-poly.el calccomp.el calc-vec.el + calc-forms.el calc-math.el and 23 other files -Jay R. Adams: changed jka-compr.el +Jay K. Adams: wrote jka-cmpr-hook.el jka-compr.el Jay Sachs: changed gnus-score.el gnus-win.el -Jeff Dwork: changed ehelp.el +Jean-Philippe Theberge: wrote thumbs.el + +Jeff Dwork: changed ehelp.el facemenu.el Jeff Morgenthaler: changed flow-ctrl.el vt200.el vt201.el vt220.el vt240.el @@ -768,7 +913,12 @@ Jeff Norden: wrote kermit.el Jeff Peck: wrote sun-curs.el sun-fns.el sun-mouse.el sun.el -Jeffrey C Honig: changed bsdos4.h +Jeffrey C Honig: wrote mh-print.el +and changed mh-comp.el mh-e.el mh-utils.el mh-customize.el mh-funcs.el + mh-seq.el Makefile bsdos4.h mh-alias.el mh-junk.el mh-loaddefs.el + mh-mime.el + +Jens Krinke: changed smime.el Jens Lautenbacher: changed gnus.el @@ -777,22 +927,27 @@ and changed ffap.el Jens Toivo Berger Thielemann: changed word-help.el -Jens-Ulrik Holger Petersen: changed cus-edit.el find-func.el - gnus-group.el gnus-msg.el gnus.el +Jens-Ulrik Holger Petersen: changed cus-edit.el find-func.el gnus.el + +Jeremy Maitin-Shepard: changed mml.el Jerry Frain: changed systime.h usg5-4.h Jerry James: changed format.el -Jesper Harder: changed message.el +Jesper Harder: wrote yenc.el +and changed gnus-art.el gnus-sum.el message.el gnus-msg.el gnus.el + gnus-group.el mm-bodies.el gnus-util.el mm-util.el mm-decode.el + rfc2047.el mml.el mml1991.el mailcap.el mm-uu.el pgg-gpg.el + gnus-srvr.el gnus-uu.el info.el nnmail.el pgg.el and 180 other files + +Jhair Tocancipa Triana: changed gnus-audio.el Jim Blandy: wrote tvi970.el and changed keyboard.c xterm.c xfns.c Makefile.in window.c process.c dispnew.c xdisp.c sysdep.c configure.in lisp.h keymap.c configure make-dist buffer.c frame.c screen.c x-win.el simple.el alloc.c emacs.c - and 391 other files - -Jim Davidson: changed gnus-sum.el message.el + and 389 other files Jim Kingdon: changed MACHINES SERVICE emacsclient.c emacs.tex hp300bsd.h rmail.el @@ -807,11 +962,25 @@ Jim Thompson: wrote ps-print.el Jim Wilson: changed Makefile.in alloca.c +Jirka Kosek: changed mule.el + +Joakim Hove: wrote html2text.el + Joanna Pluta: changed TUTORIAL.pl Jochen K,A|(Bpper: changed calc-units.el -Joe Buehler: changed gnus-util.el +Joe Buehler: changed Makefile.in cygwin.h MACHINES browse-url.el + comint.el configure configure.in dired-aux.el dired.el dirtrack.el + dos-w32.el fast-lock.el filecache.el fileio.c files.el gmalloc.c + gnus-util.el hippie-exp.el keyboard.c lastfile.c loadup.el + and 12 other files + +Joe Corneli: changed subr.el + +Joe Edmonds: changed lisp-mode.el + +Joe Kelsey: changed skeleton.el Joe Ramey: changed filelock.c rmailsum.el @@ -821,20 +990,18 @@ Joe Wells: wrote apropos.el mail-extr.el resume.el Joel N. Weber Ii: changed comint.el make-dist -Joel Ray Holveck: changed info.el - -Joerg Lenneis: changed nneething.el nnheader.el +Joel Ray Holveck: changed gnus-sum.el info.el Joev Dubach: changed nntp.el -Johan Kullstam: changed mm-encode.el +Johan Bockgard: changed cl-macs.el cl.texi + +Johan Bockg,Ae(Brd: changed cl-macs.el custom.el flyspell.el help-fns.el Johan Vromans: wrote forms-d2.el forms.el iso-acc.el and changed complete.el -Johannes Weinert: changed gnus-sum.el - -John Eaton: wrote octave-hlp.el octave-inf.el octave-mod.el +John Basrai: changed man.el John F. Carr: changed dired.c @@ -842,51 +1009,54 @@ John F. Whitehead: changed mule-cmds.el mule-diag.el John Grabowski: changed xfaces.c xfns.c -John H. Palmieri: changed mail-source.el +John H. Palmieri: changed gnus-fun.el John Heidemann: wrote mouse-copy.el mouse-drag.el zone-mode.el John Hughes: changed term.c -John Paul Wallington: changed ibuffer.el ibuf-ext.el rmail.el startup.el - apropos.el eudc.el help-fns.el info.el browse-url.el bytecomp.el - chistory.el cl-indent.el comint.el cus-start.el doctor.el ediff-util.el - eldoc.el em-cmpl.el em-dirs.el em-glob.el em-hist.el and 28 other files +John Paul Wallington: changed ibuffer.el ibuf-ext.el subr.el files.el + thumbs.el fns.c rmail.el bindings.el bytecomp.el cus-theme.el + help-fns.el info.el re-builder.el startup.el apropos.el browse-url.el + cus-start.el display.texi ebuff-menu.el emerge.el eudc.el + and 105 other files John Robinson: wrote bg-mouse.el John Tobey: changed gud.el -John W. Eaton: changed octave-mod.el +John W. Eaton: wrote octave-hlp.el octave-inf.el octave-mod.el -John Wiegley: wrote align.el em-alias.el em-banner.el em-basic.el - em-cmpl.el em-dirs.el em-glob.el em-hist.el em-ls.el em-pred.el - em-prompt.el em-rebind.el em-script.el em-smart.el em-term.el - em-unix.el em-xtra.el esh-arg.el esh-cmd.el esh-ext.el esh-io.el - esh-maint.el esh-mode.el esh-module.el esh-opt.el esh-proc.el - esh-test.el esh-util.el esh-var.el eshell.el pcmpl-cvs.el pcomplete.el - timeclock.el -and changed mail-source.el Makefile.in allout.el compile.el desktop.el - gnus-art.el gnus-mlspl.el gnus-topic.el outline.el pcmpl-gnu.el term.el +John Wiegley: wrote align.el cal-bahai.el em-alias.el em-banner.el + em-basic.el em-cmpl.el em-dirs.el em-glob.el em-hist.el em-ls.el + em-pred.el em-prompt.el em-rebind.el em-script.el em-smart.el + em-term.el em-unix.el em-xtra.el esh-arg.el esh-cmd.el esh-ext.el + esh-io.el esh-maint.el esh-mode.el esh-module.el esh-opt.el esh-proc.el + esh-test.el esh-util.el esh-var.el eshell.el isearchb.el pcmpl-cvs.el + pcomplete.el timeclock.el +and changed iswitchb.el Makefile.in allout.el cal-menu.el calendar.el + compile.el desktop.el diary-lib.el flyspell.el holidays.el outline.el + pcmpl-gnu.el term.el Jon K Hellan: wrote utf7.el -Jon Kv: changed nnfolder.el - -Jonas Steverud: changed gnus-art.el - Jonathan I. Kamens: changed pop.c movemail.c rmail.el configure.in Makefile.in b2m.pl config.in files.el pop.h terminal.el vc.el - jka-compr.el rmailout.el rnewspost.el sendmail.el simple.el timezone.el - vc-hooks.el + gnus-sum.el jka-compr.el rmailout.el rnewspost.el sendmail.el simple.el + timezone.el vc-hooks.el Jonathan Stigelman: wrote hilit19.el Jonathan Vail: changed vc.el -Jonathan Yavner: wrote ses.el testcover-ses.el testcover-unsafep.el - testcover.el unsafep.el -and changed Makefile.in files.el ses-example.ses ses.texi +Jonathan Yavner: wrote tcover-ses.el tcover-unsafep.el +and changed testcover.el Makefile.in files.el functions.texi + ses-example.ses ses.el ses.texi testcover-ses.el testcover-unsafep.el + unsafep.el variables.texi + +Jorgen Schaefer: changed type-break.el + +Jose E. Marchesi: changed smtpmail.el Joseph Arceneaux: wrote xrdb.c and changed xterm.c xfns.c keyboard.c screen.c dispnew.c xdisp.c window.c @@ -896,10 +1066,21 @@ and changed xterm.c xfns.c keyboard.c screen.c dispnew.c xdisp.c window.c Joseph M. Kelsey: changed dir.h fileio.c uaf.h vms-pwd.h vmsfns.c -Juanma Barranquero: changed makefile.w32-in faces.el subr.el help-fns.el - w32fns.c fileio.c grep-changelog idlw-shell.el replace.el sh-script.el - composite.c editfns.c filesets.el idlwave.el ielm.el keyboard.c - macfns.c mule-util.el mule.el speedbar.el timer.el and 186 other files +Josh Huber: changed mml-sec.el gnus-msg.el message.el mml.el mml2015.el + nnmail.el ChangeLog ChangeLog.1 gnus-cite.el gnus-delay.el gnus-spec.el + mml1991.el nnultimate.el nnwfm.el gnus-cus.el gnus-smiley.el + gnus-start.el gnus-topic.el gnus.el nnbabyl.el nndiary.el + and 7 other files + +Joshua Varner: changed intro.texi + +Juan Le,As(Bn Lahoz Garc,Am(Ba: wrote wdired.el +and changed files.el perl-mode.el + +Juanma Barranquero: changed makefile.w32-in help-fns.el subr.el faces.el + files.el w32fns.c cperl-mode.el replace.el simple.el eval.c comint.el + sh-script.el xdisp.c allout.el idlwave.el process.c thumbs.el + vhdl-mode.el xfaces.c .cvsignore desktop.el and 539 other files Juergen Nickelsen: wrote ws-mode.el @@ -907,7 +1088,17 @@ Julien Gilles: wrote gnus-ml.el Junio Hamano: changed window.el -Justin Sheehy: changed gnus-util.el nnmail.el nntp.el +Jure Cuhalev: changed ispell.el + +Juri Linkov: changed info.el isearch.el compile.el replace.el simple.el + grep.el faces.el dired.el descr-text.el display.texi dired-aux.el + edebug.el lisp.el files.el help-fns.el lisp-mode.el help.el ispell.el + mule.el startup.el building.texi and 151 other files + +Justin Sheehy: changed gnus-sum.el nntp.el + +J,Ai(Br,At(Bme Marant: changed Makefile.in make-dist bindings.el configure + configure.in emacsclient.c K. Shane Hartman: wrote chistory.el echistory.el electric.el emacsbug.el helper.el picture.el view.el @@ -918,75 +1109,91 @@ and changed rmail.el loaddefs.el ebuff-menu.el dired.el simple.el Kahlil Hodgson: changed timeclock.el -Kai Gro,A_(Bjohann: wrote tramp-util.el tramp-uu.el tramp.el -and changed dired.el paragraphs.el Makefile.in ange-ftp.el files.el - gnus-art.el gnus-sum.el lisp.el message.el nnmail.el tramp.texi alloc.c - configure.in diary-lib.el dir eshell.el gnus-cus.el gnus-start.el - gnus-util.el info.el log-view.el and 12 other files +Kai Gro,A_(Bjohann: wrote gnus-delay.el tramp-util.el tramp-uu.el tramp.el + trampver.el +and changed message.el gnus-agent.el gnus-sum.el gnus-art.el nnmail.el + files.el tramp.texi gnus.el simple.el ange-ftp.el gnus-group.el + gnus-msg.el Makefile.in dired.el nnml.el paragraphs.el bindings.el + files.texi gnus-start.el imap.el man.el and 56 other files + +Kailash C. Chowksey: changed HELLO Makefile.in ind-util.el kannada.el + knd-util.el loadup.el makefile.w32-in -Karl Berry: changed filelock.c dired.c compile.el fileio.c info.texi - isc2-2.h sort.el +Karl Berry: changed info.texi filelock.c copyright.el dired.c elisp.texi + texinfo.el compile.el emacs.texi fileio.c help.texi isc2-2.h sort.el + syntax.texi tex-mode.el + +Karl Chen: changed files.el align.el gnus-art.el help-mode.el python.el + vc-svn.el Karl Eichwalder: changed Makefile.in add-log.el bookmark.el dired-aux.el - dired.el info.el menu-bar.el midnight.el + dired.el info.el menu-bar.el midnight.el po.el Karl Fogel: wrote bookmark.el mail-hist.el saveplace.el -and changed isearch.el autogen.sh editfns.c menu-bar.el window.c +and changed isearch.el menu-bar.el autogen.sh editfns.c vc-svn.el + window.c Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c - alloc.c files.el frame.c window.c configure.in data.c minibuf.c + alloc.c files.el frame.c configure.in window.c data.c minibuf.c editfns.c fns.c process.c fileio.c simple.el keymap.c indent.c sysdep.c - and 445 other files + and 444 other files -Karl Kleinpaste: changed gnus-art.el gnus-sum.el gnus-util.el gnus-cus.el - gnus-msg.el gnus-score.el mailcap.el message.el mm-encode.el mm-uu.el - nnheader.el +Karl Kleinpaste: changed gnus-art.el gnus-picon.el gnus-score.el + gnus-sum.el gnus-uu.el gnus-xmas.el mm-uu.el mml.el nnmail.el smiley.el Karl M. Hegbloom: changed gnus.el -Katsumi Yamaoka: changed gnus-art.el gnus-sum.el gnus-group.el - gnus-start.el mail-source.el nntp.el frame.el gnus-util.el message.el - mm-bodies.el nnagent.el nnheader.el nnimap.el nnmail.el parse-time.el +Karl Pfl,Ad(Bsterer: changed spam-stat.el + +Katsuhiro Hermit Endo: changed gnus-spec.el + +Katsumi Yamaoka: wrote canlock.el +and changed gnus-art.el message.el gnus-sum.el mm-view.el gnus-msg.el + gnus-util.el mm-decode.el gnus.el lpath.el mm-util.el gnus-agent.el + dgnushack.el gnus-group.el nntp.el gnus-start.el spam.el mml.el + nndraft.el emacs-mime.texi gnus-score.el gnus-spec.el + and 59 other files Kaveh R. Ghazi: changed delta88k.h xterm.c Kawabata, Taichi: wrote indian.el -and changed devanagari.el Makefile.in characters.el devan-util.el - fontset.el ind-util.el mule-conf.el +and changed devanagari.el ind-util.el Makefile.in devan-util.el + characters.el fontset.el malayalam.el mlm-util.el mule-conf.el tamil.el + tml-util.el Kayvan Sylvan: changed sc.el -Kazushi: changed filelock.c hexl.c profile.c unexalpha.c +Kazushi Marukawa: changed filelock.c hexl.c profile.c unexalpha.c + +Keiichi Suzuki: changed nntp.el Keisuke Nishida: changed print.c alloc.c bytecomp.el data.c keymap.c Keith Gabryelski: wrote hexl.c hexl.el -Ken Manheimer: changed allout.el +Ken Brush: changed emacsclient.c Ken Laprade: changed simple.el Ken Manheimer: wrote allout.el icomplete.el Ken Raeburn: changed lisp.h alloc.c buffer.c keyboard.c lread.c coding.c - Makefile.in fns.c minibuf.c editfns.c fileio.c keymap.c xfns.c xterm.c + minibuf.c Makefile.in fns.c editfns.c fileio.c keymap.c xfns.c xterm.c charset.h fontset.c search.c undo.c window.c xdisp.c charset.c - and 82 other files + and 83 other files Ken Stevens: wrote ispell.el Kenichi Handa: wrote cyrillic.el isearch-x.el py-punct.el pypunct-b5.el - quail.el -and changed coding.c mule-cmds.el mule.el charset.c xterm.c ccl.c - fileio.c fns.c charset.h mule-conf.el coding.h Makefile.in fontset.el - mule-diag.el fontset.c insdel.c japanese.el xdisp.c editfns.c process.c - mule-util.el and 232 other files + quail.el thai-word.el +and changed coding.c mule-cmds.el mule.el charset.c fns.c fileio.c + xterm.c ccl.c mule-conf.el Makefile.in fontset.c charset.h fontset.el + coding.h mule-diag.el xdisp.c editfns.c insdel.c japanese.el process.c + mule-util.el and 267 other files Kenneth Stailey: changed alpha.h configure.in ns32000.h openbsd.h pmax.h sparc.h unexalpha.c unexelf.c -Kenry Kautz: wrote bib-mode.el - Kevin Blake: changed font-lock.el ring.el Kevin Broadey: wrote foldout.el @@ -998,111 +1205,141 @@ Kevin Gallagher: wrote edt-lk201.el edt-mapper.el edt-pc.el edt-vt100.el and changed edt-user.doc Kevin Gallo: wrote w32-win.el -and changed makefile.nt dispnew.c addpm.c config.nt dispextern.h emacs.c - facemenu.el faces.el fns.c frame.c frame.h keyboard.c makefile.def - mouse.el ntterm.c process.c s/ms-w32.h scroll.c startup.el sysdep.c - term.c and 18 other files +and changed dispnew.c addpm.c config.nt dispextern.h emacs.c facemenu.el + faces.el fns.c frame.c frame.h keyboard.c mouse.el ntterm.c process.c + s/ms-w32.h scroll.c startup.el sysdep.c term.c unexw32.c w32.c + and 16 other files -Kevin J. Greiner: changed gud.el +Kevin Greiner: changed gnus-agent.el gnus-start.el gnus-sum.el + gnus-int.el gnus.el gnus-util.el nntp.el gnus-group.el gnus-cus.el + legacy-gnus-agent.el gnus-art.el gnus-cache.el gnus-range.el + gnus-srvr.el nnagent.el nnheader.el dgnushack.el gnus-async.el + gnus-draft.el gnus-registry.el gnus-salt.el and 4 other files Kevin Layer: changed w32proc.c -Kevin Rodgers: changed compile.el mailabbrev.el ange-ftp.el byte-opt.el - dired-x.el dired-x.texi files.el isearch.el loadhist.el mailalias.el - print.c replace.el sendmail.el simple.el vc.el xfns.c +Kevin Rodgers: changed compile.el mailabbrev.el dired-x.el ange-ftp.el + byte-opt.el desktop.el dired-x.texi ffap.el files.el isearch.el + loadhist.el mailalias.el menu-bar.el print.c replace.el sendmail.el + simple.el vc.el xfns.c -Kevin Ryde: changed info.el info-look.el makeinfo.el - -Kevin The Bandicoot: changed gnus-art.el +Kevin Ryde: wrote info-xref.el +and changed info-look.el info.el gnus-art.el gnus-sum.el MORE.STUFF + cc-align.el display.texi em-alias.el em-dirs.el em-hist.el em-unix.el + emacs-lisp-intro.texi ffap.el frames.texi glossary.texi gnus.texi + makeinfo.el programs.texi simple.el streams.texi strings.texi + and 3 other files Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el keypad.el kmacro.el -and changed simple.el process.c keyboard.c xdisp.c subr.el xterm.c - w32term.c window.c info.el dispextern.h keymap.c lisp.h macterm.c - msdos.c files.el frame.c w32fns.c xfns.c frame.h macfns.c msdos.h - and 72 other files +and changed xdisp.c dispextern.h simple.el process.c keyboard.c window.c + xterm.c w32term.c lisp.h macterm.c subr.el fringe.c dispnew.c xfaces.c + alloc.c fns.c xterm.h info.el display.texi msdos.c xfns.c + and 199 other files -Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-art.el - gnus-start.el gnus-win.el gnus-xmas.el gnus.texi imap.el message.el - mm-decode.el mm-encode.el nndraft.el nnml.el +Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el + gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el Kishore Kumar: changed terminal.el -Kiyokazu Suto: changed nnspool.el +Klaus Straubinger: changed url-http.el -Kjetil Torgrim Homme: changed nnmail.el +Klaus Zeitler: changed configure.in sh-script.el vcursor.el Koaunghi Un: wrote hanja3.el and changed hanja.el hangul.el hangul3.el hanja-jis.el symbol-ksc.el -Kobayashi Yasuhiro: changed w32fns.c w32term.c w32term.h +Kobayashi Yasuhiro: changed w32fns.c configure.bat w32term.c w32term.h + window.c xfns.c Kohtala Marko: changed info.el -Koseki Yoshinori: changed mm-util.el nnmail.el +Koseki Yoshinori: wrote iimage.el +and changed nnmail.el Kurt Hornik: wrote octave-hlp.el octave-inf.el octave-mod.el -and changed ielm.el term.el +and changed battery.el ielm.el term.el -Kurt Swanson: changed gnus-art.el gnus-salt.el gnus-msg.el gnus-sum.el - gnus-ems.el gnus-group.el gnus-score.el gnus-util.el nnmail.el window.c +Kurt Swanson: changed gnus-art.el gnus-salt.el gnus-sum.el gnus-ems.el + gnus-group.el gnus-msg.el gnus-score.el gnus-util.el nnmail.el window.c Kyle E. Jones: wrote mldrag.el Kyle Jones: wrote life.el and changed saveconf.el buffer.c mail-utils.el sendmail.el -Lantz Moore: changed nnmail.el +K,Ba(Broly L,Bu(Brentey: changed keyboard.c coding.c xfns.c xterm.c xterm.h Larry Kolodney: wrote cvtmail.c Lars Balker Rasmussen: changed gnus-art.el gnus-agent.el message.el +Lars Brinkhoff: changed building.texi config.in configure configure.in + editfns.c fns.c os.texi + +Lars Hansen: changed desktop.el mh-e.el info.el dired.el rmail.el + dired-x.el dired-x.texi dired.c files.texi grp.h ls-lisp.el misc.texi + url-auth.el url-cache.el url-dired.el url-ftp.el url-irc.el url-misc.el + url-news.el url-privacy.el url-vars.el and 33 other files + Lars Lindberg: wrote imenu.el msb.el and changed dabbrev.el -Lars Magne Ingebrigtsen: wrote format-spec.el gnus-agent.el gnus-art.el - gnus-async.el gnus-bcklg.el gnus-cache.el gnus-demon.el gnus-draft.el - gnus-dup.el gnus-eform.el gnus-ems.el gnus-group.el gnus-int.el - gnus-logic.el gnus-move.el gnus-nocem.el gnus-range.el gnus-salt.el - gnus-spec.el gnus-srvr.el gnus-start.el gnus-sum.el gnus-undo.el - gnus-util.el gnus-uu.el gnus-win.el ietf-drums.el mail-parse.el - mail-prsvr.el mail-source.el message.el messcompat.el mm-bodies.el - mm-decode.el mm-encode.el mm-util.el mm-view.el mml.el netrc.el - nnagent.el nnbabyl.el nndir.el nndoc.el nndraft.el nneething.el - nngateway.el nnkiboze.el nnlistserv.el nnmail.el nnmbox.el nnmh.el - nnml.el nnoo.el nnslashdot.el nnsoup.el nntp.el nnultimate.el nnweb.el - qp.el rfc2045.el rfc2047.el rfc2231.el score-mode.el time-date.el -and changed gnus.el gnus-msg.el gnus-score.el gnus-topic.el nnheader.el - nnfolder.el mailcap.el gnus-cite.el gnus-picon.el nnvirtual.el drums.el - gnus-xmas.el gnus-cus.el parse-time.el date.el dgnushack.el editfns.c - gnus-mh.el gnus-soup.el pop3.el fns.c and 38 other files +Lars Magne Ingebrigtsen: wrote compface.el dns.el format-spec.el + gnus-agent.el gnus-art.el gnus-async.el gnus-bcklg.el gnus-cache.el + gnus-demon.el gnus-draft.el gnus-dup.el gnus-eform.el gnus-ems.el + gnus-fun.el gnus-group.el gnus-int.el gnus-logic.el gnus-move.el + gnus-nocem.el gnus-picon.el gnus-range.el gnus-salt.el gnus-spec.el + gnus-srvr.el gnus-start.el gnus-sum.el gnus-undo.el gnus-util.el + gnus-uu.el gnus-win.el ietf-drums.el mail-parse.el mail-prsvr.el + mail-source.el message.el messcompat.el mm-bodies.el mm-decode.el + mm-encode.el mm-util.el mm-view.el mml.el netrc.el nnagent.el + nnbabyl.el nndir.el nndoc.el nndraft.el nneething.el nngateway.el + nnkiboze.el nnlistserv.el nnmail.el nnmbox.el nnmh.el nnoo.el + nnslashdot.el nnsoup.el nntp.el nnultimate.el nnweb.el nnwfm.el qp.el + rfc2045.el rfc2047.el rfc2231.el score-mode.el spam.el time-date.el +and changed gnus.el gnus-msg.el gnus-score.el gnus-topic.el gnus-xmas.el + nnfolder.el gnus-cite.el nnheader.el nnml.el lpath.el nnvirtual.el + dgnushack.el gnus-cus.el smiley-ems.el editfns.c gnus-mh.el + gnus-soup.el gnus.texi nnrss.el pop3.el fns.c and 46 other files Lasse Rasinen: changed gnus-start.el +Lawrence Mitchell: changed subr.el + Lawrence R. Dodd: wrote dired-x.el and changed fortran.el ispell.el sendmail.el cmuscheme.el comint.el compile.el dired.el find-dired.el gnus.el gud.el inf-lisp.el info.el lisp.el loaddefs.el man.el minibuf.c rcs2log rmail.el simple.el terminal.el text-mode.el and 4 other files -Lee Willis: changed gnus-art.el - Leigh Stoller: changed emacsclient.c emacsserver.c server.el +Lennart Borgman: changed w32term.c w32term.h + Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c Leonard H. Tower Jr.: changed rnews.el rnewspost.el emacsbug.el rmailout.el -Lloyd Zusman: changed gnus-sum.el mailcap.el nnmail.el +Lloyd Zusman: changed mml.el -Luc Teirlinck: changed ielm.el dired-aux.el files.el sh-script.el subr.el +Luc Teirlinck: wrote help-at-pt.el +and changed files.el autorevert.el simple.el subr.el frames.texi + display.texi files.texi dired.el Makefile.in frame.el ielm.el + startup.el variables.texi comint.el custom.el fns.c minibuf.texi + modes.texi buffer.c buffers.texi commands.texi and 187 other files Lucid, Inc.: changed byte-opt.el byte-run.el bytecode.c bytecomp.el delsel.el disass.el faces.el font-lock.el lmenu.el lselect.el mailabbrev.el select.el xfaces.c xselect.c +Lute Kamstra: changed modes.texi generic.el debug.el generic-x.el + font-lock.el subr.el debugging.texi easy-mmode.el elisp.texi hl-line.el + simple.el Makefile.in battery.el bindings.el calc.el cmdargs.texi + edebug.texi emacs.texi info.el make-tarball.txt octave-inf.el + and 219 other files + Lynn Slater: wrote help-macro.el MCC: wrote xmenu.c @@ -1110,6 +1347,10 @@ and changed emacsclient.c emacsserver.c etags.c lisp.h movemail.c rmail.el rmailedit.el rmailkwd.el rmailmsc.el rmailout.el rmailsum.el scribe.el server.el sysdep.c unexec.c +Maciek Pasternacki: changed nnrss.el + +Magnus Henoch: changed ispell.el + Manuel Serrano: wrote flyspell.el Marc Fleischeuers: changed files.el @@ -1118,6 +1359,11 @@ Marc Girod: changed informat.el rmail.el rmailsum.el sendmail.el Marc Shapiro: changed bibtex.el +Marcelo Toledo: changed TUTORIAL.pt_BR FOR-RELEASE TUTORIAL.cn + TUTORIAL.cs TUTORIAL.de TUTORIAL.es TUTORIAL.fr TUTORIAL.it TUTORIAL.ja + TUTORIAL.ko TUTORIAL.pl TUTORIAL.ro TUTORIAL.ru TUTORIAL.sk TUTORIAL.sl + TUTORIAL.th TUTORIAL.translators TUTORIAL.zh add-log.el european.el + Marco Melgazzi: changed term.el Marco Walther: changed mips-siemens.h unexelfsni.c unexsni.c @@ -1127,14 +1373,22 @@ Marcus G. Daniels: changed xterm.c configure.in lwlib-Xm.c lwlib.c editfns.c emacs.c irix5-0.h linux.h lwlib-Xm.h lwlib.h ptx4.h sequent-ptx.h unexelf.c -Mario Lang: changed files.el +Marek Martin: changed nnfolder.el + +Mario Lang: changed battery.el diff.el files.el gud.el -Mark A. Hershberger: changed xml.el +Mark A. Hershberger: changed xml.el nnrss.el cperl-mode.el mm-url.el + gnus-group.el -Mark D. Baushke: changed etags.c +Mark D. Baushke: changed mh-e.el mh-utils.el mh-mime.el mh-comp.el + mh-customize.el mh-index.el mh-loaddefs.el Makefile mh-identity.el + mh-seq.el mh-speed.el mh-funcs.el mh-alias.el MH-E-NEWS etags.c + mh-junk.el mh-pick.el mh-xemacs-compat.el Mark Diekhans: changed compile.el +Mark H. Weaver: changed comint.el + Mark Lambert: changed process.c process.h Mark Mitchell: changed font-lock.el @@ -1143,9 +1397,11 @@ Mark Neale: changed fortran.el Mark Osbourne: changed hexl-mode.el +Mark Plaksin: changed nnrss.el + Mark W Maimone: changed mpuz.el -Mark W. Eichin: changed gnus.el keyboard.c xterm.c +Mark W. Eichin: changed keyboard.c xterm.c Marko Kohtala: changed info.el @@ -1158,66 +1414,88 @@ Markus Heritsch: wrote ada-xref.el Markus Holmberg: changed thingatpt.el Markus Rost: wrote cus-test.el -and changed cus-edit.el Makefile.in compile.el files.el find-func.el - rmail.el rmailsum.el simple.el tex-mode.el cus-dep.el mule-cmds.el - rmailout.el checkdoc.el configure.in custom.el emacsbug.el gnus.el - help-fns.el ls-lisp.el mwheel.el sendmail.el and 105 other files +and changed cus-edit.el Makefile.in files.el compile.el rmail.el + tex-mode.el find-func.el rmailsum.el simple.el cus-dep.el dired.el + mule-cmds.el rmailout.el checkdoc.el configure.in custom.el emacsbug.el + gnus.el help-fns.el ls-lisp.el mwheel.el and 122 other files Markus Triska: changed doctor.el +Marshall T. Vandegrift: changed gnus-fun.el + Martin Boyer: changed bibtex.el menu-bar.el Martin Buchholz: changed etags.c -Martin Larose: changed message.el +Martin Kretzschmar: changed gnus-spec.el -Martin Lorentzon: changed vc-hooks.el vc.el +Martin Larose: changed message.el -Martin Lorentzson: changed vc.el vc-cvs.el vc-rcs.el vc-hooks.el +Martin Lorentzon: changed vc.el vc-cvs.el vc-hooks.el vc-rcs.el vc-sccs.el Martin Neitzel: changed sc.el +Martin Rudalics: changed font-lock.el + Martin Stjernholm: wrote cc-bytecomp.el -and changed cc-engine.el cc-cmds.el cc-langs.el cc-vars.el cc-mode.el - cc-align.el cc-styles.el cc-defs.el cc-menus.el cc-mode-19.el - cc-lobotomy.el cc-make.el cc-mode.texi cc-style.el +and changed cc-engine.el cc-cmds.el cc-langs.el cc-mode.el cc-defs.el + cc-vars.el cc-align.el cc-styles.el cc-fonts.el cc-menus.el + cc-mode.texi Makefile.in cc-fix.el cc-mode-19.el ack.texi awk-mode.el + cc-guess.el cc-lobotomy.el cc-make.el cc-style.el files.el + and 3 other files Masahiko Sato: wrote vip.el Masanobu Umeda: wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus.el - metamail.el nnheader.el nnspool.el prolog.el rmailsort.el timezone.el + metamail.el nndb.el nnheader.el nnspool.el prolog.el rmailsort.el + timezone.el and changed gnuspost.el -Masatake Yamato: changed cus-face.el faces.el register.el asm-mode.el - bookmark.el page-ext.el ruler-mode.el +Masatake Yamato: wrote ld-script.el +and changed etags.el xdisp.c bindings.el hexl.el asm-mode.el faces.el + pcvs.el register.el ruler-mode.el wid-edit.el buffer.c cus-face.el + display.texi gud.el help.el man.el server.el simple.el smerge-mode.el + add-log.el animate.el and 31 other files + +Masayuki Ataka: changed texinfmt.el texinfo.el characters.el make-mode.el -Masayuki Ataka: changed texinfmt.el make-mode.el texinfo.el +Mats Lidell: changed TUTORIAL.sv european.el -Mats Lidell: changed european.el +Matt Hodges: changed em-pred.el icon.el paragraphs.el simple.el table.el + telnet.el -Matt Pharr: changed message.el gnus-msg.el gnus-group.el +Matt Pharr: changed message.el Matt Simmons: changed message.el -Matt Swift: changed gnus-group.el gnus-uu.el +Matt Swift: changed compile.el dired.el editfns.c lisp-mode.el + mm-decode.el outline.el rx.el simple.el startup.el + +Matthew Mundell: changed calendar.texi diary-lib.el files.texi + type-break.el debugging.texi display.texi edebug.texi editfns.c eval.c + fileio.c frames.texi help.texi internals.texi modes.texi nonascii.texi + objects.texi os.texi positions.texi searching.texi subr.el text.texi + tips.texi -Matthew Swift: changed compile.el editfns.c outline.el rx.el simple.el +Matthias F,Av(Brste: changed files.el -Matthias Andree: changed imap.el +Matthias Wiehl: changed gnus.el Matthieu Devin: wrote delsel.el -Max Froumentin: changed gnus-score.el +Matthieu Moy: changed message.el + +Max Froumentin: changed gnus-art.el Michael Albinus: wrote tramp-ftp.el tramp-smb.el -and changed tramp.el +and changed tramp.el tramp.texi tramp-vc.el files.el ange-ftp.el + files.texi tramp-util.el tramp-uu.el find-dired.el tramp*.el + trampver.el woman.el Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h unexec.c -Michael Cook: changed gnus-art.el gnus-cite.el - Michael D. Ernst: wrote reposition.el and changed dired-x.el uniquify.el ispell.el rmail.el bibtex.el dired.el simple.el dired-aux.el gud.el rmailsum.el bytecomp.el compare-w.el @@ -1227,8 +1505,12 @@ and changed dired-x.el uniquify.el ispell.el rmail.el bibtex.el dired.el Michael D. Prange: wrote fortran.el and changed tex-mode.el +Michael Downes: changed gnus-sum.el + Michael Gschwind: wrote iso-cvt.el latin-2.el +Michael Hotchin: changed compile.el + Michael I. Bushnell: changed rmail.el simple.el callproc.c gnu.h gnus.el lread.c process.c screen.el search.c sendmail.el startup.el timer.c @@ -1242,22 +1524,32 @@ Michael Kifer: wrote cal-x.el ediff-diff.el ediff-help.el ediff-hook.el viper-init.el viper-keym.el viper-macs.el viper-mous.el viper-util.el viper.el and changed ediff*.el viper*.el ediff-hooks.el ediff-merge.el menu-bar.el - appt.el ediff-meta.el ediff-nult.el ediff.texi viper-mouse.el - viper.texi + appt.el desktop.el ediff-meta.el ediff-nult.el ediff.texi + viper-mouse.el viper.texi + +Michael Piotrowski: changed ps-print.el Michael R. Cook: changed gnus-topic.el gnus-art.el gnus-sum.el +Michael R. Mauger: changed sql.el cua-base.el facemenu.el recentf.el + replace.el tramp.el w32fns.c + +Michael R. Wolf: changed ange-ftp.el + +Michael Schierl: changed pgg-pgp.el + Michael Schmidt: wrote modula2.el (public domain) -Michael Shields: changed intel386.h +Michael Shields: changed gnus-art.el gnus-cite.el gnus-sum.el intel386.h + nndraft.el Michael Sperber [Mr. Preprocessor]: changed aix3-1.h aix4-2.h Michael Staats: wrote pc-select.el -Michael Welsh Duggan: changed lisp.h w32term.c buffer.c gnus-art.el - gnus-start.el keyboard.c termhooks.h w32-win.el w32fns.c w32menu.c - w32term.h xdisp.c xterm.c +Michael Welsh Duggan: changed lisp.h w32term.c buffer.c gnus-spec.el + keyboard.c nnmail.el termhooks.h url-http.el w32-win.el w32fns.c + w32menu.c w32term.h xdisp.c xterm.c Michal Jankowski: changed insdel.c keyboard.c @@ -1266,14 +1558,13 @@ and changed gnus-score.el Mikael Djurfeldt: changed xdisp.c -Mike Fabian: changed gnus-group.el - Mike Haertel: changed 7300.h +Mike Kupfer: changed mh-e.el mh-utils.el + Mike Long: changed b2m.c make-dist make-mode.el netbsd.h view.el vms.h -Mike Mcewan: changed gnus-agent.el gnus-sum.el gnus.texi gnus-art.el - gnus-score.el mml.el +Mike Mcewan: changed gnus-agent.el gnus-sum.el gnus-score.el Mike Newton: changed bibtex.el @@ -1283,17 +1574,19 @@ Mike Rowan: changed process.c alloc.c dispnew.c keyboard.c process.h Mike Williams: wrote mouse-sel.el thingatpt.el and changed sgml-mode.el xml-lite.el -Mikio Nakajima: changed viper-util.el +Mike Woolley: changed gnus-sum.el + +Mikio Nakajima: changed ring.el viper-util.el Milan Zamazal: wrote czech.el glasses.el tildify.el -and changed slovak.el abbrev.el compile.el filecache.el +and changed slovak.el abbrev.el compile.el filecache.el files.el -Miles Bader: wrote button.el image-file.el minibuf-eldef.el +Miles Bader: wrote button.el image-file.el macroexp.el minibuf-eldef.el rfn-eshadow.el -and changed comint.el faces.el simple.el editfns.c info.el minibuf.c - wid-edit.el xterm.c window.el xdisp.c xfaces.c cus-edit.el diff-mode.el - subr.el help.el textprop.c xfns.c lisp.h menu-bar.el refill.el window.c - and 138 other files +and changed comint.el faces.el simple.el editfns.c xfaces.c info.el + xdisp.c minibuf.c wid-edit.el xterm.c window.el cus-edit.el + diff-mode.el subr.el dispextern.h xfns.c help.el lisp.h + quick-install-emacs textprop.c menu-bar.el and 205 other files Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el mule-conf.el mule.el pop3.el @@ -1316,54 +1609,70 @@ Mukesh Prasad: wrote vmsproc.el Murata Shuuichirou: changed coding.c +N. Raghavendra: changed timezone.el + Nachum Dershowitz: wrote cal-hebrew.el -Naoto Takahashi: changed ethio-util.el ethiopic.el fontset.el - latin-post.el mule-conf.el quail.el +Nagy Andras: wrote gnus-sieve.el +and changed imap.el + +Nakamura Toshikazu: changed w32fns.c NeXT, Inc.: wrote unexnext.c Neal Ziring: wrote vi.el (public domain) -Neil Crellin: changed mail-source.el - Neil Mager: wrote appt.el Neil W. Van Dyke: wrote webjump.el +Nelson H. F. Beebe: changed configure.in + Nelson Jose Dos Santos Ferreira: changed nnsoup.el +Nevin Kapur: changed nnmail.el gnus-group.el gnus-sum.el gnus.el + nnbabyl.el nnfolder.el nnimap.el nnmbox.el nnmh.el nnml.el + Niall Mansfield: changed etags.c Nick Roberts: wrote gdb-ui.el -and changed gud.el tooltip.el gud-break.pbm gud-break.xpm gud-cont.pbm - gud-cont.xpm gud-display.pbm gud-display.xpm gud-down.pbm gud-down.xpm - gud-finish.pbm gud-finish.xpm gud-goto.pbm gud-goto.xpm gud-next.pbm - gud-next.xpm gud-print.pbm gud-print.xpm gud-remove.pbm gud-remove.xpm - gud-run.pbm and 6 other files +and changed gud.el building.texi tooltip.el cc-mode.el subr.el + xt-mouse.el frames.texi gud-display.pbm DEBUG TODO bindings.el + byte-run.el bytecomp.el cc-vars.el cmacexp.el emacs.c gud-break.pbm + gud-break.xpm gud-cont.pbm gud-cont.xpm gud-display.xpm + and 64 other files Nico Francois: changed w32fns.c w32inevt.c w32menu.c Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el -and changed comint.el files.el mailabbrev.el sendmail.el subr.el timer.el - yow.el battery.el complete.el config.in configure.in copyright.h fns.c - gnu-linux.h hpux7.h irix3-3.h lisp-mnt.el loaddefs.el mailalias.el - menu-bar.el pp.el and 11 other files +and changed comint.el files.el emacs-buffer.gdb mailabbrev.el sendmail.el + subr.el timer.el yow.el battery.el complete.el config.in configure.in + copyright.h fns.c gnu-linux.h hpux7.h irix3-3.h lisp-mnt.el loaddefs.el + mailalias.el menu-bar.el and 14 other files Nobuyuki Hikichi: changed news-risc.h +Noel Cragg: changed mh-junk.el + +Nozomu Ando: changed buffer.c sysselect.h unexmacosx.c + +Nuutti Kotivuori: changed gnus-cache.el + Odd Gripenstam: wrote dcl-mode.el +Ognyan Kulev: changed TUTORIAL.bg cyrillic.el + Olaf Sylvester: wrote bs.el Ole Aamot: changed compile.el -Oleg S. Tihonov: changed cyrillic.el gnus-sum.el ispell.el map-ynp.el - subr.el +Oleg S. Tihonov: changed cyrillic.el ispell.el map-ynp.el subr.el Olin Shivers: wrote cmuscheme.el comint.el inf-lisp.el shell.el -Oliver Scholz: changed gamegrid.el +Olive Lin: changed tex-mode.el + +Oliver Scholz: changed gamegrid.el rx.el startup.el update-game-score.c Oliver Seidel: wrote todo-mode.el @@ -1377,25 +1686,36 @@ Oscar Figueiredo: wrote eudc-bob.el eudc-export.el eudc-hotlist.el eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el ldap.el and changed ph.el +Oystein Viggen: changed dgnushack.el + P. E. Jareth Hein: changed gnus-util.el Pace Willisson: wrote ispell.el +Pascal Dupuis: changed octave-inf.el + Paul D. Smith: wrote snmp-mode.el and changed imenu.el make-mode.el Paul Eggert: wrote cal-dst.el rcs2log vcdiff -and changed vc.el editfns.c configure.in Makefile.in vc-hooks.el data.c - emacs.c gnus.el config.in floatfns.c process.c sysdep.c calendar.el +and changed vc.el editfns.c Makefile.in configure.in vc-hooks.el data.c + emacs.c gnus.el calendar.el config.in floatfns.c process.c sysdep.c dired.el xterm.c callproc.c fileio.c filelock.c lread.c print.c - rmail.el and 274 other files + rmail.el and 287 other files -Paul Fisher: changed fns.c mm-decode.el +Paul Fisher: changed fns.c Paul Franklin: changed nnmail.el message.el Paul Hilfinger: changed fill.el +Paul Jarc: wrote nnmaildir.el nnnil.el +and changed message.el gnus-util.el gnus-int.el gnus.el gnus-agent.el + gnus-start.el gnus-sum.el lpath.el nnmail.el + +Paul Pogonyshev: changed subr.el align.el dabbrev.el display.texi + etags.el info.el ses.el tar-mode.el url-http.el which-func.el window.el + Paul Reilly: wrote dgux5-4r3.h gux5-4r2.h and changed dgux.h lwlib-Xm.c lwlib.c xlwmenu.c configure.in process.c xfns.c Makefile.in dgux5-4R2.h dgux5-4R3.h files.el keyboard.c @@ -1404,27 +1724,26 @@ and changed dgux.h lwlib-Xm.c lwlib.c xlwmenu.c configure.in process.c Paul Rubin: changed config.h sun2.h texinfmt.el window.c -Paul Stevenson: changed gnus-sum.el +Paul Stevenson: changed nnvirtual.el -Paul Stodghill: changed message.el gnus-agent.el gnus-msg.el nnimap.el +Paul Stodghill: changed gnus-agent.el -Pavel Jan,Am(Bk: changed keyboard.c xterm.c xdisp.c emacs.c menu-bar.el - process.c COPYING coding.c eval.c fileio.c indent.c ldap.el lisp.h - buffer.c data.c flyspell.el fns.c keymap.c msdos.c sysdep.c xfns.c - and 231 other files +Pavel Jan,Bm(Bk: changed COPYING keyboard.c xterm.c xdisp.c Makefile.in + process.c emacs.c lisp.h menu-bar.el ldap.el make-dist xfns.c buffer.c + coding.c eval.c fileio.c flyspell.el fns.c indent.c callint.c + cus-start.el and 693 other files -Pavel Jan,Bm(Bk: changed COPYING Makefile.in make-dist configure.in xlwmenu.c - TUTORIAL.cs TUTORIAL.sk landmark.el lucid.el tpu-edt.el antlr-mode.el - b2m.c battery.el binhex.el buff-menu.el callint.c cdl.el delim-col.el - diff.el dired-aux.el easy-mmode.el and 576 other files +Pavel Kobiakov: wrote flymake.el +and changed flymake.texi Per Abrahamsen: wrote cpp.el cus-dep.el cus-edit.el cus-face.el cus-start.el custom.el double.el gnus-cite.el gnus-cus.el gnus-score.el gnus-soup.el wid-browse.el wid-edit.el widget.el xt-mouse.el -and changed menu-bar.el message.el gnus-art.el gnus.el frame.el nnmail.el - tool-bar.el apropos.el easymenu.el facemenu.el faces.el gnus-msg.el - gnus-start.el ispell.el lisp-mode.el makefile.el mouse.el simple.el - texinfo.el Makefile cc-vars.el and 23 other files +and changed message.el menu-bar.el gnus.el gnus-art.el gnus-msg.el + gnus-group.el frame.el gnus-draft.el gnus-sum.el tool-bar.el + widget.texi apropos.el easymenu.el facemenu.el faces.el gnus-srvr.el + gnus-uu.el ispell.el lisp-mode.el makefile.el mouse.el + and 27 other files Per Bothner: wrote term.el and changed iso-acc.el process.c sysdep.c @@ -1438,28 +1757,38 @@ Per Starback: changed ispell.el gnus-start.el apropos.el bytecomp.el characters.el charset.h coding.c dired.el doctor.el emacs.c european.el iso-transl.el replace.el startup.el vc.el xdisp.c +Pete Kazmier: changed gnus-art.el + Pete Ware: wrote auto-show.el (public domain) and changed message.el +Pete-Temp: changed gnus-art.el + Peter Breton: wrote dirtrack.el filecache.el find-lisp.el generic-x.el generic.el locate.el net-utils.el -Peter Galbraith: changed simple.el +Peter Heslin: changed flyspell.el outline.el Peter Kleiweg: wrote ps-mode.el Peter Liljenberg: wrote elint.el -Peter Runestig: changed emacs.rc +Peter Runestig: changed makefile.w32-in configure.bat dos-w32.el emacs.rc + envadd.bat gmake.defs multi-install-info.bat nmake.defs w32fns.c + zone-mode.el -Peter S. Galbraith: wrote mh-alias.el mh-identity.el -and changed info-look.el goto-addr.el +Peter S. Galbraith: wrote mh-alias.el mh-identity.el mh-inc.el mh-init.el +and changed mh-comp.el mh-e.el mh-utils.el mh-mime.el mh-customize.el + mh-seq.el Makefile mh-loaddefs.el mh-pick.el mh-xemacs-compat.el + mh-xemacs-toolbar.el README info-look.el mh-funcs.el .cvsignore + MH-E-NEWS alias.pbm alias.xpm cabinet.xpm goto-addr.el highlight.xpm + and 12 other files -Peter Stephenson: wrote vcursor.el +Peter Seibel: changed cl-indent.el lisp-mode.el -Peter Von Der Ahe: changed gnus-sum.el message.el +Peter Stephenson: wrote vcursor.el -Petersen Jens-Ulrik: changed gnus-start.el +Peter Whaite: changed data.c Petri Kaurinkoski: changed configure.in iris4d.h irix6-0.h irix6-5.h usg5-4.h @@ -1468,27 +1797,39 @@ Philippe Schnoebelen: wrote gomoku.el mpuz.el Philippe Waroquiers: changed etags.el -Piet Van Oostrum: changed smtpmail.el +Piet Van Oostrum: changed data.c fileio.c smtpmail.el -Pmr-Sav: changed mail-utils.el rmail.el +Pieter E.J. Pareit: wrote mixal-mode.el -Puneet Goel: changed message.el +Pinku Surana: changed sql.el + +Pmr-Sav: changed mail-utils.el rmail.el R. Bernstein: changed gud.el +Rafael Sep,Az(Blveda: changed TUTORIAL.es + Rainer Schoepf: wrote alpha.h unexalpha.c and changed osf1.h alloc.c buffer.c callint.c data.c dispextern.h doc.c editfns.c floatfns.c frame.h lisp.h lread.c marker.c mem-limits.h print.c puresize.h window.h xdisp.c xterm.h +Raja R Harinath: changed nnml.el + Rajappa Iyer: changed gnus-salt.el Rajesh Vaidheeswarran: wrote whitespace.el +and changed ffap.el + +Ralf Angeli: wrote scroll-lock.el +and changed comint.el gnus-art.el window.c Ralf Fassel: changed dabbrev.el files.el fill.el iso-acc.el tar-mode.el Ralph Schleicher: wrote battery.el info-look.el -and changed libc.el +and changed libc.el fileio.c mm-decode.el nnultimate.el + +Ramakrishnan M: changed mlm-util.el Randal Schwartz: wrote pp.el @@ -1498,37 +1839,48 @@ Raul Acevedo: changed info.el options.el Ray Blaak: wrote delphi.el +Raymond Scholz: wrote deuglify.el +and changed gnus-art.el gnus-msg.el gnus.texi message.el nnmail.el + +Reiner Steib: changed gnus-art.el message.el gnus-sum.el gnus.el + gnus.texi gnus-msg.el gnus-score.el gnus-group.el mml.el gnus-faq.texi + gnus-start.el gnus-util.el message.texi deuglify.el gnus-agent.el + mm-decode.el nnimap.el nnmail.el nnweb.el spam-report.el spam.el + and 102 other files + Remek Trzaska: changed gnus-ems.el -Renaud Rioboo: changed gnus-demon.el nnmail.el +Renaud Rioboo: changed nnmail.el + +Ren,Ai(B Kyllingstad: changed pcomplete.el Reto Zimmermann: changed vhdl-mode.el Richard Dawe: changed Makefile.in config.in +Richard G Bielawski: changed paren.el + Richard Hoskins: changed message.el Richard King: wrote backquote.el filelock.c userlock.el Richard L. Pieri: wrote pop3.el -Richard M. Alderson Iii: changed gnus-art.el - Richard M. Heiberger: changed tex-mode.el Richard M. Stallman: wrote [The original GNU emacs and numerous files] - easymenu.el font-lock.el menu-bar.el paren.el + easymenu.el font-lock.el image-mode.el menu-bar.el paren.el and changed keyboard.c files.el simple.el xterm.c xdisp.c rmail.el - fileio.c process.c sysdep.c xfns.c Makefile.in buffer.c configure.in - window.c dispnew.c subr.el emacs.c editfns.c sendmail.el startup.el - info.el and 1121 other files + fileio.c process.c sysdep.c xfns.c buffer.c Makefile.in window.c + configure.in subr.el sendmail.el emacs.c dispnew.c editfns.c startup.el + info.el and 1301 other files Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el env.c rfc822.el terminal.el yow.el and changed files.el sysdep.c rmail.el info.el keyboard.c fileio.c loaddefs.el simple.el process.c window.c startup.el editfns.c unexec.c xfns.c bytecomp.el sendmail.el dispnew.c emacs.c buffer.c debug.el - indent.c and 120 other files + indent.c and 119 other files Richard Sharman: wrote hilit-chg.el and changed sh-script.el ediff-init.el regexp-opt.el simple.el @@ -1538,68 +1890,65 @@ Rick Farnbach: wrote morse.el Rick Sladkey: wrote backquote.el and changed gud.el intervals.c intervals.h simple.el -Rob Browning: changed gnus-art.el +Rob Browning: changed configure.in + +Rob Kaut: changed vhdl-mode.el Rob Riepel: wrote tpu-edt.el tpu-extras.el tpu-mapper.el vt-control.el and changed tpu-doc.el -Robert Bihlmeyer: changed gnus-score.el mml.el gnus-art.el gnus-util.el - message.el mm-view.el +Robert Bihlmeyer: changed gnus-score.el gnus-util.el message.el Robert Fenk: changed desktop.el Robert J. Chassell: wrote makeinfo.el texinfo.el texnfo-upd.el and changed texinfmt.el emacs.tex page-ext.el info.el loaddefs.el - texinfo-update.el case-table.el cl.texinfo emacs-lisp-intro.texi - history.el informat.el latin-1.el latin-2.el latin-3.el latin-4.el - page.el tex-mode.el texinfo.tex texinfo.texinfo vip.texinfo - -Robert Pluim: changed mm-util.el - -Robin S. Socha: changed message.el - -Rod Whitby: changed nnmail.el gnus-sum.el nnml.el + texinfo-update.el INSTALL case-table.el cl.texinfo + emacs-lisp-intro.texi history.el informat.el latin-1.el latin-2.el + latin-3.el latin-4.el page.el tex-mode.el texinfo.tex texinfo.texinfo + vip.texinfo Roderick Schertler: changed dgux.h dgux4.h gud.el sysdep.c Roger Breitenstein: changed smtpmail.el -Roland B Roberts: wrote logout.com mailemacs.com +Roland B. Roberts: wrote logout.com mailemacs.com vms-pmail.el and changed buffer.h build.com callproc.c compile.com dired.c files.el - kepteditor.com precomp.com process.c sort.el sysdep.c systty.h - vmspaths.h vmsproc.el + gnus-group.el gnus-sum.el kepteditor.com precomp.com process.c sort.el + sysdep.c systty.h vmspaths.h vmsproc.el -Roland B. Roberts: wrote vms-pmail.el -and changed gnus-group.el gnus-sum.el +Roland Mcgrath: wrote autoload.el etags.el find-dired.el grep.el + map-ynp.el +and changed compile.el add-log.el configure.in files.el vc.el Makefile.in + simple.el mailabbrev.el buffer.c comint.el upd-copyr.el etags.c + menu-bar.el loaddefs.el mem-limits.h ralloc.c fileio.c data.c process.c + rlogin.el rmail.el and 137 other files -Roland Mcgrath: wrote autoload.el compile.el etags.el find-dired.el - grep.el map-ynp.el -and changed add-log.el configure.in files.el vc.el Makefile.in simple.el - mailabbrev.el comint.el upd-copyr.el buffer.c etags.c menu-bar.el - loaddefs.el mem-limits.h ralloc.c fileio.c rlogin.el rmail.el shell.el - data.c diff.el and 108 other files +Roland Winkler: changed bibtex.el Rolf Ebert: wrote ada-mode.el and changed files.el find-file.el +Romain Francoise: changed gnus-fun.el ibuf-ext.el message.el FOR-RELEASE + antlr-mode.el compile.el ibuffer.el sgml-mode.el buffer.c data.c + gnus-art.el gnus-uu.el indent.c makeinfo.el python.el term.c + Roman Belenov: changed which-func.el Ron Schnell: wrote dunnet.el Ronan Waide: changed smtpmail.el -Rui Zhu: changed gnus-art.el gnus-sum.el - Rui-Tao Dong: changed nnweb.el Rune Kleveland: changed xfns.c -Rupa Schomaker: changed gnus-msg.el message.el - Russ Allbery: changed message.el Ryszard Kubiak: changed ogonek.el +Saito Takuya: changed compile.el mule.el + Sam Dooley: changed keyboard.c Sam Falkner: changed nntp.el @@ -1607,55 +1956,76 @@ Sam Falkner: changed nntp.el Sam Kendall: changed etags.c etags.el Sam Steingold: wrote gulp.el midnight.el -and changed cl-indent.el font-lock.el ange-ftp.el tex-mode.el vc-cvs.el - bindings.el bookmark.el debug.el dired.el mouse.el sgml-mode.el - simple.el browse-url.el buff-menu.el bytecomp.el compile.el - diary-lib.el etags.el files.el inf-lisp.el info.el and 86 other files +and changed cl-indent.el font-lock.el ange-ftp.el mouse.el tex-mode.el + vc-cvs.el add-log.el bindings.el bookmark.el debug.el diary-lib.el + dired.el pcvs.el sgml-mode.el simple.el browse-url.el buff-menu.el + bytecomp.el cc-mode.el compile.el etags.el and 94 other files + +Sanghyuk Suh: changed mac-win.el macterm.c -Satyaki Das: wrote mh-index.el mh-speed.el +Sascha L,A|(Bdecke: wrote mml1991.el +and changed gnus-win.el + +Satyaki Das: wrote mh-acros.el mh-gnus.el mh-index.el mh-junk.el + mh-speed.el +and changed mh-e.el mh-utils.el mh-seq.el mh-comp.el mh-mime.el + mh-customize.el mh-loaddefs.el mh-funcs.el Makefile mh-alias.el + mh-pick.el mh-unit.el mh-make.el mh-xemacs-toolbar.el mh-identity.el + mh-init.el mh-xemacs-compat.el mh-inc.el highlight.xpm mh-func.el + mh-loadddefs.el and 6 other files Schlumberger Technology Corporation: changed gud.el -Scott Byer: wrote nnfolder.el -and changed gnus-sum.el +Scott Byer: changed gnus-sum.el Scott Draves: wrote tq.el -Scott Hofmann: changed nntp.el - Scott M. Meyers: changed cmacexp.el +Sean O'rourke: changed ibuf-ext.el + Sebastian Kremer: wrote dired-aux.el dired-x.el dired.el ls-lisp.el and changed add-log.el +Sebastian Tennant: changed desktop.el + +Sebastien Kirche: changed mail-extr.el + Sen Nagata: wrote crm.el rfc2368.el -Seokchan Lee: changed message.el mm-bodies.el +Seokchan Lee: changed message.el + +Sergey Poznyakoff: changed rmail.el rmail.texi smtpmail.el Shawn M. Carey: wrote freebsd.h -Shenghuo Zhu: wrote binhex.el mm-partial.el mm-uu.el nnwarchive.el - rfc1843.el uudecode.el webmail.el -and changed gnus-art.el gnus-sum.el message.el mm-util.el gnus-agent.el - mml.el mm-view.el rfc2047.el mm-decode.el gnus-msg.el gnus-group.el - nnmail.el gnus-util.el mail-source.el mm-bodies.el nnweb.el gnus.el - nnfolder.el nnslashdot.el gnus-start.el nnheader.el and 60 other files +Shenghuo Zhu: wrote binhex.el mm-extern.el mm-partial.el mm-url.el + mm-uu.el mml2015.el nnrss.el nnwarchive.el rfc1843.el uudecode.el + webmail.el +and changed message.el gnus-art.el gnus-sum.el gnus-msg.el gnus.el + gnus-agent.el mm-decode.el mm-util.el gnus-group.el mml.el + gnus-start.el gnus-util.el nnfolder.el mm-view.el nnmail.el + nnslashdot.el gnus-xmas.el nntp.el gnus-topic.el rfc2047.el + dgnushack.el and 103 other files Shinichirou Sugou: changed etags.c -Shuhei Kobayashi: changed gnus-group.el message.el nnmail.el +Shuhei Kobayashi: wrote hex-util.el sha1.el +and changed gnus-group.el message.el nnmail.el Sidney Markowitz: changed doctor.el Sigbjorn Finne: changed gnus-srvr.el -Simon Josefsson: wrote flow-fill.el fringe.el imap.el nnimap.el - rfc2104.el -and changed gnus-sum.el smtpmail.el gnus-agent.el gnus-start.el gnus.el - gnus-group.el gnus-range.el sendmail.el browse-url.el gnus-art.el - mail-source.el gnus-srvr.el mm-decode.el nnmail.el fns.c gnus-cus.el - gnus-msg.el gnus-util.el gnus.texi mail-extr.el mailcap.el - and 32 other files +Simon Josefsson: wrote dig.el dns-mode.el flow-fill.el fringe.el imap.el + mml-sec.el mml-smime.el nnfolder.el nnimap.el nnml.el rfc2104.el + sieve-manage.el sieve-mode.el sieve.el smime.el starttls.el tls.el + url-imap.el +and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg-gpg.el + pgg.el mml2015.el gnus-agent.el mml.el mm-decode.el mml1991.el + gnus-group.el gnus-msg.el gnus.el pgg-pgp5.el gnus-cache.el + gnus-sieve.el browse-url.el gnus-int.el mail-source.el gnus-spec.el + and 88 other files Simon Leinen: changed smtpmail.el Makefile Makefile.in cm.c cm.h hpux9.h indent.c process.c sc.texinfo sgml-mode.el term.c xfns.c xmenu.c @@ -1669,39 +2039,37 @@ and changed comint.el font-lock.el shell.el rmail.el fortran.el Skip Collins: changed w32fns.c w32term.c w32term.h +Slawomir Nowaczyk: changed TUTORIAL.pl + Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi server.el tcp.c unexec.c -Stainless Steel Rat: changed pop3.el gnus-sum.el - Stanislav Shalunov: wrote uce.el -and changed message.el -Stefan Monnier: wrote cvs-status.el diff-mode.el log-edit.el log-view.el - pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el reveal.el - smerge-mode.el -and changed vc.el newcomment.el pcvs.el regex.c easy-mmode.el - font-lock.el subr.el keymap.c fill.el syntax.c vc-cvs.el keyboard.c - vc-hooks.el lisp.h sgml-mode.el tex-mode.el info.el simple.el - derived.el vc-rcs.el xterm.c and 354 other files +Stefan Monnier: wrote bibtex.el cvs-status.el diff-mode.el log-edit.el + log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el + reveal.el smerge-mode.el +and changed vc.el pcvs.el font-lock.el newcomment.el subr.el lisp.h + keyboard.c tex-mode.el keymap.c fill.el easy-mmode.el alloc.c + compile.el info.el regex.c vc-hooks.el xdisp.c syntax.c simple.el + files.el vc-cvs.el and 465 other files -Stefan Schoef: wrote bibtex.el - -Stefan Waldherr: changed nnweb.el - -Steinar Bang: changed nnweb.el +Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi + ediff-mult.el Stephen A. Wood: changed fortran.el Stephen Eglen: wrote iswitchb.el mspools.el and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el - sendmail.el spell.el uce.el advice.el allout.el autoinsert.el avoid.el - backquote.el battery.el bib-mode.el bruce.el c-mode.el ccl.el - cmuscheme.el compare-w.el cperl-mode.el and 66 other files + info-look.el sendmail.el spell.el uce.el MORE.STUFF add-log.el + advice.el allout.el autoinsert.el avoid.el backquote.el battery.el + bib-mode.el bruce.el c-mode.el ccl.el and 71 other files Stephen Gildea: wrote mh-funcs.el mh-pick.el refcard.tex and changed time-stamp.el mh-e.el mh-utils.el mh-comp.el files.el - fortran.el mh-e.texi mh-mime.el mwheel.el tex-mode.el + fortran.el mh-customize.el mh-e.texi mh-mime.el mwheel.el tex-mode.el + +Stephen J. Turnbull: changed strings.texi subr.el Steve Fisk: wrote cal-tex.el @@ -1709,23 +2077,27 @@ Steve Nygard: changed unexnext.c Steve Strassman: wrote spook.el -Steve Youngs: changed browse-url.el +Steve Youngs: changed mh-utils.el mh-xemacs-compat.el dgnushack.el + mh-customize.el mh-e.el mh-comp.el mh-mime.el Makefile gnus-xmas.el + Makefile.in browse-url.el dns.el gnus-art.el gnus-sum.el gnus-util.el + lpath.el mh-seq.el .cvsignore em-unix.el gnus-async.el gnus.el + and 16 other files Steven L. Baur: wrote earcon.el footnote.el gnus-audio.el gnus-setup.el -and changed gnus-xmas.el gnus-msg.el gnus-sum.el message.el add-log.el - dgnushack.el edebug.el gnus-art.el gnus-ems.el gnus-picon.el - gnus-start.el gnus-topic.el mm-decode.el mm-view.el nnbabyl.el nntp.el +and changed gnus-xmas.el gnus-msg.el add-log.el dgnushack.el edebug.el + gnus-ems.el gnus-start.el gnus-topic.el message.el nnbabyl.el nntp.el webjump.el Steven Suhr: changed dispnew.c scroll.c term.c termchar.h -Steven Tamm: changed make-package macterm.c mac.c INSTALL Makefile.in - scroll-bar.el unexmacosx.c MACHINES README configure.in eval.c fns.c - generic-x.el mac-win.el macmenu.c sysdep.c +Steven Tamm: changed macterm.c make-package mac.c macfns.c unexmacosx.c + INSTALL configure.in mac-win.el Makefile.in README configure darwin.h + editfns.c lread.c macmenu.c scroll-bar.el MACHINES config.h config.in + dispnew.c eval.c and 8 other files Stewart M. Clamen: wrote cal-mayan.el -Sudish Joseph: changed gnus.el +Sudish Joseph: changed mac-win.el Sun Microsystems, Inc: wrote emacs.icon emacstool.1 emacstool.c sun-curs.el sun-fns.el sun-mouse.el sun.el sunfns.c @@ -1733,37 +2105,51 @@ and changed emacsclient.c emacsserver.c server.el Sundar Narasimhan: changed rnews.el rnewspost.el -Sven Fischer: changed mailcap.el +Sven Joachim: changed sed3v2.inp + +Svend Tollak Munkejord: changed deuglify.el Takaaki Ota: wrote table.el -and changed dired.c makefile.w32-in w32bdf.c +and changed appt.el compile.el dired.c etags.c ldap.el makefile.w32-in + recentf.el subr.el w32bdf.c Takahashi Kaoru: changed texinfmt.el Takahashi Naoto: wrote cyrillic.el ethio-util.el ethiopic.el latin-alt.el latin-ltx.el latin-post.el utf-8.el +and changed fontset.el mule-conf.el quail.el + +Takai Kousuke: changed ccl.el Takeshi Yamada: changed fns.c Taro Kawagishi: changed arc-mode.el -Tatsuya Ichikawa: changed gnus-agent.el mail-source.el gnus-cache.el - pop3.el +Tatsuya Ichikawa: changed gnus-agent.el gnus-cache.el Ted Lemon: changed emacs.c lastfile.c puresize.h +Teodor Zlatanov: wrote gnus-registry.el spam-report.el +and changed spam.el gnus.el gnus-sum.el nnmail.el spam-stat.el + gnus-start.el gnus.texi gnus-group.el lpath.el nnbabyl.el nnfolder.el + nnimap.el nnmbox.el nnmh.el nnml.el replace.el simple.el building.texi + compile.el dig.el gnus-draft.el and 4 other files + +Terje Rosten: changed xfns.c version.el xterm.c xterm.h + Terrence Brannon: wrote landmark.el Terry Jones: wrote shadow.el -Theodore Jump: changed makefile.nt makefile.def w32-win.el w32faces.c +Theodore Jump: changed w32-win.el w32faces.c -Thien-Thi Nguyen: wrote hideshow.el -and changed info.el zone.el battery.el bytecode.c cmds.c compile.el - desktop.el diary-lib.el ediff-init.el emacsbug.el indent.c keymap.c - lisp.h minibuf.c prolog.el vc.el xdisp.c xml.el +Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el +and changed info.el zone.el Makefile.in fileio.c scheme.el dcl-mode.el + lisp-mode.el sysdep.c vc.el TUTORIAL.it TUTORIAL.ja diary-lib.el + dired.el ebuff-menu.el emacs.c floatfns.c frames.texi grep.el + help-fns.el make-docfile.c modes.texi and 103 other files -Thierry Emery: changed timezone.el wid-edit.el +Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el Thomas Deweese: changed x-win.el @@ -1779,6 +2165,8 @@ Thomas Morgan: changed forms.el Thomas Neumann: wrote make-mode.el and changed makefile.el +Thomas W Murphy: changed outline.el + Thomas Wurgler: changed emacs-lock.el Thor Kristoffersen: changed nntp.el @@ -1787,9 +2175,11 @@ Thorsten Ohl: changed lread.c next.h Tim Fleehart: wrote makefile.nt -Tim Van Holder: changed Makefile.in compile.el +Tim Van Holder: changed Makefile.in compile.el configure.in which-func.el -Toby Speight: changed mm-view.el window.el +Toby Allsopp: changed eudc.el + +Toby Speight: changed window.el Tom Breton: changed autoinsert.el gnus-agent.el lread.c @@ -1799,12 +2189,16 @@ Tom Houlder: wrote mantemp.el Tom Tromey: wrote tcl.el and changed makefile.el buffer.c make-mode.el add-log.el blackbox.el - buff-menu.el doc.c info.el man.el replace.el xfns.c xterm.c xterm.h + buff-menu.el doc.c emacsclient.c info.el man.el replace.el xfns.c + xterm.c xterm.h Tom Wurgler: wrote emacs-lock.el +and changed subr.el Tomas Abrahamsson: wrote artist.el +Tommi Vainikainen: changed gnus-sum.el + Tomohiko Morioka: changed gnus-sum.el nnfolder.el nnmail.el nnmh.el nnml.el coding.c gnus-art.el gnus-ems.el gnus-mule.el nnheader.el nnspool.el nntp.el @@ -1819,16 +2213,26 @@ Toru Tomabechi: wrote tibet-util.el tibetan.el Toshiaki Nomura: changed uxpds.h -Tozawa Akihiko: changed nndoc.el +Trey Jackson: changed spam-stat.el Triet Hoai Lai: changed vntelex.el viet-util.el vietnamese.el Trung Tran-Duc: changed nntp.el +Tsuchiya Masatoshi: changed gnus-art.el nneething.el mm-view.el + gnus-sum.el nnheader.el nnml.el gnus-agent.el gnus-cache.el gnus-msg.el + lpath.el nndiary.el nnfolder.el nnimap.el nnmaildir.el pgg.el + rfc2047.el + Tsugutomo Enami: changed nnheader.el regex.c regex.h +Tsuyoshi Akiho: changed gnus-sum.el nnrss.el + Tudor Hulubei: changed iso-acc.el latin-pre.el +Ulf Jasper: wrote icalendar.el +and changed calendar.texi + Ulrich Leodolter: changed w32proc.c Ulrich Mueller: changed gud.el case-table.el fortran.el iso-acc.el @@ -1837,42 +2241,42 @@ Ulrich Mueller: changed gud.el case-table.el fortran.el iso-acc.el Ulrik Vieth: wrote meta-mode.el and changed files.el -Urban Engberg: changed gnus-demon.el +Vadim Nasardinov: changed allout.el Valery Alexeev: changed cyril-util.el cyrillic.el -Vasily Korytov: changed cperl-mode.el - -Victor S. Miller: changed webmail.el +Vasily Korytov: changed cperl-mode.el gnus-art.el gnus-dired.el + gnus-msg.el gnus-util.el mail-source.el message.el smiley.el Victor Zandy: wrote zone.el Viktor Dukhovni: wrote unexsunos4.c -Ville Skytt,Ad(B: changed tcl.el +Ville Skytt,Ad(B: changed mh-comp.el tcl.el Vincent Del Vecchio: changed info.el mh-utils.el -Vinicius Jose Latorre: wrote delim-col.el ebnf-bnf.el ebnf-iso.el - ebnf-otz.el ebnf-yac.el ebnf2ps.el ps-mule.el -and changed ps-print.el ps-prin1.ps ps-prin0.ps ps-prin3.ps ps-prin2.ps - ps-bdf.el lpr.el ps-print-def.el ps-print0.ps ps-vars.el +Vinicius Jose Latorre: wrote delim-col.el ebnf-abn.el ebnf-bnf.el + ebnf-dtd.el ebnf-ebx.el ebnf-iso.el ebnf-otz.el ebnf-yac.el ebnf2ps.el + printing.el ps-mule.el +and changed ps-print.el ps-prin1.ps ps-prin0.ps ps-prin3.ps ps-bdf.el + ps-prin2.ps lpr.el subr.el ps-print-def.el ps-print0.ps ps-vars.el Vladimir Alexiev: changed arc-mode.el nnvirtual.el tmm.el -Vladimir Volovich: changed message.el mm-bodies.el +Walter C. Pelissero: changed browse-url.el url-methods.el Wayne Mesard: wrote hscroll.el Werner Benger: changed keyboard.c -Werner Lemberg: wrote vntelex.el -and changed chinese.el czech.el european.el slovak.el Makefile.in - china-util.el cyrillic.el fill.el greek.el hebrew.el indian.el - japanese.el korean.el lao.el mule-conf.el mule-diag.el thai.el - tibetan.el vietnamese.el +Werner Lemberg: wrote sisheng.el vntelex.el +and changed Makefile.in TUTORIAL.de calc.texi chinese.el czech.el + european.el idlwave.el reftex-vars.el reftex.el reftex.texi slovak.el + supercite.el .cvsignore advice.el calc-forms.el calc-sel.el calendar.el + china-util.el cl-macs.el cl.texi complete.el and 42 other files -Wes Hardaker: changed gnus-score.el gnus-art.el gnus-win.el +Wes Hardaker: changed gnus-score.el gnus-art.el gnus-sum.el gnus-win.el Will Mengarini: wrote repeat.el @@ -1881,42 +2285,59 @@ William F. Mann: wrote perl-mode.el William F. Schelter: wrote telnet.el William M. Perry: wrote mailcap.el -and changed mail-source.el mm-view.el image.el mwheel.el xfns.c +and changed url-http.el url-dav.el url-handlers.el url.el url-file.el + url-util.el url-methods.el url-vars.el url-https.el aclocal.m4 + mule-sysdp.el url-imap.el url-news.el url-nfs.el configure.in image.el + mwheel.el url-about.el url-auth.el url-cid.el url-dired.el + and 12 other files William Sommerfeld: wrote emacsclient.c emacsserver.c scribe.el server.el Wilson H. Tien: changed unexelf.c -Wjcarpenter: changed feedmail.el +Wim Nieuwenhuizen: changed TUTORIAL.nl Wlodzimierz Bzyl: wrote ogonek.el and changed latin-pre.el refcard-pl.ps refcard-pl.tex survival.tex Wolfgang Glas: changed unexsgi.c +Wolfgang Jenkner: changed pcvs.el + Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.el and changed process.c alloc.c callint.c config.h.in config.in configure.in crt0.c data.c fns.c lisp-mode.el lisp.h loadup.el lread.c net-utils.el nntp.el print.c sort.el sun3.h ymakefile +Wolfgang Scherer: changed vc-cvs.el + Wolfram Gloger: changed emacs.c -Yamamoto Kouji: changed nnmail.el +Xavier Maillard: changed gnus-faq.texi -Yamamoto Mitsuharu: changed byte-opt.el mac-win.el mule.el +Yagi Tatsuya: changed gnus-start.el + +Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h + macgui.h macmenu.c image.c keyboard.c emacs.c makefile.MPW xfaces.c + config.h darwin.h macselect.c xdisp.c Info.plist Makefile.in + dispextern.h make-docfile.c s-mac.h and 29 other files Yann Dirson: changed imenu.el -Yoshiki Hayashi: changed texinfmt.el gnus-art.el nnheader.el nnvirtual.el +Yoichi Nakayama: changed browse-url.el finder.el man.el rfc2368.el + +Yoshiki Hayashi: changed texinfmt.el nnheader.el Yutaka Niibe: changed indent.c xdisp.c configure.in Makefile.in dispnew.c sysdep.c config.in dired.el emacs.c fill.el fns.c gmalloc.c gnu-linux.h indent.h process.c simple.el term.c window.c -Zhu Shenghuo: changed mm-decode.el gnus-art.el gnus-cus.el +Zhang Wei: changed x-win.el Zoltan Kemenczy: changed gud.el +Zoran Milojevic: changed avoid.el + Local Variables: coding: iso-2022-7bit End: diff --git a/BUGS b/BUGS index 91a345dc079..5586529c023 100644 --- a/BUGS +++ b/BUGS @@ -22,5 +22,5 @@ not part of the Emacs distribution.) (3) By hand. Do cat info/emacs* | more "+/^File: emacs, Node: Bugs," -Please first check the file etc/PROBLEMS (e.g. with C-h P in Emacs) to +Please first check the file etc/PROBLEMS (e.g. with C-h C-e in Emacs) to make sure it isn't a known issue. diff --git a/COPYING b/COPYING index d60c31a97a5..3912109b5cd 100644 --- a/COPYING +++ b/COPYING @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. @@ -313,7 +313,7 @@ Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) year name of author + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. diff --git a/ChangeLog b/ChangeLog index 4af1de4d0c3..4fd3c64c316 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,615 @@ +2006-01-12 Andreas Schwab + + * configure.in: Move AC_AIX and AC_GNU_SOURCE before first compile + check. + * configure: Regenerate. + +2006-01-02 Chong Yidong + + * configure.in: Use -Wno-pointer-sign if available. + * configure: Regenerate. + +2005-12-29 Andreas Schwab + + * config.guess, config.sub: Updated from master source. + +2005-12-25 Giorgos Keramidas (tiny change) + + * configure.in: use amdx86-64 for freebsd on x86_64. + +2005-11-22 Romain Francoise + + * make-dist: Add etc/images/icons. + +2005-11-03 Andreas Schwab + + * configure.in: Use GZIP_PROG instead of GZIP. + + * Makefile.in (GZIP_PROG): Renamed from GZIP. + (install-arch-indep): Adjust. + +2005-11-01 Andreas Schwab + + * Makefile.in (bootstrap): Fix dependencies for parallel build. + (bootfast): Likewise. + +2005-11-01 Romain Francoise + + * configure.in: Check for gzip. + * configure: Regenerate. + + * Makefile.in (install): Compress source files. + +2005-10-24 Steven Tamm + + * configure.in: Fix darwin386 configuration issue. + * configure: Regenerate. + +2005-10-22 Eli Zaretskii + + * INSTALL.CVS: Add mh-autoloads to the partial rebuild procedure. + +2005-10-17 Bill Wohler + + * make-dist: Create and populate etc/images/low-color. + +2005-10-15 Bill Wohler + + * make-dist: Create and populate etc/images/gud. + +2005-10-08 Richard M. Stallman + + * make-dist (tempparent): Don't check for 14-char file name limit. + +2005-10-07 Romain Francoise + + * make-dist: Add etc/images/ezimage and etc/images/mail + directories. Install images in etc/images. + +2005-10-04 YAMAMOTO Mitsuharu + + * configure.in: Prefer Carbon if --enable-carbon-app or + --with-carbon is explicitly specified even when X11 is detected. + * configure: Regenerate. + +2005-09-15 Ulf Jasper + + * Makefile.in (install-arch-indep, uninstall): + Handle newsticker manual. + (info): Add - to commands. + +2005-09-11 Kim F. Storm + + * AUTHORS: Regenerate. + +2005-09-10 Giuseppe Scrivano + + Remove the MAXPATHLEN limitations: + + * configure.in (AC_CHECK_FUNCS): Check for get_current_dir_name. + * configure: Regenerated. + +2005-09-09 Eli Zaretskii + + * configure.in : Support for LynxOS on PPC. + * configure: Regenerated. + +2005-09-05 Paul Eggert + + * config.guess, config.sub: Updated from master source. + +2005-08-03 Juanma Barranquero + + * .cvsignore: Add `lock'. + +2005-07-28 Juanma Barranquero + + * .cvsignore: Add `data' and `site-lisp' (for in-place installs). + +2005-07-26 Paul Eggert + + Merge gnulib getopt implementation into Emacs. + + * Makefile.in (AUTOCONF_INPUTS): New macro. + ($(srcdir)/configure, $(srcdir)/src/stamp-h.in): Depend on it, + so that these files also depend on m4/getopt.m4. + * configure.in: Configure getopt by including m4/getopt.m4, + and configuring a getopt replacement if necessary. + * make-dist: Add m4 subdirectory. Unlink lib-src/getopt.h. + * m4/getopt.m4: New file. + +2005-07-06 Lute Kamstra + + * configure.in: Fix capitalization. + * configure: Regenerate. + +2005-07-04 Lute Kamstra + + Update FSF's address in GPL notices. + +2005-06-19 J,bi(Br,bt(Bme Marant + + * Makefile.in (epaths-force): Protect both lisppath and + buildlisppath from whitespace. + +2005-06-08 Steven Tamm + + * configure.in: Support Darwin/MacOSX on Intel + * configure: Regenerate. + +2005-06-06 Jan Dj,Ad(Brv + + * configure.in (HAVE_CANCELMENUTRACKING): New test. + * configure: Regenerate. + +2005-05-11 J,Ai(Br,At(Bme Marant + + * configure.in: Add --enable-locallisppath. + * configure: Regenerate. + +2005-05-13 YAMAMOTO Mitsuharu + + * configure.in: Don't check HAVE_CARBON if HAVE_X11 is set to yes. + Check HAVE_CARBON before USE_TOOLKIT_SCROLL_BARS. Define + USE_TOOLKIT_SCROLL_BARS by default if HAVE_CARBON is set to yes. + * configure: Regenerate. + +2005-05-07 J,Ai(Br,At(Bme Marant + + * make-dist: Remove references to makefile.nt and makefile.def. + Include widgets and images subdirectories of etc. Do not exclude + ldefs-boot.el. + +2005-04-23 Andreas Schwab + + * configure.in: Remove duplicate match for powerpc configuration. + * configure: Regenerate. + +2005-04-20 Thien-Thi Nguyen + + * configure.in: Check for . + * configure: Regenerate. + +2005-04-14 Lute Kamstra + + * make-dist: Distribute all ChangeLog files in lisp/. + Don't distribute ldefs-boot.el. + lisp/makefile.nt no longer exists. + +2005-04-13 Lute Kamstra + + * make-dist: Don't use DONTCOMPILE from lisp/Makefile.in; check + for "no-byte-compile: t" in the file instead. + +2005-03-16 Stefan Monnier + + * configure.in : Don't let a special LessTif/Motif1.2 install + shadow the main Lesstif/Motif-2.1 libs and includes. + +2005-03-10 Jan Dj,Ad(Brv + + * configure.in: Only add XASSERTS to cppflags. + * configure: Regenerate. + +2005-03-04 Jan Dj,Ad(Brv + + * configure.in: Added --enable-asserts. + * configure: Regenerate. + +2005-02-09 Kim F. Storm + + Change release version from 21.4 to 22.1 throughout. + Change development version from 21.3.50 to 22.0.50. + +2005-01-19 Steven Tamm + + * configure.in: Check for . + * configure: Regenerate. + +2004-12-11 Kim F. Storm + + * Makefile.in (info): Undo 2004-12-05 change. + +2004-12-08 Luc Teirlinck + + * info/dir (File): Add URL and Org Mode manuals. + * Makefile.in (install-arch-indep, uninstall): Add url and org + manuals. + +2004-12-07 Stefan + + * configure.in (INLINE, RE_TRANSLATE_P): Move patches mistakenly + committed to src/config.in. + +2004-12-07 Jan Dj,Ad(Brv + + * configure.in: If $HAVE_GTK_FILE_CHOOSER = yes, check for + pthreads and define HAVE_GTK_AND_PTHREAD. + * configure: Regenerate. + +2004-12-05 Richard M. Stallman + + * Makefile.in (info): Ignore errors building info files. + +2004-11-27 Eli Zaretskii + + * config.bat: If 8-byte alignment is not supported, define + NO_DECL_ALIGN in src/config.h, instead of trivially defining + DECL_ALIGN. Protect & with "" because & is special for cmd.exe; + filter through Sed to remove the quotes. + +2004-11-22 Stefan Monnier + + * info/.cvsignore: Ignore everything. It's OK since .cvsignore does + not apply to files explicitly `cvs add'ed. + +2004-11-12 Eli Zaretskii + + * config.bat: Don't require djecho.exe for the v1.x build. + Add a test for DECL_ALIGN support, and add a trivial definition to + src/config.h if 8-byte alignment is not supported. + +2004-11-08 Kim F. Storm + + * Makefile.in (bootstrap, bootstrap-clean-before): Remove .elc + files before building. + (bootfast, bootstrap-clean-before-fast): New targets, like + bootstrap but don't remove .elc files. + +2004-11-06 Lars Brinkhoff + + * configure.in: Add check for getrusage. + * configure: Regenerate. + +2004-11-02 Jan Dj,Ad(Brv + + * configure.in (HAVE_GTK_FILE_CHOOSER, $HAVE_GTK_FILE_SELECTION): + New tests for new and old GTK file dialogs. + (HAVE_GTK): Only set with_toolkit_scroll_bars if not explicitly set + to no. + + * configure: Rebuild. + +2004-10-20 Jan Dj,Ad(Brv + + * configure.in (HAVE_PERSONALITY_LINUX32): New test if PER_LINUX32 + can be set. Remove SETARCH test. + * configure: Rebuild. + +2004-10-08 Steven Tamm + + * configure.in (HAVE_MALLOC_MALLOC_H): Test for malloc/malloc.h + * configure: Rebuild. + +2004-10-06 Jan Dj,Ad(Brv + + * configure.in (HAVE_RANDOM_HEAPSTART): Change AC_MSG_ERROR to + AC_MSG_WARN. Move output of warning message to end of configure run. + +2004-10-05 Jan Dj,Ad(Brv. + + * configure.in (HAVE_RANDOM_HEAPSTART): Rename HAVE_EXECSHIELD. + Run test to see if heap start address is random. + +2004-09-29 Miles Bader + + * configure.in (HAVE_EXECSHIELD): Test correct env variable to see + if setarch is present. + +2004-09-25 Jan Dj,Ad(Brv + + * configure.in (HAVE_EXECSHIELD): Only define on x86. + * configure: Rebuild. + +2004-09-24 Jan Dj,Ad(Brv + + * configure.in: Check for exec-shield. + * configure: Rebuild. + +2004-08-06 Andreas Schwab + + * Makefile.in (install-arch-indep, uninstall): Add flymake. + +2004-07-31 Eli Zaretskii + + * config.bat: Update URLs in the comments. + +2004-08-02 Reiner Steib + + * Makefile.in (install-arch-indep): Add pgg and sieve. + + * info/.cvsignore: Added pgg and sieve. + +2004-07-05 Andreas Schwab + + * Makefile.in (install-arch-indep): Remove .arch-inventory files. + +2004-06-21 Kenichi Handa + + * make-dist: Link leim-ext.el into tempdir. + +2004-06-15 Luc Teirlinck + + * info/dir (File): Add emacs-xtra. + * Makefile.in (install-arch-indep, uninstall): Add emacs-xtra. + +2004-06-12 Juri Linkov + + * info/dir: Move menu help lines from `* Menu:' to file header. + Describe the purpose of a red *. + +2004-05-04 Dave Love + + * configure.in: Don't use `extrasub'. + +2004-04-29 Dave Love + + * configure.in: Don't forget to quote args to `test'. + +2004-04-24 Thien-Thi Nguyen + + * autogen.sh: Update filename in "please read" message. + +2004-04-17 Richard M. Stallman + + * INSTALL: Move the info about site-lisp dirs, + and say uninstalled Emacs looks there too. + +2004-04-04 Eli Zaretskii + + * config.bat (lib-src): Recognize comment lines in Makefile.in + that have a TAB after the #, to avoid errors in preprocessing with + GCC 3.3.3. + +2004-03-31 Luc Teirlinck + + * Makefile.in: Mention in comment that `make maintainer-clean' + deletes .elc files. + +2004-03-22 Stefan Monnier + + * update-subdirs: Add local variables to prevent byte-compiling. + +2004-03-21 Dave Love + + * configure.in: Fix previous change. + +2004-03-18 Dave Love + + * configure.in: Add -znocombreloc to LDFLAGS if compiler supports it. + +2004-03-15 Luc Teirlinck + + * info/dir (File): Add SMTP and SES. + +2004-03-02 Stefan Monnier + + * Makefile.in (maintainer-clean): Clean in the lisp dir as well. + (bootstrap): Use the new bootstrap-prepare target in lisp. + +2004-02-18 Kim F. Storm + + * INSTALL.CVS: Add info about ssh/cvs related problems and work-around. + +2004-02-16 Eli Zaretskii + + * make-dist: Don't link index.*perm and permute-index into tempdir. + +2004-02-14 Jonathan Yavner + + * AUTHORS (JonathanYavner): Rename testcover-*.el to tcover-*.el + to match previous changes by Eli Zaretskii. + +2004-02-09 Luc Teirlinck + + * Makefile.in: Set CDPATH to an empty string. + +2004-01-27 Stefan Monnier + + * configure.in : Use fink packages if available. + +2004-01-25 Jerome Marant (tiny change) + + * make-dist (lispref): Do include lispref/index.texi. + +2004-01-06 Eric Hanchrow (tiny change) + + * make-dist (tempdir): Include cursors in nt/icons. + +2003-12-30 Eli Zaretskii + + * INSTALL.CVS: Renamed from INSTALL-CVS to avoid file-name + clashes with install-sh on 8+3 filesystems. + +2003-12-08 Miles Bader + + * .cvsignore: Add .arch-inventory. + +2003-12-24 Andreas Schwab + + * configure.in: Check for . Include it before + including . Move check for before its use. + +2003-12-24 Jan Dj,Ad(Brv + + * Makefile.in (install-arch-dep): Don't let cd output go into + pipe for carbon_appdir. + +2003-12-24 Andreas Schwab + + * configure.in (PKG_CHECK_MODULES): Fix quoting. + +2003-12-01 Andreas Schwab + + * configure.in (powerpc-apple-darwin*): Use ${CC-cc} instead of + hardcoding gcc. + * configure: Rebuild. + +2003-11-16 Jan Dj,Ad(Brv + + * configure.in (HAVE_GTK_MULTIDISPLAY): Check if GTK can handle + multiple displays. + Wrong number of args to AC_CHECK_LIB for HAVE_X_SM test corrected. + +2003-09-23 Dave Love + + * configure.in: Check members of struct ifreq. + +2003-09-14 Kim F. Storm + + * configure.in: Add checks for sys/ioctl.h and net/if.h. + +2003-09-12 Luc Teirlinck + + * Makefile.in (install-arch-indep, uninstall): Add SES manual. + +2003-08-18 Lute Kamstra + + * configure.in: Revert the change of 2003-07-29 as GTK+ 2.2 is not + required anymore. + +2003-08-07 Andrew Choi + + * configure.in [powerpc-apple-darwin*]: Use the -no-cpp-precomp + option instead of -traditional-cpp for CPP. + +2003-07-29 Richard M. Stallman + + * configure.in (HAVE_XIM): Define if XIM is available. + +2003-07-29 Tim Van Holder (tiny change) + + * configure.in: The function gtk_window_set_icon_from_file was + introduced in GTK+ 2.2, so check for that release. + +2003-07-23 Andreas Schwab + + * configure.in: Add --enable-maintainer-mode, substitute MAINT. + + * Makefile.in (YACC): Remove, not used. + (MAINT): Don't set. + (${srcdir}/configure, $(srcdir)/src/stamp-h.in): Use @MAINT@ to + disable dependency on ${srcdir}/configure.in when maintainer mode + is disabled. + +2003-07-22 Dave Love + + * configure.in: Make XRegisterIMInstantiateCallback test depend on + HAVE_X11, not with_xim. + (HAVE_CRTIN): Provide template. + : Test for png.h and libpng/png.h. + +2003-07-15 Andreas Schwab + + * configure.in: Temporarily leave quoting for AC_DEFINE. + +2003-07-13 Stefan Monnier + + * configure.in: Check for posix_memalign. + +2003-07-12 Richard M. Stallman + + * configure.in [netbsd systems]: Define HAVE_CRTIN properly. + +2003-07-09 Kim F. Storm + + * INSTALL (DETAILED BUILDING AND INSTALLATION): Describe new + functionality of --without-xim. + +2003-06-29 Dave Love + + * configure.in: Fix XRegisterIMInstantiateCallback check for gcc. + +2003-06-26 Jan Dj,Ad(Brv + + * configure: Regenerate. + +2003-06-23 Dave Love + + * configure.in: Check for sys/_mbstate_t.h. + Test XRegisterIMInstantiateCallback prototype. + (AH_BOTTOM): Define DO_BLOCK_INPUT, my_strftime. + +2003-06-06 Dave Love + + * configure.in: Check for locale.h. + +2003-06-05 Dave Love + + * configure.in: Check for memcpy, mempcpy, mblen, mbrlen. + Use AC_FUNC_STRFTIME, AC_STRUCT_TIMEZONE, AC_TYPE_MBSTATE_T. + (NLIST_STRUCT): Don't define. + (AH_BOTTOM): Define my_strftime. + +2003-06-02 Richard M. Stallman + + * configure.in: Revert changes of 2003-03-03 and 2003-05-24. + +2003-05-24 Andreas Schwab + + * configure.in (AH_BOTTOM) [MAC_OSX]: Do not redefine bcopy, + bzero, and bcmp. + +2003-05-22 Dave Love + + * configure.in: Remove redundant test for term.h. Test for difftime. + +2003-05-20 Dave Love + + * configure.in: Append * to s390-*-linux-gnu case. + (LIBMAIL) : Don't define. + +2003-04-30 Richard M. Stallman + + * configure.in: Handle system types sysv5uw* and sysv5OpenUNIX*. + +2003-04-28 Francesco Potort,Al(B + + * configure.in: Undo last (RMS') change, as it is useless, per + Dave Love. + +2003-04-08 Richard M. Stallman + + * configure.in: Put #include of jpeglib.h at start of line. + +2003-04-30 Kai Gro,A_(Bjohann + + * INSTALL (* GNU/Linux development packages): Mention Debian and + RedHat package names. + +2003-04-30 Boyd Lynn Gerber + + * configure.in: Handle system types sysv5uw* and sysv5OpenUNIX*. + +2003-04-30 Kai Gro,A_(Bjohann + + * INSTALL (* GNU/Linux development packages): Tell people to + install additional packages for compiling Emacs. + +2003-04-06 Francesco Potort,Al(B + + * configure.in: Use the same configuration for all aix5, not just + aix5.1. + +2003-03-16 Nelson H. F. Beebe (tiny change) + + * configure.in: Check for need for bigtoc support on IBM AIX for + solving a linker table overflow problem. + +2003-03-03 Rob Browning + + * configure.in: Add AC_CHECK_FUNCS for memcmp and memmove. + (AH_BOTTOM): Switch tests to prefer memcmp, memset, and memmove + over bzero, bcmp, and bcopy. + +2003-02-23 Simon Josefsson + + * Makefile.in (install-arch-indep, uninstall): Add SMTP manual. + +2003-02-21 Klaus Zeitler + + * configure.in: Set new hpux10-20.h as "major" include for 10.20. + 2003-02-13 Robert J. Chassell (tiny change) * INSTALL (* Extra fonts): Say that Emacs doesn't include fonts. @@ -41,7 +653,7 @@ 2003-01-14 Francesco Potort,Al(B - * configure.in (m68k-motorola-sysv): Removed (obsolete). + * configure.in (m68k-motorola-sysv): Remove (obsolete). 2003-01-07 Steven Tamm @@ -57,8 +669,7 @@ 2003-01-06 David Kastrup - * Makefile.in (INSTALL_INFO): Get install-info command from - configure. + * Makefile.in (INSTALL_INFO): Get install-info command from configure. * configure.in: Add tests for install-info @@ -78,8 +689,8 @@ 2002-11-27 Dave Love * configure.in: Use AC_CHECK_DECLS, not AC_DECL_SYS_SIGLIST. - Check for __sys_siglist too. Check for memset. Use - AC_FUNC_GETPGRP. Add mipsel-*-linux-gnu* target. + Check for __sys_siglist too. Check for memset. + Use AC_FUNC_GETPGRP. Add mipsel-*-linux-gnu* target. 2002-11-22 Juanma Barranquero @@ -91,12 +702,12 @@ 2002-11-15 Dave Love - * configure.in: Tidy up various quoting issues throughout. Use - AC_GNU_SOURCE. + * configure.in: Tidy up various quoting issues throughout. + Use AC_GNU_SOURCE. (AH_BOTTOM): Fix #endif protecting config.h. Maybe include alloca.h. Define GC_SETJMP_WORKS, GC_LISP_OBJECT_ALIGNMENT. Maybe define bcopy, bzero, bcmp. - (powerpcle-*-solaris2.5*, powerpcle-*-solaris2*): Removed (use + (powerpcle-*-solaris2.5*, powerpcle-*-solaris2*): Remove (use non-existent machine file). (sys/vlimit.h, sys/resource.h, fsync, __restrict): Test for. (term.h, X11/Xaw3d/Scrollbar.h): Avoid warning from test. @@ -116,14 +727,13 @@ 2002-11-08 Dave Love - * configure.in: Use AC_CONFIG_LIBOBJ_DIR and require autoconf - 2.54. + * configure.in: Use AC_CONFIG_LIBOBJ_DIR and require autoconf 2.54. (AH_BOTTOM) [!HAVE_SIZE_T]: Typedef size_t. 2002-11-07 Miles Bader - * Makefile.in (maybe_bootstrap): Fix shell variable usage. Handle - separate-build-dir case. + * Makefile.in (maybe_bootstrap): Fix shell variable usage. + Handle separate-build-dir case. 2002-11-06 Richard M. Stallman @@ -134,9 +744,8 @@ * configure.in: Require autoconf 2.53. Test for pty.h, sys/mman.h, sys/param.h, mremap, memmove. - (AH_BOTTOM): Maybe include strings.h. Add local variables for - mode. - (AC_PROG_YACC): Deleted. + (AH_BOTTOM): Maybe include strings.h. Add local variables for mode. + (AC_PROG_YACC): Delete. (size_t): Use AC_CHECK_TYPES. (AH_TOP): Up-date copyright. @@ -170,7 +779,7 @@ (*-sunos5.6*, *-solaris2.6*): New alternative. (*-sunos5*): Use version 2.6 as default. -2002-09-06 Kai Gro,b_(Bjohann +2002-09-06 Kai Gro,A_(Bjohann * configure.in: Fix typo. @@ -203,17 +812,17 @@ (epaths-force): Insert value of gamedir into PATH_GAME. * configure.in (gamedir): Handle it like lispdir. - (--with-game-dir option): Deleted. + (--with-game-dir option): Delete. -2002-06-21 Pavel Jan,Bm(Bk +2002-06-21 Pavel Jan,Am(Bk * configure.in: Add support for mipseb-*-netbsd* machines. -2002-06-18 Kai Gro,b_(Bjohann +2002-06-18 Kai Gro,A_(Bjohann * Makefile.in (install-arch-indep, uninstall): Add Tramp. -2002-06-17 Kai Gro,b_(Bjohann +2002-06-17 Kai Gro,A_(Bjohann * info/dir (File): Add an entry for Tramp. @@ -237,7 +846,7 @@ * configure.in (emacs_cv_speed_t): Add square brackets for clarity. -2002-05-04 Pavel Jan,Bm(Bk +2002-05-04 Pavel Jan,Am(Bk * make-dist: Do not distribute lock/ directory. @@ -251,7 +860,7 @@ * configure.in: Delete configure check for access to the game user. -2002-04-29 Pavel Jan,Bm(Bk +2002-04-29 Pavel Jan,Am(Bk * make-dist: lwlib/Imakefile is removed. @@ -262,7 +871,7 @@ * make-dist: Create directories in mac/Emacs.app. -2002-04-25 Pavel Jan,Bm(Bk +2002-04-25 Pavel Jan,Am(Bk * make-dist: lwlib-Xol* are removed. @@ -289,7 +898,7 @@ * configure.in: Add --game-dir, --game-user. Test to see if we can use them. -2002-04-08 Pavel Jan,Bm(Bk +2002-04-08 Pavel Jan,Am(Bk * configure.in: Add --with-sound. @@ -377,7 +986,7 @@ * configure.in (hppa*-*-linux-gnu*): New alternative. -2001-12-08 Pavel Jan,Bm(Bk +2001-12-08 Pavel Jan,Am(Bk * make-dist: Copy COPYING to leim/, lwlib/, mac/ and nt/ when creating distribution. @@ -390,12 +999,12 @@ (HAVE_DES_H, HAVE_KRB5_H): Properly quote args of AC_CHECK_HEADERS; this is required by recent Autoconf versions. -2001-12-02 Pavel Jan,Bm(Bk +2001-12-02 Pavel Jan,Am(Bk * make-dist: Do not try to link removed files (aclocal.m4, _emacs, TODO, vms-pp.trans and others). -2001-11-29 Pavel Jan,Bm(Bk +2001-11-29 Pavel Jan,Am(Bk * make-dist: Use COPYING from the top-level directory. @@ -403,7 +1012,7 @@ * configure.in: Add support for FreeBSD/Alpha. -2001-11-29 Pavel Jan,Bm(Bk +2001-11-29 Pavel Jan,Am(Bk * make-dist: Add COPYING to the top-level directory of the distribution. Simplify the logic behind copying. @@ -419,7 +1028,7 @@ * Makefile.in: bootstrap should not delete dumped executables. (bootstrap-clean-before): New target. (bootstrap): Use bootstrap-clean-before instead of clean. - (bootstrap-clean-after): Renamed from bootstrap-clean. Calls changed. + (bootstrap-clean-after): Rename from bootstrap-clean. Calls changed. 2001-11-24 Eli Zaretskii @@ -448,7 +1057,7 @@ 2001-11-22 Colin Walters * Makefile.in (install-arch-indep): Install the calc .info files. - (uninstall): Handle deletion of calc .info files (thanks Pavel Jan,Bm(Bk). + (uninstall): Handle deletion of calc .info files (thanks Pavel Jan,Am(Bk). 2001-11-17 Eli Zaretskii @@ -459,14 +1068,14 @@ * configure.in: Add coff.h to the list in AC_CHECK_HEADERS. -2001-11-15 Pavel Jan,Bm(Bk +2001-11-15 Pavel Jan,Am(Bk * Makefile.in (uninstall): Fix previous change. * configure.in, Makefile.in: Add support for --program-prefix, --program-suffix and --program-transform-name options. -2001-11-13 Pavel Jan,Bm(Bk +2001-11-13 Pavel Jan,Am(Bk * Makefile.in (install-arch-indep): Use `${manext}' instead of `.1'. (install-arch-indep): Install emacsclient manual page. @@ -475,9 +1084,9 @@ 2001-11-12 Eli Zaretskii * make-dist: Add lispref/index.*perm files to the distribution. - From Pavel Jan,Bm(Bk . + From Pavel Jan,Am(Bk . -2001-11-12 Pavel Jan,Bm(Bk +2001-11-12 Pavel Jan,Am(Bk * Makefile.in (uninstall): Remove gfdl.1 when uninstalling. @@ -514,7 +1123,7 @@ * configure.in: Added a check for -2001-11-01 Pavel Jan,Bm(Bk +2001-11-01 Pavel Jan,Am(Bk * configure.in: Reindent --help output. From Per Starback (starback@ling.uu.se). @@ -1606,8 +2215,8 @@ 1997-11-26 Joel N. Weber II * make-dist: Changed the comment about `umask 0' to say `Don't - restrict access to any files.'; previously it said `Don't protect - any files', which may have implied that we think fascism is good. + restrict access to any files.'; previously it said `Don't protect + any files', which may have implied that we think fascism is good. 1997-11-24 Paul Eggert @@ -1734,8 +2343,8 @@ 1997-08-22 Jonathan I. Kamens * configure.in: Support auto-configuration of both Kerberos V4 and - Kerberos V5 for movemail, including detection of V4 and V5 header - files and libraries. + Kerberos V5 for movemail, including detection of V4 and V5 header + files and libraries. 1997-08-16 NIIBE Yutaka @@ -1884,9 +2493,9 @@ 1997-06-22 Dave Love * Makefile.in (lib-src): Depend on src/config.h (e.g. for - movemail.o). + movemail.o). (src/config.h): New target to re-configure if src/config.in - is patched. + is patched. 1997-06-18 Richard Stallman @@ -2162,7 +2771,7 @@ 1996-06-27 Richard Stallman * configure.in (sunos4.1.[3-9]*noshare): Eliminate dash from - before `noshare'. + before `noshare'. (mips-sgi-irix6*): Specify NON_GCC_TEST_OPTIONS. 1996-06-21 Richard Stallman @@ -2307,7 +2916,7 @@ 1996-03-08 Roland McGrath * configure.in (-lm check): If $GCC, append -fno-builtin to $CC for - just this test. + just this test. * configure.in (AC_PREREQ): Require version 2.8 of Autoconf. @@ -2502,7 +3111,7 @@ 1995-10-30 Richard Stallman * Makefile.in (man1dir): New variable. - (install-arch-indep): Use man1dir. + (install-arch-indep): Use man1dir. * configure.in (sparc-*-nextstep*): Remove incorrect .h's. @@ -2622,7 +3231,7 @@ 1995-07-06 David J. MacKenzie * configure.in: Put back archlibdir initialization. Require - autoconf 2.4.1 or later. + autoconf 2.4.1 or later. 1995-07-01 Richard Stallman @@ -2738,7 +3347,7 @@ 1995-05-09 David J. MacKenzie * configure.in: Use sqrt (more portable) instead of fmod in -lm - check. + check. 1995-05-09 Richard Stallman @@ -2869,7 +3478,7 @@ 1994-11-30 David J. MacKenzie * configure.in: Don't try to make directories that are guaranteed - to already exist. + to already exist. 1994-11-23 Richard Stallman @@ -2917,7 +3526,7 @@ 1994-11-08 Roland McGrath * Makefile.in (install-arch-indep): Avoid continued comment - swallowing target line. + swallowing target line. 1994-11-08 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) @@ -4096,7 +4705,7 @@ * Makefile.in (uninstall): Don't remove the lisp and etc directories if they're in the source tree. - Bring mumbleclean targets into conformance with GNU coding standards. + Bring mumbleclean targets into conformance with GNU coding standards. * Makefile.in (mostlyclean, clean): Separate these two; just have them pass the request to the subdirectory makefiles. (distclean): Pass the request down, and then get rid of the @@ -4405,7 +5014,7 @@ 1993-05-24 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * configure.in: Recognize configuration names for i860 boxes + * configure.in: Recognize configuration names for i860 boxes running SYSV. 1993-05-23 Jim Blandy (jimb@geech.gnu.ai.mit.edu) @@ -4446,7 +5055,7 @@ 1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) - * Version 19.7 released. + * Version 19.7 released. * make-dist: There aren't any *.com files in lib-src anymore. @@ -4669,7 +5278,7 @@ * configure.in: Check for gettimeofday function, for getdate.y. - Change `configure' to a mixture of custom code and autoconf stuff. + Change `configure' to a mixture of custom code and autoconf stuff. autoconf can't derive all the information we need, but we'd really like to be able to take advantage of some of its tests, and its file-editing facilities. @@ -4718,7 +5327,7 @@ * make-dist: Distribute lisp/term/ChangeLog. - Arrange for C compilation throughout the tree to get + Arrange for C compilation throughout the tree to get C_SWITCH_SYSTEM from the configuration files. * configure: Extract C_SWITCH_SYSTEM from the machine and system-dependent files, and save it in the top-level Makefile. @@ -5111,7 +5720,7 @@ 1992-09-13 Jim Blandy (jimb@pogo.cs.oberlin.edu) - * make-dist: Include the `vms' subdirectory in the distribution. + * make-dist: Include the `vms' subdirectory in the distribution. 1992-09-10 Jim Blandy (jimb@pogo.cs.oberlin.edu) @@ -5193,7 +5802,7 @@ * make-dist: Be sure to delete the .c and .h files that YACC and BISON create from getdate.y. - * external-lisp: New directory; see `external-lisp/README'. + * external-lisp: New directory; see `external-lisp/README'. * make-dist: Added support for the external-lisp subdirectory. * make-dist: Changed message which complains that make-dist wasn't @@ -5272,10 +5881,10 @@ 1992-04-29 Ken Raeburn (Raeburn@Cygnus.COM) - * move-if-change: New file, copied from gcc release. - * Makefile.in (src/paths.h): Use it, and put the "sed" output into - a temp file, so we don't update paths.h if an error occurs or if - it doesn't need changing. + * move-if-change: New file, copied from gcc release. + * Makefile.in (src/paths.h): Use it, and put the "sed" output into + a temp file, so we don't update paths.h if an error occurs or if + it doesn't need changing. 1992-04-28 Jim Blandy (jimb@pogo.cs.oberlin.edu) @@ -5487,7 +6096,7 @@ 1992-01-27 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * Makefile (install): Remove `B' from tar xf command. + * Makefile (install): Remove `B' from tar xf command. 1992-01-13 Jim Blandy (jimb@pogo.cs.oberlin.edu) @@ -5502,7 +6111,7 @@ 1991-12-05 Jim Blandy (jimb@pogo.gnu.ai.mit.edu) * config.emacs: New file, to help automate the installation - process. + process. * Makefile: Lots of changes to support the separation of etc into architecture-dependent and -independent files: @@ -5554,10 +6163,12 @@ to match build-install and paths.h. ;; Local Variables: -;; coding: iso-2022-7bit-unix +;; coding: iso-2022-7bit ;; End: Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. + +;;; arch-tag: ac61a779-1480-4884-b292-d0c39c127a73 diff --git a/INSTALL b/INSTALL index 42d94a969ee..b18baaa1efa 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ GNU Emacs Installation Guide -Copyright (c) 1992, 1994, 1996, 1997, 2000, 2001 Free software Foundation, Inc. +Copyright (c) 1992, 94, 96, 97, 2000, 01, 02 Free software Foundation, Inc. See the end of the file for copying permissions. @@ -93,13 +93,13 @@ ADDITIONAL DISTRIBUTION FILES * intlfonts-VERSION.tar.gz -The intlfonts distribution contains X11 fonts that Emacs needs in -order to display international characters. If you see a non-ASCII -character appear as a hollow box, that means you don't have a font for -it. You might find a font in the intlfonts distribution. If you do -have a font for a non-ASCII character, but some characters don't look -right, or appear improperly aligned, a font from the intlfonts -distribution might look better. +The intlfonts distribution contains X11 fonts in various encodings +that Emacs can use to display international characters. If you see a +non-ASCII character appear as a hollow box, that means you don't have +a font for it. You might find one in the intlfonts distribution. If +you do have a font for a non-ASCII character, but some characters +don't look right, or appear improperly aligned, a font from the +intlfonts distribution might look better. The fonts in the intlfonts distribution are also used by the ps-print package for printing international characters. The file @@ -156,64 +156,39 @@ At first, Emacs does not include fonts and does not install them. You must do this yourself. To take proper advantage of Emacs 21's mule-unicode charsets, you need -a Unicode font. For information on Unicode fonts for X, see -, - and +a suitable font. For `Unicode' (ISO 10646) fonts for X, see + (packaged in Debian), + (packaged in Debian). (In +recent Debian versions, there is an extensive `misc-fixed' iso10646-1 +in the default X installation.) Perhaps also see . + has basic fonts for Emacs's ISO-8859 charsets. XFree86 release 4 (from and mirrors) contains font support for most, if not all, of the charsets that Emacs -supports. The font files should be usable separately with older X -releases. +currently supports, including iso10646-1 encoded fonts for use with +the mule-unicode charsets. The font files should also be usable with +older X releases. Note that XFree 4 contains many iso10646-1 fonts +with minimal character repertoires, which can cause problems -- see +etc/PROBLEMS. BDF fonts etl-unicode.tar.gz used by ps-print and ps-mule to print Unicode characters are available from and . +* GNU/Linux development packages -The new Indian implementation uses the ISFOC standard fonts. We use -CDAC ISFOC fonts to display the Devanagari script in Emacs. They are -copyrighted, but we received permission to use them in Emacs from the -font developers. These fonts can be obtained from the internet, or -may be found in C-DAC products (including downloadable ones). For -examle, you can search the CDAC Devanagari font `dvsr0ntt.ttf' by -using some search engines and they will guide you to appropriate URLs -to obtain them. - -After you've downloaded the fonts, then run the following Makefile -to create the appropriate BDF/PCF fonts. (You will need `ttf2bdf', -equipped with freetype 1, to create BDF file.) - -TTFS= asdr0ntt.ttf:Assamese\ - bndr0ntt.ttf:Bengali\ - dvsr0ntt.ttf:Devanagari\ - gjav0ntt.ttf:Gujarati\ - knum0ntt.ttf:Kannada\ - mlkr0ntt.ttf:Malayalam\ - orsr0ntt.ttf:Oriya\ - pnam0ntt.ttf:Punjabi\ - sdsr0ntt.ttf:Sanskrit\ - tlhm0ntt.ttf:Telugu\ - tmvl0ntt.ttf:Tamil - -all: - for f in ${TTFS}; do \ - ttf=`echo $$f | sed 's/:.*$$//'`; \ - reg=`echo $$f | sed 's/[^:]*://'`; \ - base=`basename $$ttf .ttf`; \ - echo Converting "$$ttf to $$base-XX.bdf/pcf with registry $$reg"; \ - for i in 16 24; do \ - ttf2bdf -p $${i} -r 100 -l 0_255 $$ttf > temp; \ - sed "/^FONT /s/ISO10646-1/$$reg-CDAC/" $$base-$$i.bdf; \ - bdftopcf $$base-$$i.bdf > $$base-$$i.pcf; \ - done; \ - done - rm -f temp - -clean: - rm -f *.pcf *.bdf +Many GNU/Linux systems do not come with development packages by +default; they just include the files that you need to run Emacs, but +not those you need to compile it. For example, to compile Emacs with +X11 support, you may need to install the special `X11 development' +package. For example, in April 2003, the package names to install +were `XFree86-devel' and `Xaw3d-devel' on RedHat. On Debian, the +packages necessary to build the installed version should be +sufficient; they can be installed using `apt-get build-dep emacs21' in +Debian 3 and above. DETAILED BUILDING AND INSTALLATION: @@ -316,9 +291,15 @@ or more of these options: --without-png for PNG image support Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d -scroll bars. --without-xim disables the use of X Input Methods, and ---disable-largefile omits support for files larger than 2GB on systems -which support that. Use --without-sound to disable sound support. +scroll bars. + +Use --without-xim to inhibit the default use of X Input Methods. In +this case, the X resource useXIM can be used to turn on use of XIM. + +Use --disable-largefile omits support for files larger than 2GB on +systems which support that. + +Use --without-sound to disable sound support. The `--prefix=PREFIXDIR' option specifies where the installation process should put emacs and its data files. This defaults to `/usr/local'. @@ -485,17 +466,6 @@ are installed in the following directories: at the same time; in particular, you don't have to make Emacs unavailable while installing a new version. -`/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp - files installed for Emacs version VERSION only. - -`/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp - files installed for all Emacs versions. - - When Emacs is installed, it searches for its Lisp files - in `/usr/local/share/emacs/VERSION/site-lisp', then in - `/usr/local/share/emacs/site-lisp', and finally in - `/usr/local/share/emacs/VERSION/lisp'. - `/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC file, the `yow' database, and other architecture-independent files Emacs might need while @@ -525,6 +495,20 @@ are installed in the following directories: `/usr/local/man/man1' holds the man pages for the programs installed in `/usr/local/bin'. +Any version of Emacs, whether installed or not, also looks for Lisp +files in these directories. + +`/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp + files installed for Emacs version VERSION only. + +`/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp + files installed for all Emacs versions. + + When Emacs is installed, it searches for its Lisp files + in `/usr/local/share/emacs/VERSION/site-lisp', then in + `/usr/local/share/emacs/site-lisp', and finally in + `/usr/local/share/emacs/VERSION/lisp'. + If these directories are not what you want, you can specify where to install Emacs's libraries and data files or where Emacs should search for its Lisp files by giving values for `make' variables as part of diff --git a/INSTALL-CVS b/INSTALL-CVS deleted file mode 100755 index 14fa2d10452..00000000000 --- a/INSTALL-CVS +++ /dev/null @@ -1,43 +0,0 @@ - Building and Installing Emacs from CVS - -Some of the files that are included in the Emacs tarball, such as -byte-compiled Lisp files, are not stored in the CVS repository. -Therefore, to build from CVS you must run "make bootstrap" -instead of just "make": - - $ ./configure - $ make bootstrap - -The bootstrap process makes sure all necessary files are rebuilt -before it builds the final Emacs binary. - -Normally, it is not necessary to use "make bootstrap" after every CVS -update. Unless there are problems, we suggest the following -procedure: - - $ ./configure - $ make - $ cd lisp - $ make recompile EMACS=../src/emacs - $ cd .. - $ make - -(If you want to install the Emacs binary, type "make install" instead -of "make" in the last command.) - -If the above procedure fails, try "make bootstrap". - -Users of non-Posix systems (MS-Windows etc.) should run the -platform-specific configuration scripts (nt/configure.bat, config.bat, -etc.) before "make bootstrap" or "make"; the rest of the procedure is -applicable to those systems as well. - -Note that "make bootstrap" overwrites some files that are under CVS -control, such as lisp/loaddefs.el. This could produce CVS conflicts -next time that you resync with the CVS. If you see such conflicts, -overwrite your local copy of the file with the clean version from the -CVS repository. For example: - - cvs update -C lisp/loaddefs.el - -Please report any bugs in the CVS versions to emacs-pretest-bug@gnu.org. diff --git a/INSTALL.CVS b/INSTALL.CVS new file mode 100644 index 00000000000..fa5b8e4958c --- /dev/null +++ b/INSTALL.CVS @@ -0,0 +1,79 @@ + Building and Installing Emacs from CVS + +Some of the files that are included in the Emacs tarball, such as +byte-compiled Lisp files, are not stored in the CVS repository. +Therefore, to build from CVS you must run "make bootstrap" +instead of just "make": + + $ ./configure + $ make bootstrap + +The bootstrap process makes sure all necessary files are rebuilt +before it builds the final Emacs binary. + +Normally, it is not necessary to use "make bootstrap" after every CVS +update. Unless there are problems, we suggest the following +procedure: + + $ ./configure + $ make + $ cd lisp + $ make recompile EMACS=../src/emacs + $ cd .. + $ make + +(If you want to install the Emacs binary, type "make install" instead +of "make" in the last command.) + +Occasionally the files "lisp/loaddefs.el" or lisp/mh-e/mh-loaddefs.el +will need be updated to reflect new autoloaded functions. If you see +errors about undefined lisp functions during compilation, that may be +the reason. Another symptom may be an error saying that "loaddefs.el" +could not be found; this is due to a change in the way loaddefs.el was +handled in CVS, and should only happen once, for users that are +updating old CVS trees. + +To update loaddefs.el and mh-loaddefs.el, do: + + $ cd lisp + $ make autoloads mh-autoloads EMACS=../src/emacs + +If either of the above partial procedures fails, try "make bootstrap". + +Users of non-Posix systems (MS-Windows etc.) should run the +platform-specific configuration scripts (nt/configure.bat, config.bat, +etc.) before "make bootstrap" or "make"; the rest of the procedure is +applicable to those systems as well, except that the value of the +EMACS variable on the Make command line might be different, e.g., +../bin/emacs.exe or some such. + +Questions, requests, and bug reports about the CVS versions of Emacs +should be sent to emacs-pretest-bug@gnu.org rather than gnu.emacs.help +or gnu.emacs.bug. Ideally, use M-x report-emacs-bug RET which will +send it to the proper place. + + +Note on using SSH to access the CVS repository from inside Emacs +---------------------------------------------------------------- + +Write access to the CVS repository requires using SSH v2. + +If you execute cvs commands inside Emacs, specifically if you use +pcl-cvs, output from CVS may be lost due to a problem in the +interface between ssh, cvs, and libc. Corrupted checkins have +also been rumored to have happened. + +To fix the problem, save the following script into a file, make it +executable, and set CVS_RSH to the file name of the script: + +#!/bin/bash +exec 2> >(exec cat >&2 2>/dev/null) +exec ssh "$@" + +This may be combined with the following entry in ~/.ssh/config to +simplify accessing the CVS repository: + +Host subversions.gnu.org + Protocol 2 + ForwardX11 no + User YOUR_USERID diff --git a/MAINTAINERS b/MAINTAINERS index 4d3fe1c98c0..5b23f9af189 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19,9 +19,6 @@ maintainer has been found so far. Richard Stallman ??? -Andrew Choi - MacOS - Jason Rumney W32 @@ -73,6 +70,9 @@ Miles Bader 2. ============================================================================== +Steven Tamm + MacOS + Eli Zaretskii man/* lispref/* @@ -104,6 +104,9 @@ Miles Bader src/editfns.c lisp/textmodes/refill.el +Thien-Thi Nguyen + VMS + ============================================================================== 3. ============================================================================== @@ -211,3 +214,5 @@ src/xmenu.c src/xrdb.c src/xselect.c src/xterm.c + +;;; arch-tag: 869126d4-4851-41b2-8470-14dd492a3c98 diff --git a/Makefile.in b/Makefile.in index f9ad2d6fdbd..c565bee02a3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,8 +2,8 @@ # DIST: make most of the changes to this file you might want, so try # DIST: that first. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,04,2005 +# Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -19,8 +19,8 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. +# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. # make all to compile and build Emacs. # make install to install it. @@ -45,14 +45,28 @@ # make maintainer-clean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes -# everything deleted by distclean, plus more: C source files -# produced by Bison, tags tables, info files, and so on. +# everything deleted by distclean, plus more: .elc files, +# C source files produced by Bison, tags tables, info files, +# and so on. # # make extraclean # Still more severe - delete backup and autosave files, too. +# +# make bootstrap +# Recompiles all the Emacs Lisp files using the latest source, +# then rebuilds Emacs. +# +# make bootfast +# Recompiles changed Emacs Lisp files using the latest C source, +# then rebuilds Emacs. This is faster than `make bootstrap' +# but once in a while an old .elc file can cause trouble. SHELL = /bin/sh +# This may not work with certain non-GNU make's. It only matters when +# inheriting a CDPATH not starting with the current directory. +CDPATH= + # If Make doesn't predefine MAKE, set it here. @SET_MAKE@ @@ -68,7 +82,6 @@ LDFLAGS=@LDFLAGS@ CPPFLAGS=@CPPFLAGS@ C_SWITCH_X_SITE=@C_SWITCH_X_SITE@ LD_SWITCH_X_SITE=@LD_SWITCH_X_SITE@ -YACC=@YACC@ EXEEXT=@EXEEXT@ ### These help us choose version- and architecture-specific directories @@ -210,6 +223,9 @@ INSTALL_INFO = @INSTALL_INFO@ # By default, we uphold the dignity of our programs. INSTALL_STRIP = +# We use gzip to compress installed .el files. +GZIP_PROG = @GZIP_PROG@ + # ============================= Targets ============================== # Program name transformation. @@ -236,9 +252,6 @@ SUBDIR_MAKEFILES = lib-src/Makefile man/Makefile lispref/Makefile lispintro/Make COPYDIR = ${srcdir}/etc ${srcdir}/lisp COPYDESTS = ${etcdir} ${lispdir} -# Set to FRC to force running autoconf and autoheader -MAINT = - all: ${SUBDIR} leim removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g' @@ -250,15 +263,16 @@ epaths-force: FRC x_default_search_path=`echo ${x_default_search_path}`; \ gamedir=`echo ${gamedir}`; \ sed < ${srcdir}/src/epaths.in > epaths.h.$$$$ \ - -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ - -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \ + -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'"$${lisppath}"'";' \ + -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'"$${buildlisppath}"'";' \ -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";' \ -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";' \ -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \ -e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \ - -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') && \ + -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \ + -e 's;/[*] *arch-tag:.*;/*;') && \ ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h # For parallel make, src should be build before leim. @@ -291,12 +305,14 @@ Makefile: $(srcdir)/Makefile.in config.status config.status: ${srcdir}/configure ./config.status --recheck -${srcdir}/configure: $(MAINT) +AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4 + +$(srcdir)/configure: $(AUTOCONF_INPUTS) cd ${srcdir} && autoconf $(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in @true -$(srcdir)/src/stamp-h.in: $(MAINT) +$(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS) cd ${srcdir} && autoheader rm -f $(srcdir)/src/stamp-h.in echo timestamp > $(srcdir)/src/stamp-h.in @@ -371,9 +387,9 @@ install-arch-dep: mkdir done if test "${carbon_appdir}" != ""; then \ umask 022; mkdir -p ${carbon_appdir}/Emacs.app; \ - (cd mac/Emacs.app; tar -chf - . ) | \ + (cd mac/Emacs.app; (tar -chf - . | \ (cd ${carbon_appdir}/Emacs.app; umask 022; tar -xvf - \ - && cat > /dev/null) || exit 1; \ + && cat > /dev/null))) || exit 1; \ fi ### Install the files that are machine-independent. @@ -413,6 +429,7 @@ install-arch-indep: mkdir info rm -rf $${subdir}/RCS ; \ rm -rf $${subdir}/CVS ; \ rm -f $${subdir}/.cvsignore ; \ + rm -f $${subdir}/.arch-inventory ; \ rm -f $${subdir}/\#* ; \ rm -f $${subdir}/.\#* ; \ rm -f $${subdir}/*~ ; \ @@ -461,6 +478,14 @@ install-arch-indep: mkdir info (cd ${lispdir}; find . -exec chown $${LOGNAME:-$$USERNAME} {} ';') ; \ else true; fi -unset CDPATH; \ + if [ -n "${GZIP_PROG}" ]; \ + then \ + echo "Compressing *.el ..." ; \ + (cd ${lispdir}; for f in `find . -name "*.elc" -print`; do \ + ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ + done) \ + else true; fi + -unset CDPATH; \ thisdir=`/bin/pwd`; \ if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \ then \ @@ -472,7 +497,7 @@ install-arch-indep: mkdir info chmod a+r ${infodir}/dir); \ fi; \ cd ${srcdir}/info ; \ - for f in ada-mode* autotype* calc* ccmode* cl* dired-x* ebrowse* ediff* efaq* eintr* elisp* emacs* eshell* eudc* forms* gnus* idlwave* info* message* mh-e* pcl-cvs* reftex* sc* speedbar* tramp* vip* widget* woman*; do \ + for f in ada-mode* autotype* calc* ccmode* cl* dired-x* ebrowse* ediff* efaq* eintr* elisp* emacs* emacs-mime* emacs-xtra* eshell* eudc* flymake* forms* gnus* idlwave* info* message* mh-e* newsticker* org* pcl-cvs* pgg* reftex* sc* ses* sieve* speedbar* tramp* vip* widget* woman* smtpmail* url*; do \ (cd $${thisdir}; \ ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \ chmod a+r ${infodir}/$$f); \ @@ -482,7 +507,7 @@ install-arch-indep: mkdir info thisdir=`/bin/pwd`; \ if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \ then \ - for f in ada-mode autotype calc ccmode cl dired-x ebrowse ediff efaq elisp eintr emacs emacs-mime eshell eudc forms gnus idlwave info message mh-e pcl-cvs reftex sc speedbar tramp vip viper widget woman; do \ + for f in ada-mode autotype calc ccmode cl dired-x ebrowse ediff efaq elisp eintr emacs emacs-mime emacs-xtra eshell eudc flymake forms gnus idlwave info message mh-e newsticker org pcl-cvs pgg reftex sc ses sieve speedbar tramp vip viper widget woman smtpmail url; do \ (cd $${thisdir}; \ ${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); \ done; \ @@ -548,7 +573,7 @@ uninstall: done (cd ${archlibdir} && rm -f fns-*) -rm -rf ${libexecdir}/emacs/${version} - (cd ${infodir} && rm -f cl* ada-mode* autotype* calc* ccmode* ebrowse* efaq* eintr elisp* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* tramp* widget* woman* dired-x* ediff* emacs* forms* gnus* info* mh-e* sc* vip*) + (cd ${infodir} && rm -f cl* ada-mode* autotype* calc* ccmode* ebrowse* efaq* eintr elisp* eshell* eudc* idlwave* message* pcl-cvs* reftex* speedbar* tramp* widget* woman* dired-x* ediff* emacs* emacs-xtra* flymake* forms* gnus* info* mh-e* newsticker* org* sc* ses* vip* smtpmail* url*) (cd ${man1dir} && rm -f emacs${manext} emacsclient${manext} etags${manext} ctags${manext}) (cd ${bindir} && rm -f $(EMACSFULL) $(EMACS)) @@ -634,6 +659,7 @@ maintainer-clean: FRC -(cd lispref && $(MAKE) $(MFLAGS) maintainer-clean) -(cd lispintro && $(MAKE) $(MFLAGS) maintainer-clean) (cd leim; $(MAKE) $(MFLAGS) maintainer-clean) + (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean) ${top_distclean} ### This doesn't actually appear in the coding standards, but Karl @@ -706,9 +732,9 @@ force-info: # put the info files in $(srcdir), # so we can do ok running make in the build dir. info: force-info - (cd man; $(MAKE) $(MFLAGS) info) - (cd lispref; $(MAKE) $(MFLAGS) info) - (cd lispintro; $(MAKE) $(MFLAGS) info) + -(cd man; $(MAKE) $(MFLAGS) info) + -(cd lispref; $(MAKE) $(MFLAGS) info) + -(cd lispintro; $(MAKE) $(MFLAGS) info) dvi: (cd man; $(MAKE) $(MFLAGS) dvi) (cd lispref; $(MAKE) $(MFLAGS) elisp.dvi) @@ -722,6 +748,8 @@ dvi: ### used to compile Lisp files. The last step is a "normal" make. .PHONY: bootstrap +.PHONY: bootstrap-build +.PHONY: bootfast .PHONY: maybe_bootstrap maybe_bootstrap: @@ -733,8 +761,14 @@ maybe_bootstrap: exit 1;\ fi -bootstrap: bootstrap-clean-before info FRC - (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean) +bootstrap: bootstrap-clean-before FRC + $(MAKE) $(MFLAGS) info bootstrap-build + +bootfast: bootstrap-clean-before-fast FRC + $(MAKE) $(MFLAGS) info bootstrap-build + +bootstrap-build: FRC + (cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare) (cd src; $(MAKE) $(MFLAGS) bootstrap) (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT}) (cd src; $(MAKE) $(MFLAGS) mostlyclean) @@ -742,7 +776,12 @@ bootstrap: bootstrap-clean-before info FRC (cd lisp; $(MAKE) $(MFLAGS) bootstrap-after) ### Used for `bootstrap' to avoid deleting existing dumped Emacs executables. -bootstrap-clean-before: FRC +bootstrap-clean-before: bootstrap-clean-before-fast FRC + (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean) + +### Used for `bootfast' to avoid deleting existing dumped Emacs executables +### and compiled .elc files. +bootstrap-clean-before-fast: FRC (cd src; $(MAKE) $(MFLAGS) mostlyclean) (cd oldXMenu; $(MAKE) $(MFLAGS) clean) (cd lwlib; $(MAKE) $(MFLAGS) clean) @@ -751,4 +790,3 @@ bootstrap-clean-before: FRC -(cd lispref && $(MAKE) $(MFLAGS) clean) -(cd lispintro && $(MAKE) $(MFLAGS) clean) (cd leim; $(MAKE) $(MFLAGS) clean) - diff --git a/README b/README index 357c08ff3b3..c9a2f69700f 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -This directory tree holds version 21.3.50 of GNU Emacs, the extensible, +This directory tree holds version 22.0.50 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. You may encounter bugs in this release. If you do, please report diff --git a/admin/ChangeLog b/admin/ChangeLog index 7f619f6e963..5d9d95ae41c 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,191 @@ +2005-12-13 Bill Wohler + + * FOR-RELEASE: Ensure MH-E 8.0 has been released. + +2005-12-09 Reiner Steib + + * FOR-RELEASE (DOCUMENTATION): Remove message-mail, gnus-* + completing-read-multiple, mail-extract-address-components, + mail-mode, quail-define-package, save-buffer and + ucs-set-table-for-input from doc strings item (Done). + +2005-11-28 Chong Yidong + + * FOR-RELEASE: Icons installed. Partial completion bug fixed. + +2005-11-11 Kim F. Storm + + * FOR-RELEASE (FATAL ERRORS): Fix infinite loop in redisplay + when displaying a non-breaking space in an overlay string. + +2005-10-30 Chong Yidong + + * FOR-RELEASE: Init file change implemented. + +2005-10-27 Chong Yidong + + * FOR-RELEASE: Fringe angle bitmap at eob fixed. + +2005-10-19 Chong Yidong + + * FOR-RELEASE (New features): max-image-size implemented. + (Bugs): split-window done, by Kim F. Storm. + +2005-10-17 Bill Wohler + + * FOR-RELEASE (DOCUMENTATION): Removed lisp/toolbar from list + since it's gone. Also marked mh-e as done. + +2005-10-11 Juanma Barranquero + + * FOR-RELEASE (FATAL ERRORS): Remove item about JPEG + libraries on Windows (Done). + +2005-10-01 Jason Rumney + + * admin.el (set-version): Set version numbers in nt/emacs.rc. + +2005-08-31 Romain Francoise + + * FOR-RELEASE: (New features): Remove vhdl-mode.el update + item (Done). + +2005-08-27 Romain Francoise + + * FOR-RELEASE (Bugs): Remove compile-internal item (Done). + +2005-07-04 Lute Kamstra + + Update FSF's address in GPL notices. + +2005-06-10 Lute Kamstra + + * admin.el (set-version): Set version in lisp manual too. + * make-tarball.txt: Commit lispref/elisp.texi too. + +2005-06-04 Richard M. Stallman + + * emacs-pretesters: Refer to etc/DEBUG instead of duplicating it. + Other cleanups. + +2005-04-19 Lute Kamstra + + * make-tarball.txt: Don't commit lisp/loaddefs.el. + +2005-04-14 Lute Kamstra + + * nt/makedist.bat (elfiles): Update. + + * admin.el (add-release-logs): Fix require call. + +2005-03-30 Marcelo Toledo + + * FOR-RELEASE (Documentation): Added check the Emacs Tutorial. The + first line of every tutorial must begin with a sentence saying + "Emacs Tutorial" in the respective language. This should be + followed by "See end for copying conditions", likewise in the + respective language. + +2005-03-29 Luc Teirlinck + + * FOR-RELEASE (TO BE DONE SHORTLY BEFORE RELEASE): New section. + Add `undo-ask-before-discard' to it. + +2005-03-02 Miles Bader + + * quick-install-emacs: Only use the mkdir --verbose option if the + script's --verbose option was specified (this avoids problems with + default usage on systems where mkdir doesn't support that option). + +2005-02-15 Jason Rumney + + * nt/makedist.bat: Do not rely on non-standard behaviour of + tar --exclude. + +2004-11-02 Jan Dj,Ad(Brv + + * FOR-RELEASE (Indications): Remove two stage update for toolbar (Done). + +2004-09-20 Luc Teirlinck + + * FOR-RELEASE (Indications): Rearrange checklists for Emacs and + Elisp manuals. + +2004-09-18 Luc Teirlinck + + * FOR-RELEASE (Indications): Clean up and update checklists for + Emacs and Elisp manuals. + +2004-09-11 Kim F. Storm + + * FOR-RELEASE (New features): Remove Gnus 5.10 entry (Done!). + (Documentation): Add NEWS entry. + Add section lists for proof-reading Emacs and Lisp manuals. + +2004-08-29 Kim F. Storm + + * FOR-RELEASE (Documentation): Add man/ack.texi and AUTHORS. + +2004-08-28 Jan Dj,Ad(Brv + + * FOR-RELEASE (Indications): Remove entry about GTK and geometry, + (now behaves as well as other ports). + +2004-06-28 Jan Dj,Ad(Brv + + * FOR-RELEASE: Remove entry about GTK and monochrome displays (done). + +2004-06-26 Eli Zaretskii + + * FOR-RELEASE: Moved here from the etc directory. + +2004-05-08 Thien-Thi Nguyen + + * notes/BRANCH: New file, to be maintained per CVS branch. + +2003-10-01 Miles Bader + + * quick-install-emacs: Don't use "function" keyword when defining + shell functions. + +2003-09-29 Lute Kamstra + + * make-tarball.txt: Mention regenerating Emacs' AUTHORS file. + +2003-09-27 Miles Bader + + * quick-install-emacs: Remove fns-* pruning, since that file no + longer seems to be generated. + (AVOID): Quote literal periods. Quote braces in a way acceptable + to all parties (gawk gets bitchy about using `\'). + +2003-08-19 Miles Bader + + * quick-install-emacs: Add arch-specific ignored files to + quick-install-emacs. Use quoting for periods that's acceptable + to recent versions of gawk. + +2003-08-11 Markus Rost + + * cus-test.el: Remove obsolete workaround. + +2003-04-22 Andrew Innes + + * nt/makedist.bat: Fix multi-file .zip distribution, by splitting + emacs.exe before zipping, and including batch file to recreate + after unpacking. + + * nt/stitch.bat: New file. + + * nt/README-ftp-server: Update wording and version number etc. + Add extra instructions for installing multi-file .zip + distribution. + + * nt/README.W32: Remove personal email address and update wording. + + * nt/README-UNDUMP.W32: Remove personal email address and update + wording. + 2003-02-10 Francesco Potort,Al(B * make-changelog-diff: New script, code stolen from make-announcement. @@ -113,9 +301,11 @@ version of tar used. ;; Local Variables: -;; coding: iso-2022-7bit-unix +;; coding: iso-2022-7bit ;; End: Copyright (C) 2001 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. + +;;; arch-tag: 97728c77-77c0-4156-b669-0e8c07d94e5a diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE new file mode 100644 index 00000000000..a9da7abb102 --- /dev/null +++ b/admin/FOR-RELEASE @@ -0,0 +1,255 @@ +Tasks needed before the next release. + +* TO BE DONE SHORTLY BEFORE RELEASE + +** `undo-ask-before-discard', currently set to t for debugging purposes +has to be set to nil: when t, it can leak memory and cause other problems. + +** Update release dates of manuals. + +** Spell check the manuals. + +** Get rid of overfull and underfull boxes in manuals. + +** Check for widow and orphan lines in manuals; +make sure all the pages really look ok in the manual as formatted. + +** Update facemenu-unlisted-faces, adding whatever other +face name prefixes should be in it for good results. + +** Update AUTHORS. + +** Regenerate the postscript files of the reference cards in etc. + +** Ask maintainers of refcard translations to update them. + +** Check what should be deleted or updated in MORE.STUFF. + +** Send an email to the various distributions, including the GNOME +and KDE projects, to use the new Emacs icons in etc/images/icons. + +** Ensure MH-E 8.0 has been released. +Assigned to Bill Wohler . + +* NEW FEATURES + +** Rework how fringe bitmaps are defined and used. +Currently, bitmap usage and bitmap appearence are "mixed-up" in a +one-level representation. It would be cleaner to split the +representation into a two-level model where first level maps +bitmap usage to a bitmap name, and second level maps bitmap name to +a bitmap appearence. +[Assigned to KFS] + +* FATAL ERRORS + +** Investigate reported crashes in compact_small_strings. + +** Investigate reported crashes related to using an +invalid pointer from string_free_list. + +* BUGS + +** Ronan Keryell's Sep 23 bug about "tramp sudo:: and version control on RCS" + +** TCP server processes do not work on Windows. + +TCP/IP server processes created with `make-network-process' consume +excesive CPU on some Windows environments. Usages of 50% and 100% +CPU time have been observed on different Window XP configurations. +Seems to be a problem in sys_select in w32proc.c. + +* DOCUMENTATION + +** Add a node to the Lisp manual describing key sequences from the +Lisp point of view. + +** Check man/info.texi. + +** Add missing years in copyright notices of all files. + +Please record your name here and say which part of the distribution +you're going to handle. + +DIRECTORY STATUS IN CHARGE +--------- ------ --------- +etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org)) +leim done Kenichi Handa +lib-src done ttn +lisp done ttn +lisp/calc done ttn +lisp/calendar done Glenn Morris +lisp/emacs-lisp done ttn +lisp/emulation done ttn +lisp/eshell done ttn +lisp/gnus done ttn +lisp/international done Kenichi Handa +lisp/language done Kenichi Handa +lisp/mail done ttn +lisp/mh-e done Bill Wohler +lisp/net done ttn +lisp/obsolete done ttn +lisp/play done ttn +lisp/progmodes done Nick Roberts +lisp/term done ttn +lisp/textmodes done ttn +lisp/url done ttn +lispintro done ttn +lispref done ttn +lwlib done ttn +m4 done ttn +mac (and subdirs) done ttn +man done ttn +msdos done ttn +nt (and subdirs) done ttn +oldXMenu done ttn +src (and subdirs) done ttn +vms done ttn + +** Check the Emacs manual. + +Each manual section should be checked for factual correctness +regarding recent changes by at least two people. After each file +name, on the same line or the following line, come the names of the +people who have checked it. + +SECTION READERS +----------------------------- +man/abbrevs.texi Chong Yidong Joakim Verona +man/anti.texi Chong Yidong +man/basic.texi "Luc Teirlinck" Chong Yidong +man/buffers.texi "Luc Teirlinck" Chong Yidong +man/building.texi "Ted Zlatanov" +man/calendar.texi joakim@verona.se Chong Yidong +man/cmdargs.texi Chong Yidong "Luc Teirlinck" +man/commands.texi "Luc Teirlinck" Chong Yidong +man/custom.texi Chong Yidong "Luc Teirlinck" +man/dired.texi Chong Yidong joakim@verona.se +man/display.texi "Luc Teirlinck" Chong Yidong +man/emacs.texi "Luc Teirlinck" Lute Kamstra +man/entering.texi "Luc Teirlinck" Chong Yidong +man/files.texi "Luc Teirlinck" Chong Yidong +man/fixit.texi "Luc Teirlinck" Chong Yidong +man/frames.texi "Luc Teirlinck" Chong Yidong +man/glossary.texi Chong Yidong +man/help.texi "Luc Teirlinck" Chong Yidong +man/indent.texi "Luc Teirlinck" Chong Yidong +man/killing.texi "Luc Teirlinck" Chong Yidong +man/kmacro.texi "Luc Teirlinck" Chong Yidong +man/macos.texi Chong Yidong +man/maintaining.texi Chong Yidong +man/major.texi "Luc Teirlinck" Chong Yidong +man/mark.texi "Luc Teirlinck" Chong Yidong +man/mini.texi "Luc Teirlinck" Chong Yidong +man/misc.texi Chong Yidong +man/msdog.texi Chong Yidong +man/mule.texi "Luc Teirlinck" Kenichi Handa +man/m-x.texi "Luc Teirlinck" Chong Yidong +man/picture.texi Joakim Verona Chong Yidong +man/programs.texi "Stephen Eglen" Chong Yidong +man/regs.texi "Luc Teirlinck" Chong Yidong +man/rmail.texi Chong Yidong "Luc Teirlinck" +man/screen.texi "Luc Teirlinck" Chong Yidong +man/search.texi "Luc Teirlinck" Chong Yidong +man/sending.texi Chong Yidong "Luc Teirlinck" +man/text.texi "Luc Teirlinck" Chong Yidong +man/trouble.texi Chong Yidong +man/windows.texi "Luc Teirlinck" Chong Yidong +man/xresources.texi + +** Check the Emacs Lisp manual. + +Each manual section should be checked for factual correctness +regarding recent changes by at least two people. After each file +name, on the same line or the following line, come the names of the +people who have checked it. + +SECTION READERS +---------------------------------- +lispref/abbrevs.texi "Luc Teirlinck" Chong Yidong +lispref/advice.texi joakim@verona.se Chong Yidong +lispref/anti.texi Chong Yidong +lispref/backups.texi "Luc Teirlinck" Chong Yidong +lispref/buffers.texi "Luc Teirlinck" Chong Yidong +lispref/calendar.texi Joakim Verona Chong Yidong +lispref/commands.texi "Luc Teirlinck" Chong Yidong +lispref/compile.texi "Luc Teirlinck" Chong Yidong +lispref/control.texi "Luc Teirlinck" Chong Yidong +lispref/customize.texi Chong Yidong "Luc Teirlinck" +lispref/debugging.texi Joakim Verona Lute Kamstra +lispref/display.texi Chong Yidong +lispref/edebug.texi Chong Yidong "Luc Teirlinck" +lispref/elisp.texi "Luc Teirlinck" Lute Kamstra +lispref/errors.texi "Luc Teirlinck" Chong Yidong +lispref/eval.texi "Luc Teirlinck" Chong Yidong +lispref/files.texi "Luc Teirlinck" Chong Yidong +lispref/frames.texi "Luc Teirlinck" Chong Yidong +lispref/functions.texi "Luc Teirlinck" Chong Yidong +lispref/hash.texi "Luc Teirlinck" Chong Yidong +lispref/help.texi "Luc Teirlinck" Chong Yidong +lispref/hooks.texi Lute Kamstra Chong Yidong +lispref/internals.texi "Luc Teirlinck" Chong Yidong +lispref/intro.texi "Luc Teirlinck" Josh Varner +lispref/keymaps.texi "Luc Teirlinck" Chong Yidong +lispref/lists.texi "Luc Teirlinck" Chong Yidong +lispref/loading.texi "Luc Teirlinck" Chong Yidong +lispref/locals.texi Chong Yidong +lispref/macros.texi "Luc Teirlinck" Chong Yidong +lispref/maps.texi Chong Yidong +lispref/markers.texi "Luc Teirlinck" Chong Yidong +lispref/minibuf.texi "Luc Teirlinck" Chong Yidong +lispref/modes.texi Chong Yidong +lispref/nonascii.texi "Luc Teirlinck" Chong Yidong +lispref/numbers.texi "Luc Teirlinck" Chong Yidong +lispref/objects.texi "Luc Teirlinck" Chong Yidong +lispref/os.texi "Luc Teirlinck" Chong Yidong +lispref/positions.texi "Luc Teirlinck" Chong Yidong +lispref/processes.texi Chong Yidong ttn +lispref/searching.texi "Luc Teirlinck" Chong Yidong +lispref/sequences.texi "Luc Teirlinck" Chong Yidong +lispref/streams.texi "Luc Teirlinck" Chong Yidong +lispref/strings.texi "Luc Teirlinck" Chong Yidong +lispref/symbols.texi "Luc Teirlinck" Chong Yidong +lispref/syntax.texi "Luc Teirlinck" Chong Yidong +lispref/text.texi Chong Yidong +lispref/tips.texi "Luc Teirlinck" Chong Yidong +lispref/variables.texi "Luc Teirlinck" Chong Yidong +lispref/windows.texi "Luc Teirlinck" Chong Yidong + +** Check the Emacs Tutorial. + +The first line of every tutorial must begin with text ending in a period +(".", ASCII 0x2E) saying "Emacs Tutorial" in the respective language. +This should be followed by "See end for copying conditions", likewise +in the respective language. + +After each file name, on the same line or the following line, come the +names of the people who have checked it. + +SECTION READERS +---------------------------------- +etc/TUTORIAL rms +etc/TUTORIAL.bg Ognyan Kulev +etc/TUTORIAL.cn +etc/TUTORIAL.cs Pavel Janík +etc/TUTORIAL.de Werner LEMBERG +etc/TUTORIAL.es Marcelo Toledo +etc/TUTORIAL.fr ttn +etc/TUTORIAL.it ttn +etc/TUTORIAL.ja Kenichi Handa +etc/TUTORIAL.ko +etc/TUTORIAL.nl Lute Kamstra +etc/TUTORIAL.pl Slawomir Nowaczyk +etc/TUTORIAL.pt_BR Marcelo Toledo +etc/TUTORIAL.ro +etc/TUTORIAL.ru Alex Ott +etc/TUTORIAL.sk Pavel Janík +etc/TUTORIAL.sl Primoz PETERLIN +etc/TUTORIAL.sv Mats Lidell +etc/TUTORIAL.th Virach Sornlertlamvanich +etc/TUTORIAL.zh + + +Local variables: +mode: outline +end: diff --git a/admin/README b/admin/README index 33d79de3f0a..e5116fcbaa3 100644 --- a/admin/README +++ b/admin/README @@ -17,3 +17,5 @@ make-emacs build Emacs in various ways make-tarball.txt instructions to create pretest or release tarballs quick-install-emacs install emacs quickly (`incrementally') revdiff get CVS diffs of files + +# arch-tag: 812b9461-bc0a-46a7-925e-24bd41118463 diff --git a/admin/admin.el b/admin/admin.el index e16b26eb6a8..2f7f085b9d9 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -1,6 +1,6 @@ ;;; admin.el --- utilities for Emacs administration -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -16,13 +16,13 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: -;; add-release-log add ``Version X released'' change log entries -;; set-version change Emacs version number in source tree. +;; add-release-logs Add ``Version X released'' change log entries. +;; set-version Change Emacs version number in source tree. ;;; Code: @@ -43,7 +43,6 @@ Signal an error if the program returns with a non-zero exit status." (forward-line 1)) (nreverse lines))))) - (defun add-release-logs (root version) "Add \"Version VERSION released.\" change log entries in ROOT. Root must be the root of an Emacs source tree." @@ -51,8 +50,8 @@ Root must be the root of an Emacs source tree." (setq root (expand-file-name root)) (unless (file-exists-p (expand-file-name "src/emacs.c" root)) (error "%s doesn't seem to be the root of an Emacs source tree" root)) + (require 'add-log) (let* ((logs (process-lines "find" root "-name" "ChangeLog")) - (require 'add-log) (entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n" (funcall add-log-time-format) (or add-log-full-name (user-full-name)) @@ -64,7 +63,6 @@ Root must be the root of an Emacs source tree." (goto-char (point-min)) (insert entry))))) - (defun set-version-in-file (root file version rx) (find-file (expand-file-name file root)) (goto-char (point-min)) @@ -72,7 +70,6 @@ Root must be the root of an Emacs source tree." (error "Version not found in %s" file)) (replace-match (format "%s" version) nil nil nil 1)) - (defun set-version (root version) "Set Emacs version to VERSION in relevant files under ROOT. Root must be the root of an Emacs source tree." @@ -87,6 +84,39 @@ Root must be the root of an Emacs source tree." (submatch (1+ (in "0-9.")))))) (set-version-in-file root "man/emacs.texi" version (rx (and "EMACSVER" (1+ space) - (submatch (1+ (in "0-9."))))))) - + (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "lispref/elisp.texi" version + (rx (and "EMACSVER" (1+ space) + (submatch (1+ (in "0-9.")))))) + ;; nt/emacs.rc also contains the version number, but in an awkward + ;; format. It must contain four components, separated by commas, and + ;; in two places those commas are followed by space, in two other + ;; places they are not. + (let* ((version-components (append (split-string version "\\.") + '("0" "0"))) + (comma-version + (concat (car version-components) "," + (cadr version-components) "," + (cadr (cdr version-components)) "," + (cadr (cdr (cdr version-components))))) + (comma-space-version + (concat (car version-components) ", " + (cadr version-components) ", " + (cadr (cdr version-components)) ", " + (cadr (cdr (cdr version-components)))))) + (set-version-in-file root "nt/emacs.rc" comma-version + (rx (and "FILEVERSION" (1+ space) + (submatch (1+ (in "0-9,")))))) + (set-version-in-file root "nt/emacs.rc" comma-version + (rx (and "PRODUCTVERSION" (1+ space) + (submatch (1+ (in "0-9,")))))) + (set-version-in-file root "nt/emacs.rc" comma-space-version + (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space) + ?\" (submatch (1+ (in "0-9, "))) "\\0\""))) + (set-version-in-file root "nt/emacs.rc" comma-space-version + (rx (and "\"ProductVersion\"" (0+ space) ?, + (0+ space) ?\" (submatch (1+ (in "0-9, "))) + "\\0\""))))) + +;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 ;; admin.el ends here. diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c index 4be2038ef1c..361b3bd2f24 100644 --- a/admin/alloc-colors.c +++ b/admin/alloc-colors.c @@ -15,8 +15,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ #include #include @@ -111,3 +111,6 @@ main (int argc, char **argv) XCloseDisplay (dpy); return 0; } + +/* arch-tag: f1be90ac-5b70-43c2-835e-5a6432a25145 + (do not change this comment) */ diff --git a/admin/build-configs b/admin/build-configs index 06ea9cb2875..083c9e766e6 100755 --- a/admin/build-configs +++ b/admin/build-configs @@ -16,8 +16,8 @@ # # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. # Build Emacs in several different configurations. @@ -97,3 +97,5 @@ foreach $config (@configs) # Local Variables: # mode: cperl # End: + +# arch-tag: 20a4452d-610a-4e54-9abc-ffe79f5c0d30 diff --git a/admin/check-doc-strings b/admin/check-doc-strings index f5f750925eb..ce2166fce81 100755 --- a/admin/check-doc-strings +++ b/admin/check-doc-strings @@ -298,3 +298,4 @@ foreach my $fun (sort keys %texi_funtype) { } } +# arch-tag: e75331f5-5d1b-4393-ad5b-b0f87b5d47b0 diff --git a/admin/cus-test.el b/admin/cus-test.el index bebf89cdeb5..ff38b0b08ff 100644 --- a/admin/cus-test.el +++ b/admin/cus-test.el @@ -21,8 +21,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -150,18 +150,6 @@ ;; This avoids a hang of `cus-test-apropos' in 21.2. ;; (add-to-list 'cus-test-skip-list 'sh-alias-alist) -;; Don't create a file `filesets-menu-cache-file'. -(setq filesets-menu-cache-file "") -;; Disable filesets hooks. -(add-hook - 'cus-test-after-load-libs-hook - (lambda nil - (remove-hook 'menu-bar-update-hook 'filesets-build-menu-maybe) - (remove-hook 'kill-emacs-hook 'filesets-exit) - (remove-hook 'kill-buffer-hook 'filesets-remove-from-ubl) - (remove-hook 'first-change-hook 'filesets-reset-filename-on-change) - )) - ;; Loading dunnet in batch mode leads to a Dead end. (let (noninteractive) (load "dunnet")) (add-to-list 'cus-test-libs-noloads "dunnet") @@ -538,4 +526,5 @@ in the Emacs source directory." (provide 'cus-test) +;;; arch-tag: a4991a31-548d-48fb-8ba1-1ebbe68eb2e7 ;;; cus-test.el ends here diff --git a/admin/diff-tar-files b/admin/diff-tar-files index 6536a5e109f..7f27ab99876 100755 --- a/admin/diff-tar-files +++ b/admin/diff-tar-files @@ -16,8 +16,8 @@ # # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. if [ $# != 2 ]; then cat <name - $4 = 809661752 - -Now we can use `pr' to print the name of the frame: - - (gdb) pr - "emacs@steenrod.math.nwu.edu" - -* The Emacs C code heavily uses macros defined in lisp.h. So suppose -we want the address of the l-value expression near the bottom of -`kbd_buffer_store_event' from keyboard.c: - - XVECTOR (kbd_buffer_frame_or_window)->contents[kbd_store_ptr - - kbd_buffer] - = event->frame_or_window); - -XVECTOR is a macro, and therefore GDB does not know about it. -GDB cannot evaluate p XVECTOR (kbd_buffer_frame_or_window). - -However, you can use the xvector command in GDB to get the same -result. Here is how: - - (gdb) p kbd_buffer_frame_or_window - $1 = 1078005760 - (gdb) xvector - $2 = (struct Lisp_Vector *) 0x411000 - 0 - (gdb) p $->contents[kbd_store_ptr - kbd_buffer] - $3 = 1077872640 - (gdb) p &$ - $4 = (int *) 0x411008 - -* Here's a related example of macros and the GDB `define' command. -There are many Lisp vectors such as `recent_keys', which contains the -last 100 keystrokes. We can print this Lisp vector - -p recent_keys -pr - -But this may be inconvenient, since `recent_keys' is much more verbose -than `C-h l'. We might want to print only the last 10 elements of -this vector. `recent_keys' is updated in keyboard.c by the command - - XVECTOR (recent_keys)->contents[recent_keys_index] = c; - -So we define a GDB command `xvector-elts', so the last 10 keystrokes -are printed by - - xvector-elts recent_keys recent_keys_index 10 - -where you can define xvector-elts as follows: - - define xvector-elts - set $i = 0 - p $arg0 - xvector - set $foo = $ - while $i < $arg2 - p $foo->contents[$arg1-($i++)] - pr - end - document xvector-elts - Prints a range of elements of a Lisp vector. - xvector-elts v n i - prints `i' elements of the vector `v' ending at the index `n'. - end - -* To debug what happens while preloading and dumping Emacs, -do `gdb temacs' and start it with `r -batch -l loadup dump'. - -If temacs actually succeeds when running under GDB in this way, do not -try to run the dumped Emacs, because it was dumped with the GDB -breakpoints in it. - -* If you encounter X protocol errors, try evaluating (x-synchronize t). -That puts Emacs into synchronous mode, where each Xlib call checks for -errors before it returns. This mode is much slower, but when you get -an error, you will see exactly which call really caused the error. - -* If the symptom of the bug is that Emacs fails to respond, don't -assume Emacs is `hung'--it may instead be in an infinite loop. To -find out which, make the problem happen under GDB and stop Emacs once -it is not responding. (If Emacs is using X Windows directly, you can -stop Emacs by typing C-z at the GDB job.) Then try stepping with -`step'. If Emacs is hung, the `step' command won't return. If it is -looping, `step' will return. - -If this shows Emacs is hung in a system call, stop it again and -examine the arguments of the call. In your bug report, state exactly -where in the source the system call is, and what the arguments are. - -If Emacs is in an infinite loop, please determine where the loop -starts and ends. The easiest way to do this is to use the GDB command -`finish'. Each time you use it, Emacs resumes execution until it -exits one stack frame. Keep typing `finish' until it doesn't -return--that means the infinite loop is in the stack frame which you -just tried to finish. - -Stop Emacs again, and use `finish' repeatedly again until you get back -to that frame. Then use `next' to step through that frame. By -stepping, you will see where the loop starts and ends. Also please -examine the data being used in the loop and try to determine why the -loop does not exit when it should. Include all of this information in -your bug report. - -* If certain operations in Emacs are slower than they used to be, here -is some advice for how to find out why. - -Stop Emacs repeatedly during the slow operation, and make a backtrace -each time. Compare the backtraces looking for a pattern--a specific -function that shows up more often than you'd expect. - -If you don't see a pattern in the C backtraces, get some Lisp -backtrace information by looking at Ffuncall frames (see above), and -again look for a pattern. - -When using X, you can stop Emacs at any time by typing C-z at GDB. -When not using X, you can do this with C-g. - * Configure tries to figure out what kind of system you have by compiling and linking programs which calls various functions and looks at whether that succeeds. The file config.log contains any messages @@ -344,6 +159,9 @@ or more simply, rm config.cache ./configure +* Don't try changing Emacs *in any way* during pretest unless it fails +to work unchanged. + * Always be precise when talking about changes you have made. Show things rather than describing them. Use exact filenames (relative to the main directory of the distribution), not partial ones. For @@ -352,27 +170,27 @@ makefile". Instead of saying "I defined the MUMBLE macro", send a diff. * Always use `diff -c' to make diffs. If you don't include context, it -may be hard for me to figure out where you propose to make the -changes. So I might have to ignore your patch. +may be hard for us to figure out where you propose to make the +changes. So we might ignore your patch. -* When you write a fix, keep in mind that I can't install a change +* When you write a fix, keep in mind that we can't install a change that *might* break other systems without the risk that it will fail to work and therefore require an additional cycle of pretesting. People often suggest fixing a problem by changing config.h or src/ymakefile or even src/Makefile to do something special that a particular system needs. Sometimes it is totally obvious that such -changes would break Emacs for almost all users. I can't possibly make -a change like that. All I can do is send it back to you and ask you -to find a fix that is safe to install. +changes would break Emacs for almost all users. We can't possibly +make a change like that. All we can do is ask you to find a fix that +is safe to install. Sometimes people send fixes that *might* be an improvement in general--but it is hard to be sure of this. I can install such changes some of the time, but not during pretest, when I am trying to get a new version to work reliably as quickly as possible. -The safest changes for me to install are changes to the s- and m- -files. At least I know those can't affect most systems. +The safest changes for us to install are changes to the s- and m- +files. At least those can't break other systems. Another safe kind of change is one that uses a conditional to make sure it will apply only to a particular kind of system. Ordinarily, @@ -380,61 +198,23 @@ that is a bad way to solve a problem, and I would want to find a cleaner alternative. But the virtue of safety can make it superior at pretest time. -* Don't try changing Emacs *in any way* unless it fails to work unchanged. - -* Don't even suggest changes to add features or make something -cleaner. Every change I install could introduce a bug, so I won't -install a change during pretest unless I see it is *necessary*. +* Don't suggest changes during pretest to add features or make +something cleaner. Every change risks introducing a bug, so I won't +install a change during pretest unless it is *necessary*. * If you would like to suggest changes for purposes other than fixing user-visible bugs, don't wait till pretest time. Instead, send them -after I have made a release that proves to be stable. Then I can give -your suggestions proper consideration. If you send them at pretest -time, I will have to defer them till later, and that might mean I -forget all about them. +after we have made a release that proves to be stable. That is the +easiest time to consider such suggestions. If you send them at +pretest time, we will have to defer them till later, and that might +mean we forget all about them. * In some cases, if you don't follow these guidelines, your -information might still be useful, but I might have to do more work to -make use of it. Unfortunately, I am so far behind in my work that I -just can't keep up unless you help me to do it efficiently. - -Some suggestions for debugging on MS Windows: - - Marc Fleischeuers, Geoff Voelker and Andrew Innes - -To debug emacs with Microsoft Visual C++, you either start emacs from -the debugger or attach the debugger to a running emacs process. To -start emacs from the debugger, you can use the file bin/debug.bat. The -Microsoft Developer studio will start and under Project, Settings, -Debug, General you can set the command-line arguments and emacs' -startup directory. Set breakpoints (Edit, Breakpoints) at Fsignal and -other functions that you want to examine. Run the program (Build, -Start debug). Emacs will start and the debugger will take control as -soon as a breakpoint is hit. - -You can also attach the debugger to an already running emacs process. -To do this, start up the Microsoft Developer studio and select Build, -Start debug, Attach to process. Choose the emacs process from the -list. Send a break to the running process (Debug, Break) and you will -find that execution is halted somewhere in user32.dll. Open the stack -trace window and go up the stack to w32_msg_pump. Now you can set -breakpoints in emacs (Edit, Breakpoints). Continue the running emacs -process (Debug, Step out) and control will return to emacs, until a -breakpoint is hit. - -To examine the contents of a lisp variable, you can use the function -'debug_print'. Right-click on a variable, select QuickWatch, and -place 'debug_print(' and ')' around the expression. Press -'Recalculate' and the output is sent to the 'Debug' pane in the Output -window. If emacs was started from the debugger, a console window was -opened at emacs' startup; this console window also shows the output of -'debug_print'. It is also possible to keep appropriately masked and -typecast lisp symbols in the Watch window, this is more convenient -when steeping though the code. For instance, on entering -apply_lambda, you can watch (struct Lisp_Symbol *) (0xfffffff & -args[0]). - +information might still be useful, but we would have to do more work +to make use of it. That might cause it to fall by the wayside. Local Variables: mode: text End: + +# arch-tag: caf47b2c-b56b-44f7-a760-b5bfbed15fd3 diff --git a/admin/make-announcement b/admin/make-announcement index 9f69889e17b..cc9d68726a1 100755 --- a/admin/make-announcement +++ b/admin/make-announcement @@ -64,3 +64,5 @@ EOF make-changelog-diff $oldtag $newtag echo " announcement created in $outfile" >&2 + +# arch-tag: 605e00c7-7330-4c45-81e1-2ed53a13c39f diff --git a/admin/make-changelog-diff b/admin/make-changelog-diff index 45a77986835..7d98d22ddf9 100755 --- a/admin/make-changelog-diff +++ b/admin/make-changelog-diff @@ -24,3 +24,5 @@ cvs -q diff -b -r $1 -r $2 $(find -name ChangeLog|sort) | x s/^\n// p" + +# arch-tag: 7604a259-40b4-4f97-86b2-496a9c546f0a diff --git a/admin/make-emacs b/admin/make-emacs index fa7310ce94d..d17e59e5692 100755 --- a/admin/make-emacs +++ b/admin/make-emacs @@ -16,8 +16,8 @@ # # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. # Build Emacs with various options for profiling, debugging, # with and without warnings enabled etc. @@ -185,3 +185,5 @@ exit system "$make CC=\"$cc\" CFLAGS=\"$opts\" @ARGV"; # Local Variables: # mode: cperl # End: + +# arch-tag: 5c3f9713-9ece-4a12-b3f8-deaff15974ba diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index d1189cf18ad..10fca7e84ac 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -1,57 +1,78 @@ Instructions to create pretest or release tarballs. --- originally written by Eli Zaretskii, amended by Francesco Potortì +-- originally written by Gerd Moellmann, amended by Francesco Potortì + with the initial help of Eli Zaretskii For each step, check for possible errors. -1. cvs -q update -Pd +1. cvs -q update -Pd 2. Bootstrap to make 100% sure all elc files are up-to-date, and to make sure that the later tagged version will bootstrap, should it be necessary to check it out. -3. Set the version number (M-x load-file RET admin/admin.el RET, then +3. Regenerate Emacs' AUTHORS file (M-x load-file RET + lisp/emacs-lisp/authors.el RET, then M-x authors RET, then save + the *Authors* buffer). This may require fixing syntactically + incorrect ChangeLog entries beforehand. + +4. Set the version number (M-x load-file RET admin/admin.el RET, then M-x set-version RET). For a release, add released change log entries (M-x add-release-logs RET). -4. rm configure; make bootstrap +5. rm configure; make bootstrap -5. Commit configure, README, lisp/loaddefs.el, lisp/cus-load.el, - lisp/finder-inf.el, lisp/version.el, man/emacs.texi. For a release, - also commit the ChangeLog files in all directories. +6. Commit configure, README, AUTHORS, lisp/cus-load.el, + lisp/finder-inf.el, lisp/version.el, man/emacs.texi, + lispref/elisp.texi. Copy lisp/loaddefs.el to lisp/ldefs-boot.el + and commit lisp/ldefs-boot.el. For a release, also commit the + ChangeLog files in all directories. -6. make-dist --snapshot. Check the contents of the new tar with - admin/diff-tar-files against an older tar file. Some old pretest +7. make-dist --snapshot. Check the contents of the new tar with + admin/diff-tar-files against an older tar file. Some old pretest tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/, while old emacs tarballs are at . -7. xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta +8. xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta -8. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW - configure && make && make -n install +9. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW + ./configure && make && make -n install Use `script' or M-x compile to save the compilation log in compile-NEW.log and compare it against an old one. The easiest way to do that is to visit the old log in Emacs, change the version number of the old Emacs to __, do the same with the new log and do - M-x ediff. Especially check that Info files aren't built. + M-x ediff. Especially check that Info files aren't built. -9. cd EMACS_ROOT_DIR; cvs tag TAG +10. cd EMACS_ROOT_DIR; cvs tag TAG TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a release. -10. admin/make-announcement OLD NEW +11. admin/make-announcement OLD NEW This creates an announcement for pretests. OLD is the version used - to make deltas with respect to NEW. *release instructions missing* + to make deltas with respect to NEW. Announcements for releases need + to be crafted by hand. Use an older announcement to start with: + look in ssh://fencepost.gnu.org/~pot/emacs-tarballs/. + +12. Now you should upload the files to the GNU ftp server. In order to + do that, you must be registered as an Emacs maintainer and have your + GPG key acknowledged by the ftp people. Mail + for instructions. Once you are there, for each file FILE to be + released, create a detached GPG binary signature and a clearsigned + directive file like this: + gpg -b FILE + echo directory: emacs/pretest > FILE.directive (for a pretest) + echo directory: emacs > FILE.directive (for a release) + gpg --clearsign FILE.directive + Upload by anonymous ftp to ftp://ftp-upload.gnu.org/incoming/ftp/ + the files FILE, FILE.sig, FILE.directive.asc -11. For a pretest, do: - rsync -aP emacs-NEW.tar.gz emacs-OLD-NEW.xdelta compile-NEW.log \ - emacs-NEW.announce alpha.gnu.org:/home/alpha/gnu/emacs/pretest/. - *release instructions missing* +13. After five minutes, verify that the files are visible at + ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at + ftp://ftp.gnu.org/gnu/emacs/ for a release. -12. Verify that after five minutes at most the files appear on - ftp://alpha.gnu.org/gnu/emacs/pretest/. - *release instructions missing* +14. For a pretest, let Richard Stallman know about the new pretest and + tell him to announce it using the announcement you prepared. Remind + him to set a Reply-to header to . + For a release, Richard should prepare the announcement himself, + possibly starting from a previous announcment. -13. Let Richard Stallman know about the new pretest and tell him to - announce it using the announcement you prepared. Remind him to set - a Reply-to header to . - *release instructions missing* +# arch-tag: c23c771f-ca26-4584-8a04-50ecf0989390 diff --git a/admin/notes/BRANCH b/admin/notes/BRANCH new file mode 100644 index 00000000000..2c343e53f15 --- /dev/null +++ b/admin/notes/BRANCH @@ -0,0 +1,18 @@ +This file describes the CVS branch in which it is maintained. +Everything below the line is branch-specific. +________________________________________________________________________ + +This is the "HEAD" branch, otherwise known as the "trunk". Its primary +purpose is to accumulate changes that are not yet partitioned into a +specific (versioned) release. When people say "use CVS emacs", this is +the branch they are talking about. Likewise, a "cvs checkout" without +the "-r" option results in this branch. + +The plans for this branch are not specified; Emacs hackers add to it +relatively free of constraint (aside from proper legal / accounting +practices), although sometimes there is related discussion on the +emacs-devel mailing list. + +The closure process for this branch is undocumented; concepts such as +"freeze", "release", or "integration with the trunk" are not applicable +to this branch. diff --git a/admin/notes/cpp b/admin/notes/cpp new file mode 100644 index 00000000000..4f61a595f5e --- /dev/null +++ b/admin/notes/cpp @@ -0,0 +1,20 @@ +ttn 2003-04-09 + +we use a C preprocesor not only in the normal compilation of .c files +into object files, but also for creating + + src/Makefile + lib-src/Makefile + +(delimited by comment "start of cpp stuff"). some cpp implementations +insert whitespace in between tokens, which explains the "$(dot)$(dot)" +and "UNEXEC_ALIAS" workarounds for unixoid systems and the bundled +tradcpp/ for vms. [NOTE: tradcpp/ not yet checked in.] + +during makefile creation, the preprocessor symbol NOT_C_CODE is defined. +this should not be defined for normal .c file compilation. + +there has been discussion on eliminating this use of cpp and relying +solely on autoconf processing. rms says to leave it be. + +;;; arch-tag: d654291e-9fc8-41b7-ab0c-d3cde842a8e0 diff --git a/admin/notes/exit-value b/admin/notes/exit-value new file mode 100644 index 00000000000..e59bb614b9b --- /dev/null +++ b/admin/notes/exit-value @@ -0,0 +1,35 @@ +ttn 2004-05-09 + +The exit value of a program returning to the shell on unixoid systems is +typically 0 for success, and non-0 (such as 1) for failure. For vms it is +odd (1,3,5...) for success, even (0,2,4...) for failure. + +This holds from the point of view of the "shell" (in quotes because vms has a +different dispatch model that is not explained further here). + +From the point of view of the program, nowadays stdlib.h on both type of +systems provides macros `EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT. + +NB: The numerical values of these macros DO NOT need to fulfill the the exit +value requirements outlined in the first paragraph! That is the job of the +`exit' function. Thus, this kind of construct shows misunderstanding: + + #ifdef VMS + exit (1); + #else + exit (0); + #endif + +Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky. + + + +ttn 2004-05-12 + +Values aside from EXIT_SUCCESS and EXIT_FAILURE can be used to indicate +finer gradations of failure. If this is the only information available +to the caller, clamping such values to EXIT_FAILURE loses information. +If there are other ways to indicate the problem to the caller (such as +a message to stderr) it may be ok to clamp. In all cases, it is the +relationship between the program and its caller that must be examined. +[Insert ZAMM quote here.] diff --git a/admin/notes/iftc b/admin/notes/iftc index 294464a8605..e8dcdd3a6d6 100644 --- a/admin/notes/iftc +++ b/admin/notes/iftc @@ -23,3 +23,5 @@ The comment /* iftc */ is used to mark this type of casting to differentiate it from other casting. We commit the changes and can now go about modifying LOW and HIGH separately. When HIGH is ready to handle the type change, the cast can be removed. + +;;; arch-tag: 3309cc41-5d59-421b-b7be-c94b04083bb5 diff --git a/admin/notes/trailing-whitespace b/admin/notes/trailing-whitespace new file mode 100644 index 00000000000..e29456b3a2f --- /dev/null +++ b/admin/notes/trailing-whitespace @@ -0,0 +1,8 @@ +ttn 2003-02-14 + +apparently there was a big discussion on emacs-devel wrt trailing whitespace. +there was a mass-change to remove such from various branches in cvs. probably +it's a good idea to avoid adding trailing whitespace in new code/docs and in +changes. + +;;; arch-tag: de441379-c345-4826-a784-352b5413a698 diff --git a/admin/notes/years b/admin/notes/years new file mode 100644 index 00000000000..155ccd6f065 --- /dev/null +++ b/admin/notes/years @@ -0,0 +1,70 @@ +How to Maintain Copyright Years for GNU Emacs + + +"Our lawyer says it is ok if we add, to each file that has been in Emacs + since Emacs 21 came out in 2001, all the subsequent years. We don't + need to check whether *that file* was changed in those years. + It's sufficient that *Emacs* was changed in those years (and it was!). + + For those files that have been added since then, we should add + the year it was added to Emacs, and all subsequent years." + + --RMS, 2005-07-13 + + +For the refcards under etc/, it's ok to simply use the latest year +(typically in a `\def\year{YEAR}' expression) for the rendered copyright +notice, while maintaining the full list of years in the copyright notice +in the comments. + + +------------------------------------------------------------------------------ + + +Following is the policy that we tried to write down one time (mid 2005). +Although it is incorrect, we keep it around to remind us how complicated +things used to be (and may become in the future). + + +Principle: Individual files need to have the year of the release + in the copyright notice if there is significant change. + + +Practice: + +- individual files + - each must be examined, along w/ its history, by a human + - automated tools facilitate but can never replace this process + +- year of the release + - may be different from year of file introduction, + or year of last significant change + - sometimes the release year slips, leaving a file w/ prematurely + marked release year => need update (e.g., s/2004/2005/ for Emacs 22) + - intervening years (between releases) are not valid and may cause + embarrassment later in case of dispute => remove (however, see next) + - years for new files (merged, contributed) that have been separately + published are valid even if between releases => leave alone + +- significant change + - insignificant + - whitespace + - copyright notice + - version control tags + - simple var/func renaming + - in-file reorganization/reordering + - typos + - small bugfixes + - small docfixes + - filename renaming + - most everything else is significant + - change to interface + - change in functionality + - new file + - many small changes may be significant in aggregate + +- when in doubt, ask (and update these guidelines -- thanks!) + +- sometimes people make mistakes + - if they have not read these guidelines, point them here + - if the guidelines are not helpful, improve the guidelines diff --git a/admin/nt/README-UNDUMP.W32 b/admin/nt/README-UNDUMP.W32 index a10fd30eba1..14c723129b4 100644 --- a/admin/nt/README-UNDUMP.W32 +++ b/admin/nt/README-UNDUMP.W32 @@ -1,11 +1,11 @@ - Emacs for Windows NT and Windows 95/98/2000/XP + Emacs for Windows This README file describes how to dump a bare precompiled version of GNU -Emacs for Windows NT and Windows 95/98/2000/XP. This distribution +Emacs for Windows NT/2000/XP and Windows 95/98/Me. This distribution supplements the standard dumped precompiled distribution of Emacs, which you can download from: - ftp://ftp.gnu.org/gnu/windows/emacs/latest/ + ftp://ftp.gnu.org/gnu/windows/emacs/ If you do not have the "bin" distribution, then you will need to download it before you can use this undumped version. Also note that @@ -31,9 +31,6 @@ overwritten if you run dump more than once). For more information about running Emacs, read the README.W32 file that came with the standard dumped precompiled distribution. If you have problems with Emacs, including problems with dumping, send email to -help-emacs-windows@gnu.org. +"help-emacs-windows@gnu.org". -Enjoy. - -Andrew Innes -(andrewi@gnu.org) +Enjoy! diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server index 20b8e9f87cf..667f7caa8e9 100644 --- a/admin/nt/README-ftp-server +++ b/admin/nt/README-ftp-server @@ -1,17 +1,17 @@ Precompiled Distributions of - Emacs for Windows NT and Windows 95/98/2000 + Emacs for Windows - Version 20.7 - - June 13, 2000 + Version 21.3 + April 22, 2003 + This directory contains source and precompiled distributions for GNU - Emacs on Windows NT and Windows 95/98/2000. This port is a part of - the standard GNU Emacs distribution from the Free Software Foundation; - the precompiled distributions are provided here for convenience since, - unlike Unix, the majority of Windows users do not have access to a - compiler (and, besides, do you really want to compile Emacs when you - don't have to?). + Emacs on Windows NT/2000/XP and Windows 95/98/Me. This port is a part + of the standard GNU Emacs distribution from the Free Software + Foundation; the precompiled distributions are provided here for + convenience since, unlike Unix, the majority of Windows users do not + have access to a compiler (and, besides, do you really want to compile + Emacs when you don't have to?). If you have access to the World Wide Web, I would recommend pointing your favorite web browser to the following document (if you haven't @@ -27,9 +27,9 @@ If you want to redistribute any of the precompiled distributions of Emacs, be careful to check the implications of the GPL. For instance, - if you put the emacs-20.7-bin-i386.tar.gz file from this directory on + if you put the emacs-21.3-bin-i386.tar.gz file from this directory on an Internet site, you must arrange to distribute the source files of - the SAME version (i.e. emacs-20.7-src.tar.gz). + the SAME version (i.e. emacs-21.3-src.tar.gz). Making a link to our copy of the source is NOT sufficient, since we might upgrade to a new version while you are still distributing the @@ -49,13 +49,13 @@ + Primary precompiled distribution, including lisp source: - emacs-20.7-fullbin-i386.tar.gz + emacs-21.3-fullbin-i386.tar.gz + Minimal precompiled distribution, which excludes lisp source: - emacs-20.7-bin-i386.tar.gz + emacs-21.3-bin-i386.tar.gz - You can download emacs-20.7-lisp.tar.gz to get the lisp source, if + You can download emacs-21.3-lisp.tar.gz to get the lisp source, if you later decide you want it - it is useful for understanding how packages work, and how they can best be setup or customized. @@ -66,26 +66,26 @@ + Bare executables, only useful if you want to get the complete source release below, but can't compile Emacs yourself: - emacs-20.7-barebin-i386.tar.gz (requires emacs-20.7-src.tar.gz) + emacs-21.3-barebin-i386.tar.gz (requires emacs-21.3-src.tar.gz) + Undumped executable, only needed for rebuilding Emacs after changing certain core lisp files: - emacs-20.7-undumped-i386.tar.gz + emacs-21.3-undumped-i386.tar.gz + Optional package providing the Library of Emacs Input Methods for typing non-ascii characters, notably Chinese, Japanese and Korean, but also including European and other character sets: - emacs-20.7-leim.tar.gz + emacs-21.3-leim.tar.gz + The complete official source for Emacs: - emacs-20.7-src.tar.gz + emacs-21.3-src.tar.gz + The complete official source for LEIM: - leim-20.7-src.tar.gz + leim-21.3-src.tar.gz * Distributions in multi-file .zip format @@ -94,10 +94,10 @@ provided, for the benefit of people who have unreliable internet connections, or who need to copy the distribution onto floppy disks: - em207-b*.zip + em213b*.zip - This is equivalent to getting emacs-20.7-bin-i386.tar.gz above. - The lisp source is available as em207-l*.zip. + This is equivalent to getting emacs-21.3-bin-i386.tar.gz above. + The lisp source is available as em213l*.zip. * Distributions for non-x86 platforms @@ -116,7 +116,7 @@ * Unpacking distributions Programs for handling the distribution file formats can be found in - the utilities directory: + the utilities directory: ftp://ftp.gnu.org/gnu/windows/emacs/utilities @@ -164,6 +164,13 @@ If your utility failed to create the lock directory, then you can simply create it by hand (it is initially empty). + One final step is needed only when installing from the multi-file .zip + distribution, in order to recreate emacs.exe from its fragments (it is + too big to fit on a floppy even when zipped): + + % cd emacs-21.3\bin + % stitch + * Unpacking with other tools @@ -198,24 +205,34 @@ If you would like to compile Emacs from source, download the source distribution, unpack it in the same manner as a precompiled distribution, and look in the file nt/INSTALL for detailed directions. - Note, though, that you must have a Microsoft compiler to compile the - source. (Support for compiling with gcc 2.95 or later will be - available in a future release.) + You can either use the Microsoft compiler included with Visual C++, or + GCC 2.95 or later with MinGW support, to compile the source. The port + of GCC included in Cygwin is supported, but check the nt/INSTALL file + if you have trouble since some builds of GNU make aren't supported. * Further information - There is a web page that serves as a FAQ at: + If you have access to the World Wide Web, I would recommend pointing + your favorite web browser to following the document (if you haven't + already): http://www.gnu.org/software/emacs/windows/ntemacs.html - There is also a mailing list for discussing issues related to this - port of Emacs. For information about the list, send a message to - ntemacs-users-request@cs.washington.edu with the word "info" in the - *body* of the message. To subscribe to the list, send a message to - the same address with the word "subscribe" in the body of the message; - similarly, to unsubscribe from the list, send a message with the word - "unsubscribe" in the message body. + This document serves as an FAQ and a source for further information + about the Windows port and related software packages. + + In addition to the FAQ, there is a mailing list for discussing issues + related to the Windows port of Emacs. For information about the + list, see this Web page: + + http://mail.gnu.org/mailman/listinfo/help-emacs-windows + + To ask questions on the mailing list, send email to + help-emacs-windows@gnu.org. (You don't need to subscribe for that.) + To subscribe to the list or unsubscribe from it, fill the form you + find at http://mail.gnu.org/mailman/listinfo/help-emacs-windows as + explained there. Another valuable source of information and help which should not be overlooked is the various Usenet news groups dedicated to Emacs. @@ -231,10 +248,6 @@ gnu.emacs.sources - You are also always welcome to send me mail directly. If you don't - hear from me immediately, however, don't worry; it sometimes takes me - a few days (or longer) to get to all of my mail regarding Emacs. - Enjoy! Andrew Innes diff --git a/admin/nt/README.W32 b/admin/nt/README.W32 index 3b95a464de6..a3435541d7e 100644 --- a/admin/nt/README.W32 +++ b/admin/nt/README.W32 @@ -1,10 +1,10 @@ - Emacs for Windows NT and Windows 95/98/2000/XP + Emacs for Windows This README file describes how to set up and run a precompiled version - of GNU Emacs for Windows NT and Windows 95/98/2000/XP. This + of GNU Emacs for Windows NT/2000/XP and Windows 95/98/Me. This distribution can be found on the ftp.gnu.org server and its mirrors: - ftp://ftp.gnu.org/gnu/windows/emacs/latest/ + ftp://ftp.gnu.org/gnu/windows/emacs/ This server contains other distributions, including the full Emacs source distribution and the lisp source distribution, as well as older @@ -169,23 +169,20 @@ invoking Emacs with the "-q --no-site-file" options. If you decide that it is a bug in Emacs that might be specific to the - Windows port, send a message to the ntemacs-users@cs.washington.edu + Windows port, send a message to the "help-emacs-windows@gnu.org" mailing list describing the bug, the version of Emacs that you are using, and the operating system that you are running on (Windows NT, - 2000, 95 or 98 including service pack level if known). If the bug is - related to subprocesses, also specify which shell you are using (e.g., - include the values of `shell-file-name' and `shell-explicit-file-name' - in your message). + 2000, 95, 98, etc. including service pack level if known). If the bug + is related to subprocesses, also specify which shell you are using + (e.g., include the values of `shell-file-name' and + `shell-explicit-file-name' in your message). If you think the bug is not specific to the Windows port of Emacs, - then it is better to mail the bug report to bug-gnu-emacs@gnu.org so + then it is better to mail the bug report to "bug-gnu-emacs@gnu.org" so that it will be seen by the right people. If Emacs has been set up to send mail, you can use the command M-x report-emacs-bug to create and send the bug report, but in some cases there is a function to report bugs in a specific package; e.g. M-x gnus-bug for Gnus, M-x c-submit-bug-report for C/C++/Java mode, etc. - Enjoy. - - Andrew Innes - (andrewi@gnu.org) + Enjoy! diff --git a/admin/nt/dump.bat b/admin/nt/dump.bat index 34f24d3a910..b332e7471f6 100755 --- a/admin/nt/dump.bat +++ b/admin/nt/dump.bat @@ -19,3 +19,7 @@ copy ..\etc\DOC* obj\etc copy temacs.exe obj\i386 obj\i386\temacs -batch -l loadup dump copy obj\i386\emacs.exe . + +goto skipArchTag + arch-tag: 0ca3036d-3a1e-47ea-87c6-9c0845253496 +:skipArchTag diff --git a/admin/nt/makedist.bat b/admin/nt/makedist.bat index e792754c62d..db9d9026aec 100755 --- a/admin/nt/makedist.bat +++ b/admin/nt/makedist.bat @@ -1,117 +1,135 @@ -@echo off - -rem This batch file doesn't work with Cygwin tar because #files# -rem has DOS line endings, which Cygwin tar misinterprets. -rem I use the version of tar from -rem ftp://ftp.gnu.org/gnu/windows/emacs/utilities/i386/tar-1.11.2a.exe -rem renamed as wtar.exe. -set TAR=wtar - -rem Make a copy of current Emacs source -if (%3) == () goto usage -if not (%4) == () goto %4 -if not (%4) == (src) goto :lisp - -:src - -echo Create full source distribution, excluding leim -%TAR% --exclude leim --exclude _marker --exclude DOC --exclude DOC-X --exclude TAGS --exclude bin --exclude obj --exclude obj-spd --exclude oo --exclude oo-spd --exclude *~ --exclude *.rej -cvf - emacs-%1 | gzip -9 > %2-src.tar.gz -if not (%4) == () goto end - -:lisp -echo Create limited elisp source distribution -%TAR% --exclude *.rej --exclude *.elc --exclude *~ -cvf - emacs-%1/lisp | gzip -9 > %2-lisp.tar.gz -if not (%4) == () goto end - -:bin - -set eld=emacs-%1/lisp - -rem Keep this list in sync with the DONTCOMPILE list in lisp/Makefile.in - -set elfiles=%eld%/cus-load.el %eld%/cus-start.el %eld%/emacs-lisp/cl-specs.el %eld%/eshell/esh-maint.el %eld%/eshell/esh-groups.el %eld%/finder-inf.el %eld%/forms-d2.el %eld%/forms-pass.el %eld%/generic-x.el %eld%/international/latin-1.el %eld%/international/latin-2.el %eld%/international/latin-3.el %eld%/international/latin-4.el %eld%/international/latin-5.el %eld%/international/latin-8.el %eld%/international/latin-9.el %eld%/international/mule-conf.el %eld%/loaddefs.el %eld%/loadup.el %eld%/mail/blessmail.el %eld%/patcomp.el %eld%/paths.el %eld%/play/bruce.el %eld%/subdirs.el %eld%/version.el - -set fns_el= -for %%f in (emacs-%1/bin/fns*) do set fns_el=%fns_el% emacs-%1/bin/%%f - -echo Create bin distribution -copy %3\README.W32 emacs-%1\README.W32 - -del #files# -for %%f in (emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32) do echo %%f>>#files# -for %%f in (emacs-%1/bin/fns*) do echo emacs-%1/bin/%%f>>#files# -for %%f in (emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp %elfiles%) do echo %%f>>#files# -for %%f in (%eld%/term/*.el) do echo %eld%/term/%%f>>#files# -for %%f in (emacs-%1/lock emacs-%1/site-lisp emacs-%1/site-lisp/subdirs.el) do echo %%f>>#files# -%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *.el --exclude *~ -T #files# -cvf - | gzip -9 > %2-bin-i386.tar.gz -del emacs-%1\README.W32 -del #files# -if not (%4) == () goto end - -:fullbin - -echo Create full bin distribution -copy %3\README.W32 emacs-%1\README.W32 - -%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *~ -cvf - emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/lock emacs-%1/site-lisp | gzip -9 > %2-fullbin-i386.tar.gz -del emacs-%1\README.W32 -if not (%4) == () goto end - -:leim - -echo Create archive with precompiled leim files -%TAR% -cvf - emacs-%1/leim/leim-list.el emacs-%1/leim/quail emacs-%1/leim/ja-dic | gzip -9 > %2-leim.tar.gz -if not (%4) == () goto end - -:undumped - -echo Create archive with extra files needed for redumping emacs -copy %3\README-UNDUMP.W32 emacs-%1\README-UNDUMP.W32 -copy %3\dump.bat emacs-%1\bin -if exist emacs-%1\src\obj-spd\i386\temacs.exe copy emacs-%1\src\obj-spd\i386\temacs.exe emacs-%1\bin -if exist emacs-%1\src\oo-spd\i386\temacs.exe copy emacs-%1\src\oo-spd\i386\temacs.exe emacs-%1\bin -%TAR% -cvf - emacs-%1/README-UNDUMP.W32 emacs-%1/bin/dump.bat emacs-%1/bin/temacs.exe | gzip -9 > %2-undumped-i386.tar.gz -del emacs-%1\bin\temacs.exe -del emacs-%1\bin\dump.bat -del emacs-%1\README-UNDUMP.W32 -if not (%4) == () goto end - -:barebin - -echo Create archive with just the basic binaries and generated files -echo (the user needs to unpack the full source distribution for -echo everything else) -copy %3\README.W32 emacs-%1\README.W32 -%TAR% -cvf - emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc/DOC emacs-%1/etc/DOC-X | gzip -9 > %2-barebin-i386.tar.gz -del emacs-%1\README.W32 -if not (%4) == () goto end - -goto end - -rem Only do this if explicitly requested -:zipfiles - -echo Create zip files for bin and lisp archives -mkdir distrib -cd distrib -gunzip -c ..\%2-bin-i386.tar.gz | %TAR% xf - -zip -rp9 em%5_bin %2 -rm -rf %2 -zipsplit -n 2000000 -b .. em%5_bin.zip -del em%5_bin.zip -gunzip -c ..\%2-lisp.tar.gz | %TAR% xf - -zip -rp9 em%5_lis %2 -rm -rf %2 -zipsplit -n 1400000 -b .. em%5_lis.zip -del em%5_lis.zip -cd .. - -goto end - -:usage -echo Generate source and binary distributions of emacs. -echo Usage: %0 emacs-version dist-basename distfiles [lisp,bin,undumped,barebin] -echo (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles) -echo Or: %0 emacs-version dist-basename distfiles "zipfiles" short-version -echo (e.g., %0 20.6 emacs-20.6 d:\andrewi\distfiles zipfiles 206) -:end +@echo off + +rem Beware broken ports of tar. Recent cygwin versions work well, older +rem cygwin versions and the current MSys port have problems with DOS +rem line ends when reading file names from a file. Other ports have their +rem own problems too. +set TAR=tar + +rem Make a copy of current Emacs source +if (%3) == () goto usage +if not (%4) == () goto %4 +if not (%4) == (src) goto :lisp + +:src + +echo Create full source distribution, excluding leim +%TAR% --exclude leim --exclude _marker --exclude DOC --exclude DOC-X --exclude TAGS --exclude bin --exclude obj --exclude obj-spd --exclude oo --exclude oo-spd --exclude *~ --exclude *.rej -cvf - emacs-%1 | gzip -9 > %2-src.tar.gz +if not (%4) == () goto end + +:lisp +echo Create limited elisp source distribution +%TAR% --exclude *.rej --exclude *.elc --exclude *~ -cvf - emacs-%1/lisp | gzip -9 > %2-lisp.tar.gz +if not (%4) == () goto end + +:bin + +set eld=emacs-%1/lisp + +rem List of Lisp files that are not compiled and that should be +rem included in the bin distribution. + +rem It would be better to generate this list automatically. It is the +rem list of all .el files for which there is no corresponding .elc +rem file, minus ldefs-boot.el. --lute + +set elfiles=%eld%/cus-load.el %eld%/emacs-lisp/cl-specs.el %eld%/eshell/esh-groups.el %eld%/eshell/esh-maint.el %eld%/finder-inf.el %eld%/forms-d2.el %eld%/forms-pass.el %eld%/international/latin-1.el %eld%/international/latin-2.el %eld%/international/latin-3.el %eld%/international/latin-4.el %eld%/international/latin-5.el %eld%/international/latin-8.el %eld%/international/latin-9.el %eld%/international/mule-conf.el %eld%/language/czech.el %eld%/language/devanagari.el %eld%/language/english.el %eld%/language/georgian.el %eld%/language/greek.el %eld%/language/hebrew.el %eld%/language/japanese.el %eld%/language/kannada.el %eld%/language/korean.el %eld%/language/lao.el %eld%/language/malayalam.el %eld%/language/misc-lang.el %eld%/language/romanian.el %eld%/language/slovak.el %eld%/language/tamil.el %eld%/language/thai.el %eld%/language/utf-8-lang.el %eld%/loaddefs.el %eld%/loadup.el %eld%/mail/blessmail.el %eld%/mh-e/mh-acros.el %eld%/mh-e/mh-gnus.el %eld%/mh-e/mh-loaddefs.el %eld%/obsolete/keyswap.el %eld%/patcomp.el %eld%/paths.el %eld%/play/bruce.el %eld%/subdirs.el %eld%/term/AT386.el %eld%/term/apollo.el %eld%/term/bobcat.el %eld%/term/internal.el %eld%/term/iris-ansi.el %eld%/term/linux.el %eld%/term/lk201.el %eld%/term/news.el %eld%/term/vt102.el %eld%/term/vt125.el %eld%/term/vt200.el %eld%/term/vt201.el %eld%/term/vt220.el %eld%/term/vt240.el %eld%/term/vt300.el %eld%/term/vt320.el %eld%/term/vt400.el %eld%/term/vt420.el %eld%/term/wyse50.el %eld%/version.el + +set fns_el= +for %%f in (emacs-%1/bin/fns*) do set fns_el=%fns_el% emacs-%1/bin/%%f + +echo Create bin distribution +copy %3\README.W32 emacs-%1\README.W32 + +del #files# #elfiles# +for %%f in (emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32) do echo %%f>>#files# +for %%f in (emacs-%1/bin/fns*) do echo emacs-%1/bin/%%f>>#elfiles# +for %%f in (emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp) do echo %%f>>#files# +for %%f in (emacs-%1/lock emacs-%1/site-lisp) do echo %%f>>#files# +for %%f in (%elfiles% emacs-%1/site-lisp/subdirs.el) do echo %%f>>#elfiles# + +%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude "*.el" --exclude "*~" -T #files# -cvf %2-bin-i386.tar +%TAR% -T #elfiles# -rvf %2-bin-i386.tar +gzip -9 %2-bin-i386.tar +del emacs-%1\README.W32 +rem del #files# #elfiles# +if not (%4) == () goto end + +:fullbin + +echo Create full bin distribution +copy %3\README.W32 emacs-%1\README.W32 + +%TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *~ -cvf - emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/lock emacs-%1/site-lisp | gzip -9 > %2-fullbin-i386.tar.gz +del emacs-%1\README.W32 +if not (%4) == () goto end + +:leim + +echo Create archive with precompiled leim files +%TAR% -cvf - emacs-%1/leim/leim-list.el emacs-%1/leim/quail emacs-%1/leim/ja-dic | gzip -9 > %2-leim.tar.gz +if not (%4) == () goto end + +:undumped + +echo Create archive with extra files needed for redumping emacs +copy %3\README-UNDUMP.W32 emacs-%1\README-UNDUMP.W32 +copy %3\dump.bat emacs-%1\bin +if exist emacs-%1\src\obj-spd\i386\temacs.exe copy emacs-%1\src\obj-spd\i386\temacs.exe emacs-%1\bin +if exist emacs-%1\src\oo-spd\i386\temacs.exe copy emacs-%1\src\oo-spd\i386\temacs.exe emacs-%1\bin +%TAR% -cvf - emacs-%1/README-UNDUMP.W32 emacs-%1/bin/dump.bat emacs-%1/bin/temacs.exe | gzip -9 > %2-undumped-i386.tar.gz +del emacs-%1\bin\temacs.exe +del emacs-%1\bin\dump.bat +del emacs-%1\README-UNDUMP.W32 +if not (%4) == () goto end + +:barebin + +echo Create archive with just the basic binaries and generated files +echo (the user needs to unpack the full source distribution for +echo everything else) +copy %3\README.W32 emacs-%1\README.W32 +%TAR% -cvf - emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc/DOC emacs-%1/etc/DOC-X | gzip -9 > %2-barebin-i386.tar.gz +del emacs-%1\README.W32 +if not (%4) == () goto end + +goto end + +rem Only do this if explicitly requested +:zipfiles + +echo Create zip files for bin and lisp archives +mkdir distrib +cd distrib +gunzip -c ..\%2-bin-i386.tar.gz | %TAR% xf - +rem Need to split emacs.exe into fragments because it is too big now +rem to fit on a floppy even by itself. +copy %3\stitch.bat %2\bin +cd %2\bin +split -b 1000000 emacs.exe emacs +del emacs.exe +cd ..\.. +zip -rp9 em%5bin %2 +rm -rf %2 +zipsplit -n 1400000 -b .. em%5bin.zip +del em%5bin.zip +gunzip -c ..\%2-lisp.tar.gz | %TAR% xf - +zip -rp9 em%5lis %2 +rm -rf %2 +zipsplit -n 1400000 -b .. em%5lis.zip +del em%5lis.zip +cd .. + +goto end + +:usage +echo Generate source and binary distributions of emacs. +echo Usage: %0 emacs-version dist-basename distfiles [lisp,bin,undumped,barebin] +echo (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles) +echo Or: %0 emacs-version dist-basename distfiles "zipfiles" short-version +echo (e.g., %0 20.6 emacs-20.6 d:\andrewi\distfiles zipfiles 206) +:end + +goto skipArchTag + arch-tag: 6e2ddd92-c1c9-4992-b6b5-207aaab72f68 +:skipArchTag diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs index ba39f7962f3..9a9d1203d96 100755 --- a/admin/quick-install-emacs +++ b/admin/quick-install-emacs @@ -8,7 +8,7 @@ PUBLIC_LIBSRC_BINARIES='b2m emacsclient etags ctags ebrowse' PUBLIC_LIBSRC_SCRIPTS='grep-changelog rcs-checkin' -AVOID="CVS -DIC README COPYING ChangeLog ~ \.orig$ \.rej$ Makefile makefile stamp-subdir .cvsignore \.[cho]$ make-docfile testfile test-distrib" +AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile makefile stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib" # Prune old binaries lying around in the source tree PRUNE=no @@ -19,15 +19,16 @@ VERBOSE='' me="`basename $0`" -# Install commands (these commands are also expected to understand the -# GNU -v (--verbose) option) +# Install commands (if the user specifies the `--verbose' option, it is +# passed to these commands, so that feature only works if these commands +# implement it too) LINK='cp -lf' COPY='cp -f' REMOVE='rm -r' +MKDIR='mkdir -p' # Used to execute commands once once we create them EXEC='sh' -MKDIR='mkdir --verbose -p' NAWK=/usr/bin/nawk @@ -133,7 +134,8 @@ elif test ! -r "$BUILD/config.status"; then fi CONFIG_STATUS="$BUILD/config.status" -function get_config_var () { +get_config_var () +{ if ! sed -n "s/^s\(.\)@$1@\1\(.*\)\1.*$/\2/p" $CONFIG_STATUS | sed q | grep '' then echo 1>&2 "$me: $1: Configuration variable not found in $CONFIG_STATUS" @@ -153,9 +155,10 @@ DST_BIN="$prefix/bin" DST_LIBEXEC="$prefix/libexec/emacs/$VERSION/$ARCH" DST_INFO="$prefix/info" -function maybe_mkdir () { +maybe_mkdir () +{ if ! test -d "$1"; then - $MKDIR "$1" 2>&1 | sed "s/^mkdir:/$me:/" 1>&2 + $MKDIR $VERBOSE "$1" 2>&1 | sed "s/^mkdir:/$me:/" 1>&2 fi } @@ -177,15 +180,12 @@ if test x"$PRUNE" != xno; then echo $REMOVE_CMD $D PRUNED="$PRUNED $D" done - for D in `ls -1t $BUILD/lib-src/fns-* | sed 1d`; do - echo $REMOVE_CMD $D - PRUNED="$PRUNED $D" - done fi test x"$PRUNE" = xonly && exit 0 -function maybe_emit_copy () { +maybe_emit_copy () +{ if test "$FORCE" = yes || ! cmp -s $1 $2; then echo $LINK_CMD $1 $2 fi @@ -338,3 +338,5 @@ END { done ) | eval $EXEC + +# arch-tag: 9322b572-9755-4cf7-a67a-21e6505f1477 diff --git a/admin/revdiff b/admin/revdiff index 416c572d196..d936106aada 100755 --- a/admin/revdiff +++ b/admin/revdiff @@ -16,8 +16,8 @@ # # You should have received a copy of the GNU General Public License # along with GNU Emacs; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. use File::Basename; @@ -133,3 +133,5 @@ while (@ARGV) # Local Variables: # mode: cperl # End: + +# arch-tag: 2798b20d-c7f2-4c78-8378-7bb529c36a09 diff --git a/autogen.sh b/autogen.sh index 4b74b45a0e2..0fe7ef32fc2 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,7 +1,9 @@ #!/bin/sh -echo "Please read INSTALL-CVS for instructions on how to build Emacs from CVS." +echo "Please read INSTALL.CVS for instructions on how to build Emacs from CVS." # Exit with failure, since people may have generic build scripts that # try things like "autogen.sh && ./configure && make". exit 1 + +# arch-tag: a123408c-fada-4bf7-98a0-a786cff918f0 diff --git a/config.bat b/config.bat index 5d9f7718c7f..1f25bfef9eb 100644 --- a/config.bat +++ b/config.bat @@ -1,7 +1,7 @@ @echo off rem ---------------------------------------------------------------------- rem Configuration script for MSDOS -rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001 +rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2004 rem Free Software Foundation, Inc. rem This file is part of GNU Emacs. @@ -18,23 +18,21 @@ rem GNU General Public License for more details. rem You should have received a copy of the GNU General Public License rem along with GNU Emacs; see the file COPYING. If not, write to the -rem Free Software Foundation, Inc., 59 Temple Place - Suite 330, -rem Boston, MA 02111-1307, USA. +rem Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +rem Boston, MA 02110-1301, USA. rem ---------------------------------------------------------------------- rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: rem rem + msdos version 3 or better. -rem + djgpp version 1.12maint1 or later (version 2.0 or later recommended). +rem + DJGPP version 1.12maint1 or later (version 2.03 or later recommended). rem + make utility that allows breaking of the 128 chars limit on rem command lines. ndmake (as of version 4.5) won't work due to a -rem line length limit. The make that comes with djgpp does work. +rem line length limit. The make that comes with DJGPP does work. rem + rm and mv (from GNU file utilities). rem + sed (you can use the port that comes with DJGPP). rem -rem You should be able to get all the above utilities from any SimTel -rem repository, e.g. ftp.simtel.net, in the directory -rem "pub/simtelnet/gnu/djgpp/v2gnu". As usual, please use your local -rem mirroring site to reduce trans-Atlantic traffic. +rem You should be able to get all the above utilities from the DJGPP FTP +rem site, ftp.delorie.com, in the directory "pub/djgpp/current/v2gnu". rem ---------------------------------------------------------------------- set X11= set nodebug= @@ -123,7 +121,9 @@ Goto End set djgpp_ver=1 If ErrorLevel 20 set djgpp_ver=2 rm -f junk.c junk junk.exe -rem DJECHO is used by the top-level Makefile +rem The v1.x build does not need djecho +if "%DJGPP_VER%" == "1" Goto djechoOk +rem DJECHO is used by the top-level Makefile in the v2.x build Echo Checking whether 'djecho' is available... redir -o Nul -eo djecho -o junk.$$$ foo If Exist junk.$$$ Goto djechoOk @@ -158,6 +158,23 @@ goto src42 :src41 sed -f ../msdos/sed2v2.inp config.h2 :src42 +Rem See if DECL_ALIGN can be supported with this GCC +rm -f junk.c junk.o junk junk.exe +echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c +rem Two percent signs because it is a special character for COMMAND.COM/CMD +rem Filter thru Sed because "&" is special for CMD.EXE +echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./\&/" >>junk.c +gcc -o junk junk.c +if not exist junk.exe coff2exe junk +junk +If Not ErrorLevel 1 Goto alignOk +Echo WARNING: Your GCC does not support 8-byte aligned variables. +Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB. +rem The following line disables DECL_ALIGN which in turn disables USE_LSB_TAG +rem For details see lisp.h where it defines USE_LSB_TAG +echo #define NO_DECL_ALIGN >>config.h2 +:alignOk +rm -f junk.c junk junk.exe update config.h2 config.h >nul rm -f config.tmp config.h2 @@ -191,7 +208,7 @@ rem ---------------------------------------------------------------------- Echo Configuring the library source directory... cd lib-src rem Create "makefile" from "makefile.in". -sed -e "1,/== start of cpp stuff ==/s@^# .*$@@" junk.c +sed -e "1,/== start of cpp stuff ==/s@^#[ ].*$@@" junk.c gcc -E -traditional -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ ]*$/d" >makefile.new If "%DJGPP_VER%" == "2" goto libsrc-v2 sed -f ../msdos/sed3.inp Makefile @@ -276,3 +293,7 @@ set $foo$= set X11= set nodebug= set djgpp_ver= + +goto skipArchTag + arch-tag: 2d2fed23-4dc6-4006-a2e4-49daf0031f33 +:skipArchTag diff --git a/config.guess b/config.guess index 0149c53609b..10a8260177a 100755 --- a/config.guess +++ b/config.guess @@ -1,9 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -timestamp='2002-11-13' +timestamp='2005-12-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -17,13 +17,15 @@ timestamp='2002-11-13' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -53,7 +55,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -66,11 +68,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -98,14 +100,18 @@ trap 'exit 1' 1 2 15 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. -# This shell variable is my proudest work .. or something. --bje +# Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; -(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) - || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; -dummy=$tmpdir/dummy ; -files="$dummy.c $dummy.o $dummy.rel $dummy" ; -trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do @@ -113,15 +119,13 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in CC_FOR_BUILD="$c"; break ; fi ; done ; - rm -f $files ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; -unset files' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -178,144 +182,125 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - eval $set_cc_for_build - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null - if test "$?" = 0 ; then - case `$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - 3-1307) - UNAME_MACHINE="alphaev7" - ;; - esac - fi - rm -f $dummy.s $dummy && rmdir $tmpdir - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; + exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -323,29 +308,32 @@ EOF else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -354,10 +342,10 @@ EOF esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -369,10 +357,10 @@ EOF echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -383,37 +371,40 @@ EOF # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -437,33 +428,33 @@ EOF exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -479,29 +470,29 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -509,7 +500,7 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -524,15 +515,18 @@ EOF exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; + exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then @@ -546,28 +540,28 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -624,16 +618,36 @@ EOF } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy && rmdir $tmpdir + test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -661,149 +675,171 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; + exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i386-pc-interix3 - exit 0 ;; + exit ;; + x86:Interix*:[345]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix - exit 0 ;; + echo i586-pc-interix + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -820,16 +856,37 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu - exit 0 ;; + exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu - exit 0 ;; + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -843,7 +900,7 @@ EOF objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -851,22 +908,28 @@ EOF PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu - exit 0 ;; + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -884,15 +947,15 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; + exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -909,24 +972,29 @@ EOF LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) LIBC=gnu #else LIBC=gnuaout #endif #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^LIBC/{s: ::g;p;}'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; + exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... @@ -934,7 +1002,27 @@ EOF # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -942,15 +1030,16 @@ EOF else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; + exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; + && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1048,64 +1131,72 @@ EOF else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1113,22 +1204,25 @@ EOF UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1139,36 +1233,47 @@ EOF UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1200,7 +1305,7 @@ main () #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1289,12 +1394,12 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 -rm -f $dummy.c $dummy && rmdir $tmpdir +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -1303,22 +1408,22 @@ then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi @@ -1329,7 +1434,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - ftp://ftp.gnu.org/pub/gnu/config/ + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess +and + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/config.sub b/config.sub index aeb3bd99950..8f7b7381c47 100755 --- a/config.sub +++ b/config.sub @@ -1,9 +1,9 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -timestamp='2002-11-13' +timestamp='2005-12-23' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,14 +21,15 @@ timestamp='2002-11-13' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # @@ -70,7 +71,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -83,11 +84,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -99,7 +100,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,7 +119,9 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -144,7 +147,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -169,6 +172,10 @@ case $os in -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -185,6 +192,10 @@ case $os in # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -228,14 +239,16 @@ case $basic_machine in | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ + | bfin \ + | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -244,28 +257,37 @@ case $basic_machine in | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ + | msp430 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ - | tahoe | thumb | tic80 | tron \ + | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xstormy16 | xtensa \ + | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; + m32c) + basic_machine=$basic_machine-unknown + ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown @@ -273,6 +295,9 @@ case $basic_machine in ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -293,19 +318,19 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ - | clipper-* | cydra-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -314,29 +339,40 @@ case $basic_machine in | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39 | mipstx39el \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; + m32c-*) + ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -353,6 +389,9 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -367,6 +406,12 @@ case $basic_machine in basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -426,12 +471,27 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -454,6 +514,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -632,10 +696,6 @@ case $basic_machine in mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -648,6 +708,9 @@ case $basic_machine in basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -723,9 +786,12 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson @@ -752,24 +818,36 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; - pentiumii | pentium2) + pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; + pentium4) + basic_machine=i786-pc + ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumii-* | pentium2-*) + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pn) basic_machine=pn-gould ;; @@ -802,6 +880,10 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -828,6 +910,10 @@ case $basic_machine in sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; @@ -835,6 +921,9 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh64) + basic_machine=sh64-unknown + ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks @@ -901,10 +990,6 @@ case $basic_machine in basic_machine=i386-sequent os=-dynix ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; t3e) basic_machine=alphaev5-cray os=-unicos @@ -913,14 +998,18 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -934,6 +1023,10 @@ case $basic_machine in tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -977,6 +1070,10 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; xps | xps100) basic_machine=xps100-honeywell ;; @@ -1007,6 +1104,9 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1023,13 +1123,10 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) @@ -1102,19 +1199,22 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1126,16 +1226,21 @@ case $os in ;; esac ;; + -nto-qnx*) + ;; -nto*) - os=-nto-qnx + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -1148,6 +1253,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1169,6 +1277,9 @@ case $os in -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1191,6 +1302,9 @@ case $os in -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1221,6 +1335,15 @@ case $os in -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; -none) ;; *) @@ -1252,6 +1375,9 @@ case $basic_machine in arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1295,9 +1421,15 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1430,9 +1562,15 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; @@ -1457,7 +1595,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/configure b/configure index 77b1741c96c..9f11d615a04 100755 --- a/configure +++ b/configure @@ -1,9 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57. +# Generated by GNU Autoconf 2.59. # -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. +# Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## @@ -20,9 +19,10 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi +DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false @@ -41,7 +41,7 @@ for as_var in \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var @@ -218,16 +218,17 @@ rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS @@ -309,7 +310,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO GZIP_PROG LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS GETOPT_H GETOPTOBJS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -668,7 +669,7 @@ done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir + localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in @@ -708,10 +709,10 @@ if test -z "$srcdir"; then # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -803,9 +804,9 @@ _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -855,6 +856,12 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-carbon-app[=DIR] [DIR=/Application] specify install directory for Emacs.app on Mac OS X + --enable-asserts compile code with asserts enabled + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --enable-locallisppath=PATH + directories Emacs should search for lisp files + specific to this site --disable-largefile omit support for large files Optional Packages: @@ -926,12 +933,45 @@ case $srcdir in ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. @@ -942,7 +982,7 @@ ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then + test -f $ac_srcdir/configure.in; then echo $ac_configure --help else @@ -956,8 +996,7 @@ test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -Free Software Foundation, Inc. +Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -969,7 +1008,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1046,19 +1085,19 @@ do 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. + ac_must_keep_next=false # Got value, back to normal. else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. @@ -1092,12 +1131,12 @@ _ASBOX case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } @@ -1126,7 +1165,7 @@ _ASBOX for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi @@ -1145,7 +1184,7 @@ _ASBOX echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 - rm -f core core.* *.core && + rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 @@ -1225,7 +1264,7 @@ fi # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" @@ -1242,13 +1281,13 @@ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. @@ -1485,6 +1524,38 @@ if test "${enable_carbon_app+set}" = set; then carbon_appdir_x=${enableval} fi; +# Check whether --enable-asserts or --disable-asserts was given. +if test "${enable_asserts+set}" = set; then + enableval="$enable_asserts" + USE_XASSERTS=$enableval +else + USE_XASSERTS=no +fi; + +# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi; +if test $USE_MAINTAINER_MODE = yes; then + MAINT= +else + MAINT=# +fi + + +# Check whether --enable-locallisppath or --disable-locallisppath was given. +if test "${enable_locallisppath+set}" = set; then + enableval="$enable_locallisppath" + if test "${enableval}" = "no"; then + locallisppath= +elif test "${enableval}" != "yes"; then + locallisppath=${enableval} +fi +fi; + #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessarily, since pwd can #### give you automounter prefixes, which can go away. We do all this @@ -1524,15 +1595,6 @@ echo "$as_me: WARNING: The directory tree \`${srcdir}' is being used use GNU make. If you do not have GNU make, then you must now do \`make distclean' in ${srcdir}, and then run $0 again." >&2;} - -extrasub='/^VPATH[ ]*=/c\ -vpath %.c $(srcdir)\ -vpath %.h $(srcdir)\ -vpath %.y $(srcdir)\ -vpath %.l $(srcdir)\ -vpath %.s $(srcdir)\ -vpath %.in $(srcdir)\ -vpath %.texi $(srcdir)' fi #### Given the configuration name, set machfile and opsysfile to the @@ -1656,12 +1718,21 @@ case "${canonical}" in case "${canonical}" in alpha*-*-freebsd*) machine=alpha ;; i[3456]86-*-freebsd*) machine=intel386 ;; + amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;; esac ;; ## NetBSD ports *-*-netbsd* ) opsys=netbsd + if test -f /usr/lib/crti.o; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CRTIN +_ACEOF + + fi + case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; i[3456]86-*-netbsd*) machine=intel386 ;; @@ -1694,6 +1765,15 @@ case "${canonical}" in esac ;; + ## LynxOS ports + *-*-lynxos* ) + opsys=lynxos + case "${canonical}" in + i[3456]86-*-lynxos*) machine=intel386 ;; + powerpc-*-lynxos*) machine=powerpc ;; + esac + ;; + ## Acorn RISCiX: arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 @@ -1759,11 +1839,6 @@ case "${canonical}" in machine=arm opsys=gnu-linux ;; - ppc-*-linux | \ - powerpc-*-linux* ) - machine=macppc opsys=gnu-linux - ;; - ## Altos 3068 m68*-altos-sysv* ) machine=altos opsys=usg5-2 @@ -2010,6 +2085,9 @@ case "${canonical}" in hppa*-hp-hpux9* ) machine=hp800 opsys=hpux9 ;; + hppa*-hp-hpux10.2* ) + machine=hp800 opsys=hpux10-20 + ;; hppa*-hp-hpux10* ) machine=hp800 opsys=hpux10 ;; @@ -2055,7 +2133,7 @@ case "${canonical}" in i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;; - s390-*-linux-gnu) + s390-*-linux-gnu* ) machine=ibms390 opsys=gnu-linux ;; rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* ) @@ -2070,7 +2148,7 @@ case "${canonical}" in rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* ) machine=ibmrs6000 opsys=aix4-2 ;; - rs6000-ibm-aix5.1* | powerpc-ibm-aix5.1* ) + rs6000-ibm-aix5* | powerpc-ibm-aix5* ) machine=ibmrs6000 opsys=aix4-2 ;; rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* ) @@ -2494,7 +2572,9 @@ case "${canonical}" in machine=intel386 case "${canonical}" in *-cygwin ) opsys=cygwin ;; - *-lynxos* ) opsys=lynxos ;; + *-darwin* ) opsys=darwin + CPP="${CC-cc} -E -no-cpp-precomp" + ;; *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; *-isc2.2* ) opsys=isc2-2 ;; *-isc4.0* ) opsys=isc4-0 ;; @@ -2515,6 +2595,8 @@ case "${canonical}" in OVERRIDE_CPPFLAGS=" " ;; *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-sysv5uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-sysv5OpenUNIX* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; *-386bsd* ) opsys=386bsd ;; *-nextstep* ) opsys=nextstep ;; ## Otherwise, we'll fall through to the generic opsys code at the bottom. @@ -2547,7 +2629,13 @@ case "${canonical}" in powerpc-apple-darwin* ) machine=powermac opsys=darwin # Define CPP as follows to make autoconf work correctly. - CPP="cc -E -traditional-cpp" + CPP="${CC-cc} -E -no-cpp-precomp" + # Use fink packages if available. + if test -d /sw/include && test -d /sw/lib; then + GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" + CPP="${CPP} ${GCC_TEST_OPTIONS}" + NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} + fi ;; ## AMD x86-64 Linux-based GNU system @@ -2577,6 +2665,8 @@ if test x"${opsys}" = x; then *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;; *-sysv3* | *-sysvr3* ) opsys=usg5-3 ;; *-sysv4.2uw* ) opsys=unixware ;; + *-sysv5uw* ) opsys=unixware ;; + *-sysv5OpenUNIX* ) opsys=unixware ;; *-sysv4.1* | *-sysvr4.1* ) NON_GNU_CPP=/usr/lib/cpp opsys=usg5-4 ;; @@ -2957,7 +3047,6 @@ ac_compiler=`set X $ac_compile; echo $2` (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2977,8 +3066,8 @@ ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -echo "$as_me:$LINENO: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 @@ -2998,23 +3087,23 @@ do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; + ;; conftest.$ac_ext ) - # This is the source file. - ;; + # This is the source file. + ;; [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; + # We found the default executable, but exeext='' is most + # certainly right. + break;; *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; * ) - break;; + break;; esac done else @@ -3088,8 +3177,8 @@ for ac_file in conftest.exe conftest conftest.*; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; + export ac_cv_exeext + break;; * ) break;; esac done @@ -3114,7 +3203,6 @@ if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3165,7 +3253,6 @@ if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3185,11 +3272,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3202,7 +3299,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi @@ -3218,7 +3315,6 @@ if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3235,11 +3331,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3252,7 +3358,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 @@ -3279,7 +3385,6 @@ else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3307,6 +3412,16 @@ static char *f (char * (*g) (char **, int), char **p, ...) va_end (v); return s; } + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std1 is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std1. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; @@ -3333,11 +3448,21 @@ do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3350,7 +3475,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext +rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC @@ -3378,19 +3503,28 @@ cat >conftest.$ac_ext <<_ACEOF _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ - ''\ - '#include ' \ + '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ @@ -3398,14 +3532,13 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include $ac_declaration +#include int main () { @@ -3416,11 +3549,21 @@ exit (42); _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3433,9 +3576,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 continue fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3452,11 +3594,21 @@ exit (42); _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3468,7 +3620,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then @@ -3482,7 +3634,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3522,18 +3674,6 @@ then CC="$CC $NON_GCC_TEST_OPTIONS" fi -#### Some other nice autoconf tests. - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3563,7 +3703,6 @@ do # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3574,7 +3713,7 @@ cat >>conftest.$ac_ext <<_ACEOF #else # include #endif - Syntax error + Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -3586,6 +3725,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -3606,7 +3746,6 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3624,6 +3763,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -3670,7 +3810,6 @@ do # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3681,7 +3820,7 @@ cat >>conftest.$ac_ext <<_ACEOF #else # include #endif - Syntax error + Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -3693,6 +3832,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -3713,7 +3853,6 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3731,6 +3870,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -3769,616 +3909,2339 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then + +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' +echo "$as_me:$LINENO: checking for AIX" >&5 +echo $ECHO_N "checking for AIX... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef _AIX + yes +#endif -if test "x$RANLIB" = x; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +cat >>confdefs.h <<\_ACEOF +#define _ALL_SOURCE 1 +_ACEOF -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi +rm -f conftest* -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi +cat >>confdefs.h <<\_ACEOF +#define _GNU_SOURCE 1 +_ACEOF -fi -# Extract the first word of "install-info", so it can be a program name with args. -set dummy install-info; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_INSTALL_INFO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + +### Use -Wno-pointer-sign if the compiler supports it +echo "$as_me:$LINENO: checking whether gcc understands -Wno-pointer-sign" >&5 +echo $ECHO_N "checking whether gcc understands -Wno-pointer-sign... $ECHO_C" >&6 +SAVE_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Wno-pointer-sign" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + has_option=yes else - case $INSTALL_INFO in - [\\/]* | ?:[\\/]*) - ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - ;; -esac +has_option=no fi -INSTALL_INFO=$ac_cv_path_INSTALL_INFO +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +if test $has_option = yes; then + C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH" +fi +echo "$as_me:$LINENO: result: $has_option" >&5 +echo "${ECHO_T}$has_option" >&6 +CFLAGS="$SAVE_CFLAGS" +unset has_option +unset SAVE_CFLAGS -if test -n "$INSTALL_INFO"; then - echo "$as_me:$LINENO: result: $INSTALL_INFO" >&5 -echo "${ECHO_T}$INSTALL_INFO" >&6 +#### Some other nice autoconf tests. + +echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6 fi -# Extract the first word of "install-info", so it can be a program name with args. -set dummy install-info; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_INSTALL_INFO+set}" = set; then +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $INSTALL_INFO in - [\\/]* | ?:[\\/]*) - ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /usr/sbin + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= fi -done -done +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - ;; -esac + # Broken: fails on valid input. +continue fi -INSTALL_INFO=$ac_cv_path_INSTALL_INFO +rm -f conftest.err conftest.$ac_ext -if test -n "$INSTALL_INFO"; then - echo "$as_me:$LINENO: result: $INSTALL_INFO" >&5 -echo "${ECHO_T}$INSTALL_INFO" >&6 + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + ac_cpp_err=yes fi - -# Extract the first word of "install-info", so it can be a program name with args. -set dummy install-info; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_INSTALL_INFO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue else - case $INSTALL_INFO in - [\\/]* | ?:[\\/]*) - ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /sbin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO=":" - ;; -esac + # Passes both tests. +ac_preproc_ok=: +break fi -INSTALL_INFO=$ac_cv_path_INSTALL_INFO +rm -f conftest.err conftest.$ac_ext -if test -n "$INSTALL_INFO"; then - echo "$as_me:$LINENO: result: $INSTALL_INFO" >&5 -echo "${ECHO_T}$INSTALL_INFO" >&6 +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +if test "x$RANLIB" = x; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +fi +# Extract the first word of "install-info", so it can be a program name with args. +set dummy install-info; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_INSTALL_INFO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $INSTALL_INFO in + [\\/]* | ?:[\\/]*) + ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac +fi +INSTALL_INFO=$ac_cv_path_INSTALL_INFO + +if test -n "$INSTALL_INFO"; then + echo "$as_me:$LINENO: result: $INSTALL_INFO" >&5 +echo "${ECHO_T}$INSTALL_INFO" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "install-info", so it can be a program name with args. +set dummy install-info; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_INSTALL_INFO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $INSTALL_INFO in + [\\/]* | ?:[\\/]*) + ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /usr/sbin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac +fi +INSTALL_INFO=$ac_cv_path_INSTALL_INFO + +if test -n "$INSTALL_INFO"; then + echo "$as_me:$LINENO: result: $INSTALL_INFO" >&5 +echo "${ECHO_T}$INSTALL_INFO" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "install-info", so it can be a program name with args. +set dummy install-info; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_INSTALL_INFO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $INSTALL_INFO in + [\\/]* | ?:[\\/]*) + ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /sbin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO=":" + ;; +esac +fi +INSTALL_INFO=$ac_cv_path_INSTALL_INFO + +if test -n "$INSTALL_INFO"; then + echo "$as_me:$LINENO: result: $INSTALL_INFO" >&5 +echo "${ECHO_T}$INSTALL_INFO" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "gzip", so it can be a program name with args. +set dummy gzip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_GZIP_PROG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GZIP_PROG in + [\\/]* | ?:[\\/]*) + ac_cv_path_GZIP_PROG="$GZIP_PROG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GZIP_PROG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac +fi +GZIP_PROG=$ac_cv_path_GZIP_PROG + +if test -n "$GZIP_PROG"; then + echo "$as_me:$LINENO: result: $GZIP_PROG" >&5 +echo "${ECHO_T}$GZIP_PROG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + + +if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x +then + ac_link="$ac_link $GCC_LINK_TEST_OPTIONS" +fi + +if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x +then + ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS" +fi + + +late_LDFLAGS=$LDFLAGS +if test "$GCC" = yes; then + LDFLAGS="$LDFLAGS -Wl,-znocombreloc" +else + LDFLAGS="$LDFLAGS -znocombreloc" +fi + +echo "$as_me:$LINENO: checking for -znocombreloc" >&5 +echo $ECHO_N "checking for -znocombreloc... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +main(){return 0;} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LDFLAGS=$late_LDFLAGS + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +#### Extract some information from the operating system and machine files. + +{ echo "$as_me:$LINENO: checking the machine- and system-dependent files to find out + - which libraries the lib-src programs will want, and + - whether the GNU malloc routines are usable..." >&5 +echo "$as_me: checking the machine- and system-dependent files to find out + - which libraries the lib-src programs will want, and + - whether the GNU malloc routines are usable..." >&6;} + +### First figure out CFLAGS (which we use for running the compiler here) +### and REAL_CFLAGS (which we use for real compilation). +### The two are the same except on a few systems, where they are made +### different to work around various lossages. For example, +### GCC 2.5 on GNU/Linux needs them to be different because it treats -g +### as implying static linking. + +### If the CFLAGS env var is specified, we use that value +### instead of the default. + +### It's not important that this name contain the PID; you can't run +### two configures in the same directory and have anything work +### anyway. +tempcname="conftest.c" + +echo ' +#include "'${srcdir}'/src/'${opsysfile}'" +#include "'${srcdir}'/src/'${machfile}'" +#ifndef LIBS_MACHINE +#define LIBS_MACHINE +#endif +#ifndef LIBS_SYSTEM +#define LIBS_SYSTEM +#endif +#ifndef C_SWITCH_SYSTEM +#define C_SWITCH_SYSTEM +#endif +#ifndef C_SWITCH_MACHINE +#define C_SWITCH_MACHINE +#endif +configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM +configure___ c_switch_system=C_SWITCH_SYSTEM +configure___ c_switch_machine=C_SWITCH_MACHINE + +#ifndef LIB_X11_LIB +#define LIB_X11_LIB -lX11 +#endif + +#ifndef LIBX11_MACHINE +#define LIBX11_MACHINE +#endif + +#ifndef LIBX11_SYSTEM +#define LIBX11_SYSTEM +#endif +configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM + +#ifdef UNEXEC +configure___ unexec=UNEXEC +#else +configure___ unexec=unexec.o +#endif + +#ifdef SYSTEM_MALLOC +configure___ system_malloc=yes +#else +configure___ system_malloc=no +#endif + +#ifdef USE_MMAP_FOR_BUFFERS +configure___ use_mmap_for_buffers=yes +#else +configure___ use_mmap_for_buffers=no +#endif + +#ifndef C_DEBUG_SWITCH +#define C_DEBUG_SWITCH -g +#endif + +#ifndef C_OPTIMIZE_SWITCH +#ifdef __GNUC__ +#define C_OPTIMIZE_SWITCH -O2 +#else +#define C_OPTIMIZE_SWITCH -O +#endif +#endif + +#ifndef C_WARNINGS_SWITCH +#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH} +#endif + +#ifndef LD_SWITCH_MACHINE +#define LD_SWITCH_MACHINE +#endif + +#ifndef LD_SWITCH_SYSTEM +#define LD_SWITCH_SYSTEM +#endif + +#ifndef LD_SWITCH_X_SITE_AUX +#define LD_SWITCH_X_SITE_AUX +#endif + +configure___ ld_switch_system=LD_SWITCH_SYSTEM +configure___ ld_switch_machine=LD_SWITCH_MACHINE + +#ifdef THIS_IS_CONFIGURE + +/* Get the CFLAGS for tests in configure. */ +#ifdef __GNUC__ +configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' +#else +configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' +#endif + +#else /* not THIS_IS_CONFIGURE */ + +/* Get the CFLAGS for real compilation. */ +#ifdef __GNUC__ +configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH '${SPECIFIED_CFLAGS}' +#else +configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' +#endif + +#endif /* not THIS_IS_CONFIGURE */ +' > ${tempcname} + +# The value of CPP is a quoted variable reference, so we need to do this +# to get its actual value... +CPP=`eval "echo $CPP"` +eval `${CPP} -Isrc ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +if test "x$SPECIFIED_CFLAGS" = x; then + eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +else + REAL_CFLAGS="$CFLAGS" +fi +rm ${tempcname} + +ac_link="$ac_link $ld_switch_machine $ld_switch_system" + +### Make sure subsequent tests use flags consistent with the build flags. + +if test x"${OVERRIDE_CPPFLAGS}" != x; then + CPPFLAGS="${OVERRIDE_CPPFLAGS}" +else + CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" +fi + + + +# Check whether --enable-largefile or --disable-largefile was given. +if test "${enable_largefile+set}" = set; then + enableval="$enable_largefile" + +fi; +if test "$enable_largefile" != no; then + + echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 +if test "${ac_cv_sys_largefile_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_CC=' -n32'; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 +if test "${ac_cv_sys_file_offset_bits+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + ac_cv_sys_file_offset_bits=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_file_offset_bits=64; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + break +done +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 +if test "$ac_cv_sys_file_offset_bits" != no; then + +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF + +fi +rm -f conftest* + echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 +if test "${ac_cv_sys_large_files+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + ac_cv_sys_large_files=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_large_files=1; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + break +done +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +echo "${ECHO_T}$ac_cv_sys_large_files" >&6 +if test "$ac_cv_sys_large_files" != no; then + +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF + +fi +rm -f conftest* +fi + + +if test "${with_sound}" != "no"; then + # Sound support for GNU/Linux and the free BSDs. + echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + +for ac_header in machine/soundcard.h sys/soundcard.h soundcard.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + # Emulation library used on NetBSD. + echo "$as_me:$LINENO: checking for _oss_ioctl in -lossaudio" >&5 +echo $ECHO_N "checking for _oss_ioctl in -lossaudio... $ECHO_C" >&6 +if test "${ac_cv_lib_ossaudio__oss_ioctl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lossaudio $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char _oss_ioctl (); +int +main () +{ +_oss_ioctl (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_ossaudio__oss_ioctl=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ossaudio__oss_ioctl=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_ossaudio__oss_ioctl" >&5 +echo "${ECHO_T}$ac_cv_lib_ossaudio__oss_ioctl" >&6 +if test $ac_cv_lib_ossaudio__oss_ioctl = yes; then + LIBSOUND=-lossaudio +else + LIBSOUND= +fi + + +fi + + + + + + + + + + + + + + + + + + + + + + + + + + +for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ + linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ + termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ + sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ + sys/utsname.h pwd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +echo "$as_me:$LINENO: checking if personality LINUX32 can be set" >&5 +echo $ECHO_N "checking if personality LINUX32 can be set... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +personality (PER_LINUX32) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + emacs_cv_personality_linux32=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +emacs_cv_personality_linux32=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $emacs_cv_personality_linux32" >&5 +echo "${ECHO_T}$emacs_cv_personality_linux32" >&6 + +if test $emacs_cv_personality_linux32 = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PERSONALITY_LINUX32 1 +_ACEOF + +fi + + +for ac_header in term.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes fi +if test -z "$ac_cpp_err"; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - - -if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x -then - ac_link="$ac_link $GCC_LINK_TEST_OPTIONS" + eval "$as_ac_Header=no" fi - -if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x -then - ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS" +rm -f conftest.err conftest.$ac_ext fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF +fi +done -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_header_stdc=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: checking for AIX" >&5 -echo $ECHO_N "checking for AIX... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef _AIX - yes -#endif +#include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -cat >>confdefs.h <<\_ACEOF -#define _ALL_SOURCE 1 -_ACEOF - + $EGREP "memchr" >/dev/null 2>&1; then + : else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + ac_cv_header_stdc=no fi rm -f conftest* +fi +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include -#### Extract some information from the operating system and machine files. - -{ echo "$as_me:$LINENO: checking the machine- and system-dependent files to find out - - which libraries the lib-src programs will want, and - - whether the GNU malloc routines are usable..." >&5 -echo "$as_me: checking the machine- and system-dependent files to find out - - which libraries the lib-src programs will want, and - - whether the GNU malloc routines are usable..." >&6;} - -### First figure out CFLAGS (which we use for running the compiler here) -### and REAL_CFLAGS (which we use for real compilation). -### The two are the same except on a few systems, where they are made -### different to work around various lossages. For example, -### GCC 2.5 on GNU/Linux needs them to be different because it treats -g -### as implying static linking. - -### If the CFLAGS env var is specified, we use that value -### instead of the default. - -### It's not important that this name contain the PID; you can't run -### two configures in the same directory and have anything work -### anyway. -tempcname="conftest.c" - -echo ' -#include "'${srcdir}'/src/'${opsysfile}'" -#include "'${srcdir}'/src/'${machfile}'" -#ifndef LIBS_MACHINE -#define LIBS_MACHINE -#endif -#ifndef LIBS_SYSTEM -#define LIBS_SYSTEM -#endif -#ifndef C_SWITCH_SYSTEM -#define C_SWITCH_SYSTEM -#endif -#ifndef C_SWITCH_MACHINE -#define C_SWITCH_MACHINE -#endif -configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM -configure___ c_switch_system=C_SWITCH_SYSTEM -configure___ c_switch_machine=C_SWITCH_MACHINE - -#ifndef LIB_X11_LIB -#define LIB_X11_LIB -lX11 -#endif - -#ifndef LIBX11_MACHINE -#define LIBX11_MACHINE -#endif - -#ifndef LIBX11_SYSTEM -#define LIBX11_SYSTEM -#endif -configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM - -#ifdef UNEXEC -configure___ unexec=UNEXEC -#else -configure___ unexec=unexec.o -#endif - -#ifdef SYSTEM_MALLOC -configure___ system_malloc=yes -#else -configure___ system_malloc=no -#endif - -#ifdef USE_MMAP_FOR_BUFFERS -configure___ use_mmap_for_buffers=yes -#else -configure___ use_mmap_for_buffers=no -#endif - -#ifndef C_DEBUG_SWITCH -#define C_DEBUG_SWITCH -g -#endif - -#ifndef C_OPTIMIZE_SWITCH -#ifdef __GNUC__ -#define C_OPTIMIZE_SWITCH -O2 -#else -#define C_OPTIMIZE_SWITCH -O -#endif -#endif - -#ifndef LD_SWITCH_MACHINE -#define LD_SWITCH_MACHINE -#endif - -#ifndef LD_SWITCH_SYSTEM -#define LD_SWITCH_SYSTEM -#endif - -#ifndef LD_SWITCH_X_SITE_AUX -#define LD_SWITCH_X_SITE_AUX -#endif - -configure___ ld_switch_system=LD_SWITCH_SYSTEM -configure___ ld_switch_machine=LD_SWITCH_MACHINE - -#ifdef THIS_IS_CONFIGURE - -/* Get the CFLAGS for tests in configure. */ -#ifdef __GNUC__ -configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' -#else -configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' -#endif - -#else /* not THIS_IS_CONFIGURE */ - -/* Get the CFLAGS for real compilation. */ -#ifdef __GNUC__ -configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' -#else -configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' -#endif - -#endif /* not THIS_IS_CONFIGURE */ -' > ${tempcname} - -# The value of CPP is a quoted variable reference, so we need to do this -# to get its actual value... -CPP=`eval "echo $CPP"` -eval `${CPP} -Isrc ${tempcname} \ - | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` -if test "x$SPECIFIED_CFLAGS" = x; then - eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ - | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : else - REAL_CFLAGS="$CFLAGS" + ac_cv_header_stdc=no fi -rm ${tempcname} - -ac_link="$ac_link $ld_switch_machine $ld_switch_system" - -### Make sure subsequent tests use flags consistent with the build flags. +rm -f conftest* -if test x"${OVERRIDE_CPPFLAGS}" != x; then - CPPFLAGS="${OVERRIDE_CPPFLAGS}" -else - CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" fi +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF -#define _GNU_SOURCE 1 +#define STDC_HEADERS 1 _ACEOF +fi - -# Check whether --enable-largefile or --disable-largefile was given. -if test "${enable_largefile+set}" = set; then - enableval="$enable_largefile" - -fi; -if test "$enable_largefile" != no; then - - echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 -echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_CC+set}" = set; then +echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 +if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; +#include +#include + int main () { - +if ((struct tm *) 0) +return 0; ; return 0; } _ACEOF - rm -f conftest.$ac_objext +rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - break + ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_header_time=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6 +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + fi + +echo "$as_me:$LINENO: checking whether sys_siglist is declared" >&5 +echo $ECHO_N "checking whether sys_siglist is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_sys_siglist+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef sys_siglist + char *p = (char *) sys_siglist; +#endif + + ; + return 0; +} +_ACEOF rm -f conftest.$ac_objext - CC="$CC -n32" - rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_sys_largefile_CC=' -n32'; break + ac_cv_have_decl_sys_siglist=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_have_decl_sys_siglist=no fi -rm -f conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5 +echo "${ECHO_T}$ac_cv_have_decl_sys_siglist" >&6 +if test $ac_cv_have_decl_sys_siglist = yes; then - echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_file_offset_bits+set}" = set; then +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SYS_SIGLIST 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SYS_SIGLIST 0 +_ACEOF + + +fi + + +if test $ac_cv_have_decl_sys_siglist != yes; then + # For Tru64, at least: + echo "$as_me:$LINENO: checking whether __sys_siglist is declared" >&5 +echo $ECHO_N "checking whether __sys_siglist is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl___sys_siglist+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - while :; do - ac_cv_sys_file_offset_bits=no cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; +$ac_includes_default int main () { +#ifndef __sys_siglist + char *p = (char *) __sys_siglist; +#endif ; return 0; @@ -4386,419 +6249,472 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - break + ac_cv_have_decl___sys_siglist=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_have_decl___sys_siglist=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl___sys_siglist" >&5 +echo "${ECHO_T}$ac_cv_have_decl___sys_siglist" >&6 +if test $ac_cv_have_decl___sys_siglist = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL___SYS_SIGLIST 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL___SYS_SIGLIST 0 +_ACEOF + + +fi + + + if test $ac_cv_have_decl___sys_siglist = yes; then + +cat >>confdefs.h <<\_ACEOF +#define sys_siglist __sys_siglist +_ACEOF + + fi fi -rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6 +if test "${ac_cv_header_sys_wait_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 #include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; +#include +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif + int main () { - + int s; + wait (&s); + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_sys_file_offset_bits=64; break + ac_cv_header_sys_wait_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_header_sys_wait_h=no fi -rm -f conftest.$ac_objext conftest.$ac_ext - break -done +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 -echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 -if test "$ac_cv_sys_file_offset_bits" != no; then +echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 +if test $ac_cv_header_sys_wait_h = yes; then -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +cat >>confdefs.h <<\_ACEOF +#define HAVE_SYS_WAIT_H 1 _ACEOF fi -rm -f conftest* - echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 -echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_large_files+set}" = set; then + + +echo "$as_me:$LINENO: checking for struct utimbuf" >&5 +echo $ECHO_N "checking for struct utimbuf... $ECHO_C" >&6 +if test "${emacs_cv_struct_utimbuf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - while :; do - ac_cv_sys_large_files=no cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; +#ifdef TIME_WITH_SYS_TIME +#include +#include +#else +#ifdef HAVE_SYS_TIME_H +#include +#else +#include +#endif +#endif +#ifdef HAVE_UTIME_H +#include +#endif int main () { - +static struct utimbuf x; x.actime = x.modtime; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - break + emacs_cv_struct_utimbuf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +emacs_cv_struct_utimbuf=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $emacs_cv_struct_utimbuf" >&5 +echo "${ECHO_T}$emacs_cv_struct_utimbuf" >&6 +if test $emacs_cv_struct_utimbuf = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRUCT_UTIMBUF 1 +_ACEOF + fi -rm -f conftest.$ac_objext conftest.$ac_ext + +echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 +if test "${ac_cv_type_signal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#define _LARGE_FILES 1 #include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; +#include +#ifdef signal +# undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + int main () { - +int i; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_sys_large_files=1; break + ac_cv_type_signal=void else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_type_signal=int fi -rm -f conftest.$ac_objext conftest.$ac_ext - break -done +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 -echo "${ECHO_T}$ac_cv_sys_large_files" >&6 -if test "$ac_cv_sys_large_files" != no; then +echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +echo "${ECHO_T}$ac_cv_type_signal" >&6 cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files +#define RETSIGTYPE $ac_cv_type_signal _ACEOF -fi -rm -f conftest* -fi -if test "${with_sound}" != "no"; then - # Sound support for GNU/Linux and the free BSDs. - echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then +echo "$as_me:$LINENO: checking for speed_t" >&5 +echo $ECHO_N "checking for speed_t... $ECHO_C" >&6 +if test "${emacs_cv_speed_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -#include -#include - +#include int main () { - +speed_t x = 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_header_stdc=yes + emacs_cv_speed_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_stdc=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no +emacs_cv_speed_t=no fi -rm -f conftest* - +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi +echo "$as_me:$LINENO: result: $emacs_cv_speed_t" >&5 +echo "${ECHO_T}$emacs_cv_speed_t" >&6 +if test $emacs_cv_speed_t = yes; then -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - +cat >>confdefs.h <<\_ACEOF +#define HAVE_SPEED_T 1 _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : +echo "$as_me:$LINENO: checking for struct timeval" >&5 +echo $ECHO_N "checking for struct timeval... $ECHO_C" >&6 +if test "${emacs_cv_struct_timeval+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#ifdef TIME_WITH_SYS_TIME +#include +#include #else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#ifdef HAVE_SYS_TIME_H +#include +#else +#include +#endif #endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); +static struct timeval x; x.tv_sec = x.tv_usec; + ; + return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - : + emacs_cv_struct_timeval=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi +emacs_cv_struct_timeval=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then +echo "$as_me:$LINENO: result: $emacs_cv_struct_timeval" >&5 +echo "${ECHO_T}$emacs_cv_struct_timeval" >&6 +HAVE_TIMEVAL=$emacs_cv_struct_timeval +if test $emacs_cv_struct_timeval = yes; then cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 +#define HAVE_TIMEVAL 1 _ACEOF fi -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +echo "$as_me:$LINENO: checking for struct exception" >&5 +echo $ECHO_N "checking for struct exception... $ECHO_C" >&6 +if test "${emacs_cv_struct_exception+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> +#include +int +main () +{ +static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1; + ; + return 0; +} _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" + emacs_cv_struct_exception=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_Header=no" +emacs_cv_struct_exception=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +echo "$as_me:$LINENO: result: $emacs_cv_struct_exception" >&5 +echo "${ECHO_T}$emacs_cv_struct_exception" >&6 +HAVE_EXCEPTION=$emacs_cv_struct_exception +if test $emacs_cv_struct_exception != yes; then + +cat >>confdefs.h <<\_ACEOF +#define NO_MATHERR 1 _ACEOF fi -done - - - - -for ac_header in machine/soundcard.h sys/soundcard.h soundcard.h +for ac_header in sys/socket.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -4814,7 +6730,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -4825,11 +6740,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4842,7 +6767,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -4850,7 +6775,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -4868,6 +6792,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -4887,33 +6812,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -4924,7 +6848,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -4939,471 +6863,582 @@ fi done - # Emulation library used on NetBSD. - echo "$as_me:$LINENO: checking for _oss_ioctl in -lossaudio" >&5 -echo $ECHO_N "checking for _oss_ioctl in -lossaudio... $ECHO_C" >&6 -if test "${ac_cv_lib_ossaudio__oss_ioctl+set}" = set; then + +for ac_header in net/if.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lossaudio $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _oss_ioctl (); -int -main () -{ -_oss_ioctl (); - ; - return 0; -} + +#include <$ac_header> _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_ossaudio__oss_ioctl=yes + eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_ossaudio__oss_ioctl=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +eval "$as_ac_Header=no" fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ossaudio__oss_ioctl" >&5 -echo "${ECHO_T}$ac_cv_lib_ossaudio__oss_ioctl" >&6 -if test $ac_cv_lib_ossaudio__oss_ioctl = yes; then - LIBSOUND=-lossaudio -else - LIBSOUND= +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi - +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF fi +done +echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +struct tm *tp; tp->tm_sec; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_struct_tm=time.h +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_struct_tm=sys/time.h +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6 +if test $ac_cv_struct_tm = sys/time.h; then +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF +fi - - - - - - - - - - - - - - - -for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ - linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ - termcap.h stdio_ext.h fcntl.h term.h strings.h coff.h pty.h sys/mman.h \ - sys/param.h sys/vlimit.h sys/resource.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 +echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6 +if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (ac_aggr.tm_zone) +return 0; + ; + return 0; +} _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_header_compiler=yes + ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <$ac_header> +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (sizeof ac_aggr.tm_zone) +return 0; + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no +ac_cv_member_struct_tm_tm_zone=no fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 +echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 +if test $ac_cv_member_struct_tm_tm_zone = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TM_TM_ZONE 1 _ACEOF + fi -done +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then +cat >>confdefs.h <<\_ACEOF +#define HAVE_TM_ZONE 1 +_ACEOF -for ac_header in term.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +else + echo "$as_me:$LINENO: checking for tzname" >&5 +echo $ECHO_N "checking for tzname... $ECHO_C" >&6 +if test "${ac_cv_var_tzname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <$ac_header> +#include +#ifndef tzname /* For SGI. */ +extern char *tzname[]; /* RS6000 and others reject char **tzname. */ +#endif + +int +main () +{ +atoi(*tzname); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_var_tzname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_Header=no" +ac_cv_var_tzname=no fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 +echo "${ECHO_T}$ac_cv_var_tzname" >&6 + if test $ac_cv_var_tzname = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TZNAME 1 _ACEOF + fi fi -done - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then +echo "$as_me:$LINENO: checking for struct tm.tm_gmtoff" >&5 +echo $ECHO_N "checking for struct tm.tm_gmtoff... $ECHO_C" >&6 +if test "${ac_cv_member_struct_tm_tm_gmtoff+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -#include -#include +#include int main () { - +static struct tm ac_aggr; +if (ac_aggr.tm_gmtoff) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_header_stdc=yes + ac_cv_member_struct_tm_tm_gmtoff=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_stdc=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include +int +main () +{ +static struct tm ac_aggr; +if (sizeof ac_aggr.tm_gmtoff) +return 0; + ; + return 0; +} _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_tm_tm_gmtoff=yes else - ac_cv_header_stdc=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_tm_tm_gmtoff=no fi -rm -f conftest* +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_gmtoff" >&5 +echo "${ECHO_T}$ac_cv_member_struct_tm_tm_gmtoff" >&6 +if test $ac_cv_member_struct_tm_tm_gmtoff = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TM_GMTOFF 1 +_ACEOF fi -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +echo "$as_me:$LINENO: checking for struct ifreq.ifr_flags" >&5 +echo $ECHO_N "checking for struct ifreq.ifr_flags... $ECHO_C" >&6 +if test "${ac_cv_member_struct_ifreq_ifr_flags+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include +#endif +int +main () +{ +static struct ifreq ac_aggr; +if (ac_aggr.ifr_flags) +return 0; + ; + return 0; +} _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_ifreq_ifr_flags=yes else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include #endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); +static struct ifreq ac_aggr; +if (sizeof ac_aggr.ifr_flags) +return 0; + ; + return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - : + ac_cv_member_struct_ifreq_ifr_flags=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +ac_cv_member_struct_ifreq_ifr_flags=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then +echo "$as_me:$LINENO: result: $ac_cv_member_struct_ifreq_ifr_flags" >&5 +echo "${ECHO_T}$ac_cv_member_struct_ifreq_ifr_flags" >&6 +if test $ac_cv_member_struct_ifreq_ifr_flags = yes; then -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFREQ_IFR_FLAGS 1 _ACEOF -fi -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then +fi +echo "$as_me:$LINENO: checking for struct ifreq.ifr_hwaddr" >&5 +echo $ECHO_N "checking for struct ifreq.ifr_hwaddr... $ECHO_C" >&6 +if test "${ac_cv_member_struct_ifreq_ifr_hwaddr+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -#include +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include +#endif int main () { -if ((struct tm *) 0) +static struct ifreq ac_aggr; +if (ac_aggr.ifr_hwaddr) return 0; ; return 0; @@ -5411,1490 +7446,1750 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_header_time=yes + ac_cv_member_struct_ifreq_ifr_hwaddr=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_time=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -#define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether sys_siglist is declared" >&5 -echo $ECHO_N "checking whether sys_siglist is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include +#endif + int main () { -#ifndef sys_siglist - char *p = (char *) sys_siglist; -#endif - +static struct ifreq ac_aggr; +if (sizeof ac_aggr.ifr_hwaddr) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl_sys_siglist=yes + ac_cv_member_struct_ifreq_ifr_hwaddr=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_sys_siglist=no +ac_cv_member_struct_ifreq_ifr_hwaddr=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5 -echo "${ECHO_T}$ac_cv_have_decl_sys_siglist" >&6 -if test $ac_cv_have_decl_sys_siglist = yes; then +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_ifreq_ifr_hwaddr" >&5 +echo "${ECHO_T}$ac_cv_member_struct_ifreq_ifr_hwaddr" >&6 +if test $ac_cv_member_struct_ifreq_ifr_hwaddr = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SYS_SIGLIST 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SYS_SIGLIST 0 +#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1 _ACEOF fi - - -if test $ac_cv_have_decl_sys_siglist != yes; then - # For Tru64, at least: - echo "$as_me:$LINENO: checking whether __sys_siglist is declared" >&5 -echo $ECHO_N "checking whether __sys_siglist is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl___sys_siglist+set}" = set; then +echo "$as_me:$LINENO: checking for struct ifreq.ifr_netmask" >&5 +echo $ECHO_N "checking for struct ifreq.ifr_netmask... $ECHO_C" >&6 +if test "${ac_cv_member_struct_ifreq_ifr_netmask+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include +#endif + int main () { -#ifndef __sys_siglist - char *p = (char *) __sys_siglist; -#endif - +static struct ifreq ac_aggr; +if (ac_aggr.ifr_netmask) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl___sys_siglist=yes + ac_cv_member_struct_ifreq_ifr_netmask=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl___sys_siglist=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl___sys_siglist" >&5 -echo "${ECHO_T}$ac_cv_have_decl___sys_siglist" >&6 -if test $ac_cv_have_decl___sys_siglist = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL___SYS_SIGLIST 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL___SYS_SIGLIST 0 -_ACEOF - - -fi - - - if test $ac_cv_have_decl___sys_siglist = yes; then - -cat >>confdefs.h <<\_ACEOF -#define sys_siglist __sys_siglist -_ACEOF - - fi -fi -echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 -echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6 -if test "${ac_cv_header_sys_wait_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include #endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#if HAVE_NET_IF_H +#include #endif int main () { - int s; - wait (&s); - s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; +static struct ifreq ac_aggr; +if (sizeof ac_aggr.ifr_netmask) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_header_sys_wait_h=yes + ac_cv_member_struct_ifreq_ifr_netmask=yes else echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_sys_wait_h=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 -if test $ac_cv_header_sys_wait_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SYS_WAIT_H 1 -_ACEOF +sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_member_struct_ifreq_ifr_netmask=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_ifreq_ifr_netmask" >&5 +echo "${ECHO_T}$ac_cv_member_struct_ifreq_ifr_netmask" >&6 +if test $ac_cv_member_struct_ifreq_ifr_netmask = yes; then +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFREQ_IFR_NETMASK 1 +_ACEOF -echo "$as_me:$LINENO: checking for struct utimbuf" >&5 -echo $ECHO_N "checking for struct utimbuf... $ECHO_C" >&6 -if test "${emacs_cv_struct_utimbuf+set}" = set; then + +fi +echo "$as_me:$LINENO: checking for struct ifreq.ifr_broadaddr" >&5 +echo $ECHO_N "checking for struct ifreq.ifr_broadaddr... $ECHO_C" >&6 +if test "${ac_cv_member_struct_ifreq_ifr_broadaddr+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef TIME_WITH_SYS_TIME -#include -#include -#else -#ifdef HAVE_SYS_TIME_H -#include -#else -#include -#endif +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include #endif -#ifdef HAVE_UTIME_H -#include +#if HAVE_NET_IF_H +#include #endif + int main () { -static struct utimbuf x; x.actime = x.modtime; +static struct ifreq ac_aggr; +if (ac_aggr.ifr_broadaddr) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_struct_utimbuf=yes + ac_cv_member_struct_ifreq_ifr_broadaddr=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_struct_utimbuf=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $emacs_cv_struct_utimbuf" >&5 -echo "${ECHO_T}$emacs_cv_struct_utimbuf" >&6 -if test $emacs_cv_struct_utimbuf = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_UTIMBUF 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -#ifdef signal -# undef signal +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include #endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); +#if HAVE_NET_IF_H +#include #endif int main () { -int i; +static struct ifreq ac_aggr; +if (sizeof ac_aggr.ifr_broadaddr) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_type_signal=void + ac_cv_member_struct_ifreq_ifr_broadaddr=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_signal=int +ac_cv_member_struct_ifreq_ifr_broadaddr=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_ifreq_ifr_broadaddr" >&5 +echo "${ECHO_T}$ac_cv_member_struct_ifreq_ifr_broadaddr" >&6 +if test $ac_cv_member_struct_ifreq_ifr_broadaddr = yes; then cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal +#define HAVE_STRUCT_IFREQ_IFR_BROADADDR 1 _ACEOF - -echo "$as_me:$LINENO: checking for speed_t" >&5 -echo $ECHO_N "checking for speed_t... $ECHO_C" >&6 -if test "${emacs_cv_speed_t+set}" = set; then +fi +echo "$as_me:$LINENO: checking for struct ifreq.ifr_addr" >&5 +echo $ECHO_N "checking for struct ifreq.ifr_addr... $ECHO_C" >&6 +if test "${ac_cv_member_struct_ifreq_ifr_addr+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include +#endif + int main () { -speed_t x = 1; +static struct ifreq ac_aggr; +if (ac_aggr.ifr_addr) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_speed_t=yes + ac_cv_member_struct_ifreq_ifr_addr=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_speed_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $emacs_cv_speed_t" >&5 -echo "${ECHO_T}$emacs_cv_speed_t" >&6 -if test $emacs_cv_speed_t = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SPEED_T 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for struct timeval" >&5 -echo $ECHO_N "checking for struct timeval... $ECHO_C" >&6 -if test "${emacs_cv_struct_timeval+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef TIME_WITH_SYS_TIME -#include -#include -#else -#ifdef HAVE_SYS_TIME_H -#include -#else -#include +$ac_includes_default +#if HAVE_SYS_SOCKET_H +#include #endif +#if HAVE_NET_IF_H +#include #endif + int main () { -static struct timeval x; x.tv_sec = x.tv_usec; +static struct ifreq ac_aggr; +if (sizeof ac_aggr.ifr_addr) +return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_struct_timeval=yes + ac_cv_member_struct_ifreq_ifr_addr=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_struct_timeval=no +ac_cv_member_struct_ifreq_ifr_addr=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $emacs_cv_struct_timeval" >&5 -echo "${ECHO_T}$emacs_cv_struct_timeval" >&6 -HAVE_TIMEVAL=$emacs_cv_struct_timeval -if test $emacs_cv_struct_timeval = yes; then +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_ifreq_ifr_addr" >&5 +echo "${ECHO_T}$ac_cv_member_struct_ifreq_ifr_addr" >&6 +if test $ac_cv_member_struct_ifreq_ifr_addr = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFREQ_IFR_ADDR 1 +_ACEOF + + +fi + + + +echo "$as_me:$LINENO: checking for function prototypes" >&5 +echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 +if test "$ac_cv_prog_cc_stdc" != no; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF -#define HAVE_TIMEVAL 1 +#define PROTOTYPES 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define __PROTOTYPES 1 _ACEOF +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -echo "$as_me:$LINENO: checking for struct exception" >&5 -echo $ECHO_N "checking for struct exception... $ECHO_C" >&6 -if test "${emacs_cv_struct_exception+set}" = set; then +echo "$as_me:$LINENO: checking for working volatile" >&5 +echo $ECHO_N "checking for working volatile... $ECHO_C" >&6 +if test "${ac_cv_c_volatile+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include + int main () { -static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1; + +volatile int x; +int * volatile y; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_struct_exception=yes + ac_cv_c_volatile=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_struct_exception=no +ac_cv_c_volatile=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $emacs_cv_struct_exception" >&5 -echo "${ECHO_T}$emacs_cv_struct_exception" >&6 -HAVE_EXCEPTION=$emacs_cv_struct_exception -if test $emacs_cv_struct_exception != yes; then +echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 +echo "${ECHO_T}$ac_cv_c_volatile" >&6 +if test $ac_cv_c_volatile = no; then cat >>confdefs.h <<\_ACEOF -#define NO_MATHERR 1 +#define volatile _ACEOF fi -echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 -echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 -if test "${ac_cv_struct_tm+set}" = set; then +echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 +if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -int -main () -{ -struct tm *tp; tp->tm_sec; +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset x; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *ccp; + char **p; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + ccp = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++ccp; + p = (char**) ccp; + ccp = (char const *const *) p; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + } +#endif + ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_struct_tm=time.h + ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_struct_tm=sys/time.h +ac_cv_c_const=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 -echo "${ECHO_T}$ac_cv_struct_tm" >&6 -if test $ac_cv_struct_tm = sys/time.h; then +echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6 +if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF -#define TM_IN_SYS_TIME 1 +#define const _ACEOF fi -echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 -echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6 -if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then +echo "$as_me:$LINENO: checking for void * support" >&5 +echo $ECHO_N "checking for void * support... $ECHO_C" >&6 +if test "${emacs_cv_void_star+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include <$ac_cv_struct_tm> - int main () { -static struct tm ac_aggr; -if (ac_aggr.tm_zone) -return 0; +void * foo; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_zone=yes + emacs_cv_void_star=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ +emacs_cv_void_star=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $emacs_cv_void_star" >&5 +echo "${ECHO_T}$emacs_cv_void_star" >&6 +if test $emacs_cv_void_star = yes; then + cat >>confdefs.h <<\_ACEOF +#define POINTER_TYPE void _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include <$ac_cv_struct_tm> +else + cat >>confdefs.h <<\_ACEOF +#define POINTER_TYPE char +_ACEOF -int -main () -{ -static struct tm ac_aggr; -if (sizeof ac_aggr.tm_zone) -return 0; - ; - return 0; -} +fi + + + + + +echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +all: + @echo 'ac_maketemp="$(MAKE)"' _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_zone=yes +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftest.make +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + SET_MAKE= +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" +fi -ac_cv_member_struct_tm_tm_zone=no + +echo "$as_me:$LINENO: checking for long file names" >&5 +echo $ECHO_N "checking for long file names... $ECHO_C" >&6 +if test "${ac_cv_sys_long_file_names+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_long_file_names=yes +# Test for long file names in all the places we know might matter: +# . the current directory, where building will happen +# $prefix/lib where we will be installing things +# $exec_prefix/lib likewise +# eval it to expand exec_prefix. +# $TMPDIR if set, where it might want to write temporary files +# if $TMPDIR is not set: +# /tmp where it might want to write temporary files +# /var/tmp likewise +# /usr/tmp likewise +if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then + ac_tmpdirs=$TMPDIR +else + ac_tmpdirs='/tmp /var/tmp /usr/tmp' fi -rm -f conftest.$ac_objext conftest.$ac_ext +for ac_dir in . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do + test -d $ac_dir || continue + test -w $ac_dir || continue # It is less confusing to not echo anything here. + ac_xdir=$ac_dir/cf$$ + (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue + ac_tf1=$ac_xdir/conftest9012345 + ac_tf2=$ac_xdir/conftest9012346 + (echo 1 >$ac_tf1) 2>/dev/null + (echo 2 >$ac_tf2) 2>/dev/null + ac_val=`cat $ac_tf1 2>/dev/null` + if test ! -f $ac_tf1 || test "$ac_val" != 1; then + ac_cv_sys_long_file_names=no + rm -rf $ac_xdir 2>/dev/null + break + fi + rm -rf $ac_xdir 2>/dev/null +done fi -rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_cv_sys_long_file_names" >&5 +echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6 +if test $ac_cv_sys_long_file_names = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LONG_FILE_NAMES 1 +_ACEOF + fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 -if test $ac_cv_member_struct_tm_tm_zone = yes; then -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 + +#### Choose a window system. + +echo "$as_me:$LINENO: checking for X" >&5 +echo $ECHO_N "checking for X... $ECHO_C" >&6 + + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + +fi; +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else + if test "${ac_cv_have_x+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -fr conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat >Imakefile <<'_ACEOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' _ACEOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -fr conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include +/usr/local/include/X11 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 -fi +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include -cat >>confdefs.h <<\_ACEOF -#define HAVE_TM_ZONE 1 -_ACEOF +/usr/openwin/include +/usr/openwin/share/include' -else - echo "$as_me:$LINENO: checking for tzname" >&5 -echo $ECHO_N "checking for tzname... $ECHO_C" >&6 -if test "${ac_cv_var_tzname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Intrinsic.h. + # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#ifndef tzname /* For SGI. */ -extern char *tzname[]; /* RS6000 and others reject char **tzname. */ -#endif - -int -main () -{ -atoi(*tzname); - ; - return 0; -} +#include _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_var_tzname=yes + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # We can compile using X headers with no special include directory. +ac_x_includes= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_var_tzname=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 -echo "${ECHO_T}$ac_cv_var_tzname" >&6 - if test $ac_cv_var_tzname = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_TZNAME 1 -_ACEOF - + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Intrinsic.h"; then + ac_x_includes=$ac_dir + break fi +done fi +rm -f conftest.err conftest.$ac_ext +fi # $ac_x_includes = no -echo "$as_me:$LINENO: checking for struct tm.tm_gmtoff" >&5 -echo $ECHO_N "checking for struct tm.tm_gmtoff... $ECHO_C" >&6 -if test "${ac_cv_member_struct_tm_tm_gmtoff+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lXt $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - +#include int main () { -static struct tm ac_aggr; -if (ac_aggr.tm_gmtoff) -return 0; +XtMalloc (0) ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_gmtoff=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -int -main () -{ -static struct tm ac_aggr; -if (sizeof ac_aggr.tm_gmtoff) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_gmtoff=yes + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_struct_tm_tm_gmtoff=no +LIBS=$ac_save_LIBS +for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl; do + if test -r $ac_dir/libXt.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi -rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_gmtoff" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_gmtoff" >&6 -if test $ac_cv_member_struct_tm_tm_gmtoff = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_TM_GMTOFF 1 -_ACEOF + fi + eval "$ac_cv_have_x" +fi # $with_x != no +if test "$have_x" != yes; then + echo "$as_me:$LINENO: result: $have_x" >&5 +echo "${ECHO_T}$have_x" >&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 +echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 fi +if test "$no_x" = yes; then + window_system=none +else + window_system=x11 +fi +if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then + LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` + LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"` + x_default_search_path="" + for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do + x_search_path="\ +${x_library}/X11/%L/%T/%N%C%S:\ +${x_library}/X11/%l/%T/%N%C%S:\ +${x_library}/X11/%T/%N%C%S:\ +${x_library}/X11/%L/%T/%N%S:\ +${x_library}/X11/%l/%T/%N%S:\ +${x_library}/X11/%T/%N%S" + if test x"${x_default_search_path}" = x; then + x_default_search_path=${x_search_path} + else + x_default_search_path="${x_search_path}:${x_default_search_path}" + fi + done +fi +if test "${x_includes}" != NONE && test -n "${x_includes}"; then + C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"` +fi -echo "$as_me:$LINENO: checking for function prototypes" >&5 -echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 -if test "$ac_cv_prog_cc_stdc" != no; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -cat >>confdefs.h <<\_ACEOF -#define PROTOTYPES 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define __PROTOTYPES 1 -_ACEOF - +if test x"${x_includes}" = x; then + bitmapdir=/usr/include/X11/bitmaps else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + # accumulate include directories that have X11 bitmap subdirectories + bmd_acc="dummyval" + for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do + if test -d "${bmd}/X11/bitmaps"; then + bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" + fi + if test -d "${bmd}/bitmaps"; then + bmd_acc="${bmd_acc}:${bmd}/bitmaps" + fi + done + if test ${bmd_acc} != "dummyval"; then + bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"` + fi fi -echo "$as_me:$LINENO: checking for working volatile" >&5 -echo $ECHO_N "checking for working volatile... $ECHO_C" >&6 -if test "${ac_cv_c_volatile+set}" = set; then +HAVE_CARBON=no +if test "${with_carbon}" != no; then + if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then + echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 +echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 +if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 +echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + # Is the header compilable? +echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5 +echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -int -main () -{ - -volatile int x; -int * volatile y; - ; - return 0; -} +$ac_includes_default +#include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_c_volatile=yes + ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_c_volatile=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 -echo "${ECHO_T}$ac_cv_c_volatile" >&6 -if test $ac_cv_c_volatile = no; then - -cat >>confdefs.h <<\_ACEOF -#define volatile -_ACEOF - +ac_header_compiler=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +# Is the header present? +echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5 +echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset x; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - ccp = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - } -#endif - - ; - return 0; -} +#include _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_c_const=no + ac_header_preproc=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 +echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 +if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_Carbon_Carbon_h=$ac_header_preproc fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 -if test $ac_cv_c_const = no; then +echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 +echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF +fi +if test $ac_cv_header_Carbon_Carbon_h = yes; then + HAVE_CARBON=yes +fi + +fi +if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then + if test "${with_carbon+set}" != set \ + && test "${carbon_appdir_x+set}" != set; then + HAVE_CARBON=no + fi +fi +if test "${HAVE_CARBON}" = yes; then + window_system=mac fi -echo "$as_me:$LINENO: checking for void * support" >&5 -echo $ECHO_N "checking for void * support... $ECHO_C" >&6 -if test "${emacs_cv_void_star+set}" = set; then +case "${window_system}" in + x11 ) + HAVE_X_WINDOWS=yes + HAVE_X11=yes + case "${with_x_toolkit}" in + athena | lucid ) USE_X_TOOLKIT=LUCID ;; + motif ) USE_X_TOOLKIT=MOTIF ;; + gtk ) with_gtk=yes + USE_X_TOOLKIT=none ;; + no ) USE_X_TOOLKIT=none ;; + * ) USE_X_TOOLKIT=maybe ;; + esac + ;; + mac | none ) + HAVE_X_WINDOWS=no + HAVE_X11=no + USE_X_TOOLKIT=none + ;; +esac + +### If we're using X11, we should use the X menu package. +HAVE_MENUS=no +case ${HAVE_X11} in + yes ) HAVE_MENUS=yes ;; +esac + +if test "${opsys}" = "hpux9"; then + case "${x_libraries}" in + *X11R4* ) + opsysfile="s/hpux9-x11r4.h" + ;; + esac +fi + +if test "${opsys}" = "hpux9shr"; then + case "${x_libraries}" in + *X11R4* ) + opsysfile="s/hpux9shxr4.h" + ;; + esac +fi + +### Compute the unexec source name from the object name. +UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" + +# Do the opsystem or machine files prohibit the use of the GNU malloc? +# Assume not, until told otherwise. +GNU_MALLOC=yes +doug_lea_malloc=yes +echo "$as_me:$LINENO: checking for malloc_get_state" >&5 +echo $ECHO_N "checking for malloc_get_state... $ECHO_C" >&6 +if test "${ac_cv_func_malloc_get_state+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define malloc_get_state to an innocuous variant, in case declares malloc_get_state. + For example, HP-UX 11i declares gettimeofday. */ +#define malloc_get_state innocuous_malloc_get_state + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char malloc_get_state (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef malloc_get_state + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char malloc_get_state (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_malloc_get_state) || defined (__stub___malloc_get_state) +choke me +#else +char (*f) () = malloc_get_state; +#endif +#ifdef __cplusplus +} +#endif int main () { -void * foo; +return f != malloc_get_state; ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_void_star=yes + ac_cv_func_malloc_get_state=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_void_star=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $emacs_cv_void_star" >&5 -echo "${ECHO_T}$emacs_cv_void_star" >&6 -if test $emacs_cv_void_star = yes; then - cat >>confdefs.h <<\_ACEOF -#define POINTER_TYPE void -_ACEOF - -else - cat >>confdefs.h <<\_ACEOF -#define POINTER_TYPE char -_ACEOF - -fi - - - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make +ac_cv_func_malloc_get_state=no fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi - - -echo "$as_me:$LINENO: checking for long file names" >&5 -echo $ECHO_N "checking for long file names... $ECHO_C" >&6 -if test "${ac_cv_sys_long_file_names+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_sys_long_file_names=yes -# Test for long file names in all the places we know might matter: -# . the current directory, where building will happen -# $prefix/lib where we will be installing things -# $exec_prefix/lib likewise -# eval it to expand exec_prefix. -# $TMPDIR if set, where it might want to write temporary files -# if $TMPDIR is not set: -# /tmp where it might want to write temporary files -# /var/tmp likewise -# /usr/tmp likewise -if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then - ac_tmpdirs=$TMPDIR +echo "$as_me:$LINENO: result: $ac_cv_func_malloc_get_state" >&5 +echo "${ECHO_T}$ac_cv_func_malloc_get_state" >&6 +if test $ac_cv_func_malloc_get_state = yes; then + : else - ac_tmpdirs='/tmp /var/tmp /usr/tmp' -fi -for ac_dir in . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do - test -d $ac_dir || continue - test -w $ac_dir || continue # It is less confusing to not echo anything here. - ac_xdir=$ac_dir/cf$$ - (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue - ac_tf1=$ac_xdir/conftest9012345 - ac_tf2=$ac_xdir/conftest9012346 - (echo 1 >$ac_tf1) 2>/dev/null - (echo 2 >$ac_tf2) 2>/dev/null - ac_val=`cat $ac_tf1 2>/dev/null` - if test ! -f $ac_tf1 || test "$ac_val" != 1; then - ac_cv_sys_long_file_names=no - rm -rf $ac_xdir 2>/dev/null - break - fi - rm -rf $ac_xdir 2>/dev/null -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_long_file_names" >&5 -echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6 -if test $ac_cv_sys_long_file_names = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LONG_FILE_NAMES 1 -_ACEOF - + doug_lea_malloc=no fi - -#### Choose a window system. - -echo "$as_me:$LINENO: checking for X" >&5 -echo $ECHO_N "checking for X... $ECHO_C" >&6 - - -# Check whether --with-x or --without-x was given. -if test "${with_x+set}" = set; then - withval="$with_x" - -fi; -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. -if test "x$with_x" = xno; then - # The user explicitly disabled X. - have_x=disabled -else - if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then - # Both variables are already set. - have_x=yes - else - if test "${ac_cv_have_x+set}" = set; then +echo "$as_me:$LINENO: checking for malloc_set_state" >&5 +echo $ECHO_N "checking for malloc_set_state... $ECHO_C" >&6 +if test "${ac_cv_func_malloc_set_state+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -fr conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - # Make sure to not put "make" in the Imakefile rules, since we grep it out. - cat >Imakefile <<'_ACEOF' -acfindx: - @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' -_ACEOF - if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. - eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` - # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. - for ac_extension in a so sl; do - if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && - test -f $ac_im_libdir/libX11.$ac_extension; then - ac_im_usrlibdir=$ac_im_libdir; break - fi - done - # Screen out bogus values from the imake configuration. They are - # bogus both because they are the default anyway, and because - # using them would break gcc on systems where it needs fixed includes. - case $ac_im_incroot in - /usr/include) ;; - *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; - esac - case $ac_im_usrlibdir in - /usr/lib | /lib) ;; - *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; - esac - fi - cd .. - rm -fr conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/usr/X11/include -/usr/X11R6/include -/usr/X11R5/include -/usr/X11R4/include - -/usr/include/X11 -/usr/include/X11R6 -/usr/include/X11R5 -/usr/include/X11R4 - -/usr/local/X11/include -/usr/local/X11R6/include -/usr/local/X11R5/include -/usr/local/X11R4/include - -/usr/local/include/X11 -/usr/local/include/X11R6 -/usr/local/include/X11R5 -/usr/local/include/X11R4 - -/usr/X386/include -/usr/x386/include -/usr/XFree86/include/X11 - -/usr/include -/usr/local/include -/usr/unsupported/include -/usr/athena/include -/usr/local/x11r5/include -/usr/lpp/Xamples/include - -/usr/openwin/include -/usr/openwin/share/include' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Intrinsic.h. - # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +/* Define malloc_set_state to an innocuous variant, in case declares malloc_set_state. + For example, HP-UX 11i declares gettimeofday. */ +#define malloc_set_state innocuous_malloc_set_state + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char malloc_set_state (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef malloc_set_state + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char malloc_set_state (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_malloc_set_state) || defined (__stub___malloc_set_state) +choke me +#else +char (*f) () = malloc_set_state; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != malloc_set_state; + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # We can compile using X headers with no special include directory. -ac_x_includes= + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_malloc_set_state=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Intrinsic.h"; then - ac_x_includes=$ac_dir - break - fi -done +ac_cv_func_malloc_set_state=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_malloc_set_state" >&5 +echo "${ECHO_T}$ac_cv_func_malloc_set_state" >&6 +if test $ac_cv_func_malloc_set_state = yes; then + : +else + doug_lea_malloc=no fi -rm -f conftest.err conftest.$ac_ext -fi # $ac_x_includes = no -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lXt $LIBS" +echo "$as_me:$LINENO: checking whether __after_morecore_hook exists" >&5 +echo $ECHO_N "checking whether __after_morecore_hook exists... $ECHO_C" >&6 +if test "${emacs_cv_var___after_morecore_hook+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +extern void (* __after_morecore_hook)(); int main () { -XtMalloc (0) +__after_morecore_hook = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= + emacs_cv_var___after_morecore_hook=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -LIBS=$ac_save_LIBS -for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl; do - if test -r $ac_dir/libXt.$ac_extension; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done +emacs_cv_var___after_morecore_hook=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi # $ac_x_libraries = no - -if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then - # Didn't find X anywhere. Cache the known absence of X. - ac_cv_have_x="have_x=no" -else - # Record where we found X for the cache. - ac_cv_have_x="have_x=yes \ - ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $emacs_cv_var___after_morecore_hook" >&5 +echo "${ECHO_T}$emacs_cv_var___after_morecore_hook" >&6 +if test $emacs_cv_var___after_morecore_hook = no; then + doug_lea_malloc=no fi +if test "${system_malloc}" = "yes"; then + GNU_MALLOC=no + GNU_MALLOC_reason=" + (The GNU allocators don't work with this system configuration.)" fi - +if test "$doug_lea_malloc" = "yes" ; then + if test "$GNU_MALLOC" = yes ; then + GNU_MALLOC_reason=" + (Using Doug Lea's new malloc from the GNU C Library.)" fi - eval "$ac_cv_have_x" -fi # $with_x != no -if test "$have_x" != yes; then - echo "$as_me:$LINENO: result: $have_x" >&5 -echo "${ECHO_T}$have_x" >&6 - no_x=yes -else - # If each of the values was on the command line, it overrides each guess. - test "x$x_includes" = xNONE && x_includes=$ac_x_includes - test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries - # Update the cache value to reflect the command line values. - ac_cv_have_x="have_x=yes \ - ac_x_includes=$x_includes ac_x_libraries=$x_libraries" - echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 -echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 -fi +cat >>confdefs.h <<\_ACEOF +#define DOUG_LEA_MALLOC 1 +_ACEOF -if test "$no_x" = yes; then - window_system=none -else - window_system=x11 fi -if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then - LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` - LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"` - x_default_search_path="" - for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do - x_search_path="\ -${x_library}/X11/%L/%T/%N%C%S:\ -${x_library}/X11/%l/%T/%N%C%S:\ -${x_library}/X11/%T/%N%C%S:\ -${x_library}/X11/%L/%T/%N%S:\ -${x_library}/X11/%l/%T/%N%S:\ -${x_library}/X11/%T/%N%S" - if test x"${x_default_search_path}" = x; then - x_default_search_path=${x_search_path} - else - x_default_search_path="${x_search_path}:${x_default_search_path}" - fi - done -fi -if test "${x_includes}" != NONE && test -n "${x_includes}"; then - C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"` +if test x"${REL_ALLOC}" = x; then + REL_ALLOC=${GNU_MALLOC} fi -if test x"${x_includes}" = x; then - bitmapdir=/usr/include/X11/bitmaps + + + +for ac_header in stdlib.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - # accumulate include directories that have X11 bitmap subdirectories - bmd_acc="dummyval" - for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do - if test -d "${bmd}/X11/bitmaps"; then - bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" - fi - if test -d "${bmd}/bitmaps"; then - bmd_acc="${bmd_acc}:${bmd}/bitmaps" - fi - done - if test ${bmd_acc} != "dummyval"; then - bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"` - fi + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -case "${window_system}" in - x11 ) - HAVE_X_WINDOWS=yes - HAVE_X11=yes - case "${with_x_toolkit}" in - athena | lucid ) USE_X_TOOLKIT=LUCID ;; - motif ) USE_X_TOOLKIT=MOTIF ;; - gtk ) with_gtk=yes - USE_X_TOOLKIT=none ;; - no ) USE_X_TOOLKIT=none ;; - * ) USE_X_TOOLKIT=maybe ;; - esac - ;; - none ) - HAVE_X_WINDOWS=no - HAVE_X11=no - USE_X_TOOLKIT=none - ;; -esac +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -### If we're using X11, we should use the X menu package. -HAVE_MENUS=no -case ${HAVE_X11} in - yes ) HAVE_MENUS=yes ;; + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test "${opsys}" = "hpux9"; then - case "${x_libraries}" in - *X11R4* ) - opsysfile="s/hpux9-x11r4.h" - ;; - esac fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF -if test "${opsys}" = "hpux9shr"; then - case "${x_libraries}" in - *X11R4* ) - opsysfile="s/hpux9shxr4.h" - ;; - esac fi -### Compute the unexec source name from the object name. -UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" +done -# Do the opsystem or machine files prohibit the use of the GNU malloc? -# Assume not, until told otherwise. -GNU_MALLOC=yes -doug_lea_malloc=yes -echo "$as_me:$LINENO: checking for malloc_get_state" >&5 -echo $ECHO_N "checking for malloc_get_state... $ECHO_C" >&6 -if test "${ac_cv_func_malloc_get_state+set}" = set; then + +for ac_func in getpagesize +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char malloc_get_state (); below. + which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -6902,14 +9197,14 @@ extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char malloc_get_state (); +char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_malloc_get_state) || defined (__stub___malloc_get_state) +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else -char (*f) () = malloc_get_state; +char (*f) () = $ac_func; #endif #ifdef __cplusplus } @@ -6918,972 +9213,1332 @@ char (*f) () = malloc_get_state; int main () { -return f != malloc_get_state; +return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_malloc_get_state=yes + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_malloc_get_state=no +eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_malloc_get_state" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_get_state" >&6 -if test $ac_cv_func_malloc_get_state = yes; then - : -else - doug_lea_malloc=no +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + fi +done -echo "$as_me:$LINENO: checking for malloc_set_state" >&5 -echo $ECHO_N "checking for malloc_set_state... $ECHO_C" >&6 -if test "${ac_cv_func_malloc_set_state+set}" = set; then +echo "$as_me:$LINENO: checking for working mmap" >&5 +echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 +if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_mmap_fixed_mapped=no else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char malloc_set_state (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include +$ac_includes_default +/* malloc might have been renamed as rpl_malloc. */ +#undef malloc + +/* Thanks to Mike Haertel and Jim Avera for this test. + Here is a matrix of mmap possibilities: + mmap private not fixed + mmap private fixed at somewhere currently unmapped + mmap private fixed at somewhere already mapped + mmap shared not fixed + mmap shared fixed at somewhere currently unmapped + mmap shared fixed at somewhere already mapped + For private mappings, we should verify that changes cannot be read() + back from the file, nor mmap's back from the file at a different + address. (There have been systems where private was not correctly + implemented like the infamous i386 svr4.0, and systems where the + VM page cache was not coherent with the file system buffer cache + like early versions of FreeBSD and possibly contemporary NetBSD.) + For shared mappings, we should conversely verify that changes get + propagated back to all the places they're supposed to be. + + Grep wants private fixed already mapped. + The main things grep needs to know about mmap are: + * does it exist and is it safe to write into the mmap'd area + * how to use it (BSD variants) */ + +#include +#include + +#if !STDC_HEADERS && !HAVE_STDLIB_H +char *malloc (); #endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" + +/* This mess was copied from the GNU getpagesize.h. */ +#if !HAVE_GETPAGESIZE +/* Assume that all systems that can run configure have sys/param.h. */ +# if !HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# if HAVE_SYS_PARAM_H +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else /* no EXEC_PAGESIZE */ +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* no CLSIZE */ +# else /* no NBPG */ +# ifdef NBPC +# define getpagesize() NBPC +# else /* no NBPC */ +# ifdef PAGESIZE +# define getpagesize() PAGESIZE +# endif /* PAGESIZE */ +# endif /* no NBPC */ +# endif /* no NBPG */ +# endif /* no EXEC_PAGESIZE */ +# else /* no HAVE_SYS_PARAM_H */ +# define getpagesize() 8192 /* punt totally */ +# endif /* no HAVE_SYS_PARAM_H */ +# endif /* no _SC_PAGESIZE */ + +#endif /* no HAVE_GETPAGESIZE */ + +int +main () { -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char malloc_set_state (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_malloc_set_state) || defined (__stub___malloc_set_state) -choke me -#else -char (*f) () = malloc_set_state; -#endif -#ifdef __cplusplus -} -#endif + char *data, *data2, *data3; + int i, pagesize; + int fd; + + pagesize = getpagesize (); + + /* First, make a file with some known garbage in it. */ + data = (char *) malloc (pagesize); + if (!data) + exit (1); + for (i = 0; i < pagesize; ++i) + *(data + i) = rand (); + umask (0); + fd = creat ("conftest.mmap", 0600); + if (fd < 0) + exit (1); + if (write (fd, data, pagesize) != pagesize) + exit (1); + close (fd); + + /* Next, try to mmap the file at a fixed address which already has + something else allocated at it. If we can, also make sure that + we see the same garbage. */ + fd = open ("conftest.mmap", O_RDWR); + if (fd < 0) + exit (1); + data2 = (char *) malloc (2 * pagesize); + if (!data2) + exit (1); + data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); + if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + exit (1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) + exit (1); -int -main () -{ -return f != malloc_set_state; - ; - return 0; + /* Finally, make sure that changes to the mapped area do not + percolate back to the file as seen by read(). (This is a bug on + some variants of i386 svr4.0.) */ + for (i = 0; i < pagesize; ++i) + *(data2 + i) = *(data2 + i) + 1; + data3 = (char *) malloc (pagesize); + if (!data3) + exit (1); + if (read (fd, data3, pagesize) != pagesize) + exit (1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data3 + i)) + exit (1); + close (fd); + exit (0); } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_malloc_set_state=yes + ac_cv_func_mmap_fixed_mapped=yes else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_malloc_set_state=no +( exit $ac_status ) +ac_cv_func_mmap_fixed_mapped=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_malloc_set_state" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_set_state" >&6 -if test $ac_cv_func_malloc_set_state = yes; then - : -else - doug_lea_malloc=no fi +echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 +echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 +if test $ac_cv_func_mmap_fixed_mapped = yes; then -echo "$as_me:$LINENO: checking whether __after_morecore_hook exists" >&5 -echo $ECHO_N "checking whether __after_morecore_hook exists... $ECHO_C" >&6 -if test "${emacs_cv_var___after_morecore_hook+set}" = set; then +cat >>confdefs.h <<\_ACEOF +#define HAVE_MMAP 1 +_ACEOF + +fi +rm -f conftest.mmap + +if test $use_mmap_for_buffers = yes; then + REL_ALLOC=no +fi + +LIBS="$libsrc_libs $LIBS" + + +echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 +echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -extern void (* __after_morecore_hook)(); + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dnet_ntoa (); int main () { -__after_morecore_hook = 0 +dnet_ntoa (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_var___after_morecore_hook=yes + ac_cv_lib_dnet_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_var___after_morecore_hook=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $emacs_cv_var___after_morecore_hook" >&5 -echo "${ECHO_T}$emacs_cv_var___after_morecore_hook" >&6 -if test $emacs_cv_var___after_morecore_hook = no; then - doug_lea_malloc=no +ac_cv_lib_dnet_dnet_ntoa=no fi -if test "${system_malloc}" = "yes"; then - GNU_MALLOC=no - GNU_MALLOC_reason=" - (The GNU allocators don't work with this system configuration.)" +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -if test "$doug_lea_malloc" = "yes" ; then - if test "$GNU_MALLOC" = yes ; then - GNU_MALLOC_reason=" - (Using Doug Lea's new malloc from the GNU C Library.)" - fi - -cat >>confdefs.h <<\_ACEOF -#define DOUG_LEA_MALLOC 1 +echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 +if test $ac_cv_lib_dnet_dnet_ntoa = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDNET 1 _ACEOF -fi + LIBS="-ldnet $LIBS" -if test x"${REL_ALLOC}" = x; then - REL_ALLOC=${GNU_MALLOC} fi - - -for ac_header in stdlib.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +echo "$as_me:$LINENO: checking for main in -lXbsd" >&5 +echo $ECHO_N "checking for main in -lXbsd... $ECHO_C" >&6 +if test "${ac_cv_lib_Xbsd_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> + + +int +main () +{ +main (); + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes + (exit $ac_status); }; }; then + ac_cv_lib_Xbsd_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" +ac_cv_lib_Xbsd_main=no fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - +echo "$as_me:$LINENO: result: $ac_cv_lib_Xbsd_main" >&5 +echo "${ECHO_T}$ac_cv_lib_Xbsd_main" >&6 +if test $ac_cv_lib_Xbsd_main = yes; then + LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd" fi -done -for ac_func in getpagesize -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then +echo "$as_me:$LINENO: checking for cma_open in -lpthreads" >&5 +echo $ECHO_N "checking for cma_open in -lpthreads... $ECHO_C" >&6 +if test "${ac_cv_lib_pthreads_cma_open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthreads $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" -{ #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - +char cma_open (); int main () { -return f != $ac_func; +cma_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + ac_cv_lib_pthreads_cma_open=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" +ac_cv_lib_pthreads_cma_open=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_cma_open" >&5 +echo "${ECHO_T}$ac_cv_lib_pthreads_cma_open" >&6 +if test $ac_cv_lib_pthreads_cma_open = yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_LIBPTHREADS 1 _ACEOF + LIBS="-lpthreads $LIBS" + fi -done -echo "$as_me:$LINENO: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + +echo "$as_me:$LINENO: checking for XFree86 in /usr/X386" >&5 +echo $ECHO_N "checking for XFree86 in /usr/X386... $ECHO_C" >&6 +if test -d /usr/X386/include; then + HAVE_XFREE386=yes + : ${C_SWITCH_X_SITE="-I/usr/X386/include"} else - if test "$cross_compiling" = yes; then - ac_cv_func_mmap_fixed_mapped=no + HAVE_XFREE386=no +fi +echo "$as_me:$LINENO: result: $HAVE_XFREE386" >&5 +echo "${ECHO_T}$HAVE_XFREE386" >&6 + + +case ${host_os} in +aix*) + echo "$as_me:$LINENO: checking for -bbigtoc option" >&5 +echo $ECHO_N "checking for -bbigtoc option... $ECHO_C" >&6 +if test "${gdb_cv_bigtoc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + + case $GCC in + yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; + *) gdb_cv_bigtoc=-bbigtoc ;; + esac + + LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -/* malloc might have been renamed as rpl_malloc. */ -#undef malloc - -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include -#include - -#if !STDC_HEADERS && !HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H -# include -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ int main () { - char *data, *data2, *data3; - int i, pagesize; - int fd; +int i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - pagesize = getpagesize (); +gdb_cv_bigtoc= +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - exit (1); - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - exit (1); - if (write (fd, data, pagesize) != pagesize) - exit (1); - close (fd); +fi +echo "$as_me:$LINENO: result: $gdb_cv_bigtoc" >&5 +echo "${ECHO_T}$gdb_cv_bigtoc" >&6 + ;; +esac - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - exit (1); - data2 = (char *) malloc (2 * pagesize); - if (!data2) - exit (1); - data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - exit (1); +# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets +# used for the tests that follow. We set them back to REAL_CFLAGS and +# REAL_CPPFLAGS later on. - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - exit (1); - if (read (fd, data3, pagesize) != pagesize) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - exit (1); - close (fd); - exit (0); +REAL_CPPFLAGS="$CPPFLAGS" + +if test "${HAVE_X11}" = "yes"; then + DEFS="$C_SWITCH_X_SITE $DEFS" + LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE" + LIBS="$LIBX $LIBS" + CFLAGS="$C_SWITCH_X_SITE $CFLAGS" + CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS" + + # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests. + # This is handled by LD_SWITCH_X_SITE_AUX during the real build, + # but it's more convenient here to set LD_RUN_PATH + # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX. + if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then + LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH + export LD_RUN_PATH + fi + + if test "${opsys}" = "gnu-linux"; then + echo "$as_me:$LINENO: checking whether X on GNU/Linux needs -b to link" >&5 +echo $ECHO_N "checking whether X on GNU/Linux needs -b to link... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +XOpenDisplay ("foo"); + ; + return 0; } _ACEOF -rm -f conftest$ac_exeext +rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_mmap_fixed_mapped=yes + xlinux_first_failure=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi +xlinux_first_failure=yes fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MMAP 1 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "${xlinux_first_failure}" = "yes"; then + OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE" + OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE" + OLD_CPPFLAGS="$CPPFLAGS" + OLD_LIBS="$LIBS" + LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout" + C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout" + CPPFLAGS="$CPPFLAGS -b i486-linuxaout" + LIBS="$LIBS -b i486-linuxaout" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ _ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ -fi -rm -f conftest.mmap +int +main () +{ +XOpenDisplay ("foo"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + xlinux_second_failure=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -if test $use_mmap_for_buffers = yes; then - REL_ALLOC=no +xlinux_second_failure=yes fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "${xlinux_second_failure}" = "yes"; then + # If we get the same failure with -b, there is no use adding -b. + # So take it out. This plays safe. + LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE" + C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE" + CPPFLAGS="$OLD_CPPFLAGS" + LIBS="$OLD_LIBS" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + else + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + fi + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi -LIBS="$libsrc_libs $LIBS" - - -echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 -echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + # Reportedly, some broken Solaris systems have XKBlib.h but are missing + # header files included from there. + echo "$as_me:$LINENO: checking for Xkb" >&5 +echo $ECHO_N "checking for Xkb... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dnet_ntoa (); +#include +#include int main () { -dnet_ntoa (); +XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_dnet_dnet_ntoa=yes + emacs_xkb=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_dnet_dnet_ntoa=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +emacs_xkb=no fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 -if test $ac_cv_lib_dnet_dnet_ntoa = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDNET 1 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + echo "$as_me:$LINENO: result: $emacs_xkb" >&5 +echo "${ECHO_T}$emacs_xkb" >&6 + if test $emacs_xkb = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_XKBGETKEYBOARD 1 _ACEOF - LIBS="-ldnet $LIBS" + fi -fi -echo "$as_me:$LINENO: checking for main in -lXbsd" >&5 -echo $ECHO_N "checking for main in -lXbsd... $ECHO_C" >&6 -if test "${ac_cv_lib_Xbsd_main+set}" = set; then + + +for ac_func in XrmSetDatabase XScreenResourceString \ +XScreenNumberOfScreen XSetWMProtocols +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXbsd $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif int main () { -main (); +return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_Xbsd_main=yes + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_Xbsd_main=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +eval "$as_ac_var=no" fi -echo "$as_me:$LINENO: result: $ac_cv_lib_Xbsd_main" >&5 -echo "${ECHO_T}$ac_cv_lib_Xbsd_main" >&6 -if test $ac_cv_lib_Xbsd_main = yes; then - LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd" +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +fi +done +fi -echo "$as_me:$LINENO: checking for cma_open in -lpthreads" >&5 -echo $ECHO_N "checking for cma_open in -lpthreads... $ECHO_C" >&6 -if test "${ac_cv_lib_pthreads_cma_open+set}" = set; then +if test "${window_system}" = "x11"; then + echo "$as_me:$LINENO: checking X11 version 6" >&5 +echo $ECHO_N "checking X11 version 6... $ECHO_C" >&6 + if test "${emacs_cv_x11_version_6+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthreads $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char cma_open (); +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include int main () { -cma_open (); +#if XlibSpecificationRelease < 6 +fail; +#endif + ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_pthreads_cma_open=yes + emacs_cv_x11_version_6=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_pthreads_cma_open=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_cma_open" >&5 -echo "${ECHO_T}$ac_cv_lib_pthreads_cma_open" >&6 -if test $ac_cv_lib_pthreads_cma_open = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREADS 1 -_ACEOF - - LIBS="-lpthreads $LIBS" - +emacs_cv_x11_version_6=no fi - - -echo "$as_me:$LINENO: checking for XFree86 in /usr/X386" >&5 -echo $ECHO_N "checking for XFree86 in /usr/X386... $ECHO_C" >&6 -if test -d /usr/X386/include; then - HAVE_XFREE386=yes - : ${C_SWITCH_X_SITE="-I/usr/X386/include"} -else - HAVE_XFREE386=no +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $HAVE_XFREE386" >&5 -echo "${ECHO_T}$HAVE_XFREE386" >&6 - -# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets -# used for the tests that follow. We set them back to REAL_CFLAGS and -# REAL_CPPFLAGS later on. -REAL_CPPFLAGS="$CPPFLAGS" + if test $emacs_cv_x11_version_6 = yes; then + echo "$as_me:$LINENO: result: 6 or newer" >&5 +echo "${ECHO_T}6 or newer" >&6 -if test "${HAVE_X11}" = "yes"; then - DEFS="$C_SWITCH_X_SITE $DEFS" - LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE" - LIBS="$LIBX $LIBS" - CFLAGS="$C_SWITCH_X_SITE $CFLAGS" - CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS" +cat >>confdefs.h <<\_ACEOF +#define HAVE_X11R6 1 +_ACEOF - # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests. - # This is handled by LD_SWITCH_X_SITE_AUX during the real build, - # but it's more convenient here to set LD_RUN_PATH - # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX. - if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then - LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH - export LD_RUN_PATH + else + echo "$as_me:$LINENO: result: before 6" >&5 +echo "${ECHO_T}before 6" >&6 fi +fi - if test "${opsys}" = "gnu-linux"; then - echo "$as_me:$LINENO: checking whether X on GNU/Linux needs -b to link" >&5 -echo $ECHO_N "checking whether X on GNU/Linux needs -b to link... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +if test "${window_system}" = "x11"; then + echo "$as_me:$LINENO: checking X11 version 5" >&5 +echo $ECHO_N "checking X11 version 5... $ECHO_C" >&6 + if test "${emacs_cv_x11_version_5+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - +#include int main () { -XOpenDisplay ("foo"); +#if XlibSpecificationRelease < 5 +fail; +#endif + ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - xlinux_first_failure=no + emacs_cv_x11_version_5=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -xlinux_first_failure=yes +emacs_cv_x11_version_5=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - if test "${xlinux_first_failure}" = "yes"; then - OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE" - OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE" - OLD_CPPFLAGS="$CPPFLAGS" - OLD_LIBS="$LIBS" - LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout" - C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout" - CPPFLAGS="$CPPFLAGS -b i486-linuxaout" - LIBS="$LIBS -b i486-linuxaout" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + if test $emacs_cv_x11_version_5 = yes; then + echo "$as_me:$LINENO: result: 5 or newer" >&5 +echo "${ECHO_T}5 or newer" >&6 + HAVE_X11R5=yes + +cat >>confdefs.h <<\_ACEOF +#define HAVE_X11R5 1 +_ACEOF + + else + HAVE_X11R5=no + echo "$as_me:$LINENO: result: before 5" >&5 +echo "${ECHO_T}before 5" >&6 + fi +fi + + + +HAVE_GTK=no +if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then + if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then + { { echo "$as_me:$LINENO: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&5 +echo "$as_me: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&2;} + { (exit 1); exit 1; }; }; + fi + GLIB_REQUIRED=2.0.1 + GTK_REQUIRED=2.0.1 + GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" + + if test "X${with_pkg_config_prog}" != X; then + PKG_CONFIG="${with_pkg_config_prog}" + fi + + succeeded=no + + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG + +if test -n "$PKG_CONFIG"; then + echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or give the full path to pkg-config with" + echo "*** the PKG_CONFIG environment variable or --with-pkg-config-prog." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + echo "$as_me:$LINENO: checking for $GTK_MODULES" >&5 +echo $ECHO_N "checking for $GTK_MODULES... $ECHO_C" >&6 + + if $PKG_CONFIG --exists "$GTK_MODULES" ; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + succeeded=yes + + echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5 +echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6 + GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"` + echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5 +echo "${ECHO_T}$GTK_CFLAGS" >&6 + + echo "$as_me:$LINENO: checking GTK_LIBS" >&5 +echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6 + GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"` + echo "$as_me:$LINENO: result: $GTK_LIBS" >&5 +echo "${ECHO_T}$GTK_LIBS" >&6 + else + GTK_CFLAGS="" + GTK_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"` + echo $GTK_PKG_ERRORS + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + : + else + { { echo "$as_me:$LINENO: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 +echo "$as_me: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} + { (exit 1); exit 1; }; } + fi + + + + C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$GTK_LIBS $LIBS" + HAVE_GTK=yes + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GTK 1 +_ACEOF + + USE_X_TOOLKIT=none + + if test "$with_toolkit_scroll_bars" != no; then + with_toolkit_scroll_bars=yes + fi + + HAVE_GTK_MULTIDISPLAY=no + +for ac_func in gdk_display_open +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif int main () { -XOpenDisplay ("foo"); +return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - xlinux_second_failure=no + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -xlinux_second_failure=yes +eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - if test "${xlinux_second_failure}" = "yes"; then - # If we get the same failure with -b, there is no use adding -b. - # So take it out. This plays safe. - LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE" - C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE" - CPPFLAGS="$OLD_CPPFLAGS" - LIBS="$OLD_LIBS" - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - else - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - fi - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + HAVE_GTK_MULTIDISPLAY=yes +fi +done + + if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GTK_MULTIDISPLAY 1 +_ACEOF + fi + HAVE_GTK_FILE_SELECTION=no - # Reportedly, some broken Solaris systems have XKBlib.h but are missing - # header files included from there. - echo "$as_me:$LINENO: checking for Xkb" >&5 -echo $ECHO_N "checking for Xkb... $ECHO_C" >&6 +for ac_func in gtk_file_selection_new +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + int main () { -XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd); +return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_xkb=yes + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_xkb=no +eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - echo "$as_me:$LINENO: result: $emacs_xkb" >&5 -echo "${ECHO_T}$emacs_xkb" >&6 - if test $emacs_xkb = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_XKBGETKEYBOARD 1 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF - - fi - - + HAVE_GTK_FILE_SELECTION=yes +fi +done + HAVE_GTK_FILE_CHOOSER=no -for ac_func in XrmSetDatabase XScreenResourceString \ -XScreenNumberOfScreen XSetWMProtocols +for ac_func in gtk_file_chooser_dialog_new do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -7892,21 +10547,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -7937,11 +10599,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7954,7 +10626,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -7962,262 +10635,251 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF - + HAVE_GTK_FILE_CHOOSER=yes fi done -fi -if test "${window_system}" = "x11"; then - echo "$as_me:$LINENO: checking X11 version 6" >&5 -echo $ECHO_N "checking X11 version 6... $ECHO_C" >&6 - if test "${emacs_cv_x11_version_6+set}" = set; then + if test "$HAVE_GTK_FILE_SELECTION" = yes \ + && test "$HAVE_GTK_FILE_CHOOSER" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GTK_FILE_BOTH 1 +_ACEOF + + fi + + if test "$HAVE_GTK_FILE_CHOOSER" = yes; then + HAVE_GTK_AND_PTHREAD=no + +for ac_header in pthread.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -int -main () -{ -#if XlibSpecificationRelease < 6 -fail; -#endif - - ; - return 0; -} +$ac_includes_default +#include <$ac_header> _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - emacs_cv_x11_version_6=yes + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_x11_version_6=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + ac_header_preproc=no fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 - if test $emacs_cv_x11_version_6 = yes; then - echo "$as_me:$LINENO: result: 6 or newer" >&5 -echo "${ECHO_T}6 or newer" >&6 +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -cat >>confdefs.h <<\_ACEOF -#define HAVE_X11R6 1 +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - else - echo "$as_me:$LINENO: result: before 6" >&5 -echo "${ECHO_T}before 6" >&6 - fi fi -if test "${window_system}" = "x11"; then - echo "$as_me:$LINENO: checking X11 version 5" >&5 -echo $ECHO_N "checking X11 version 5... $ECHO_C" >&6 - if test "${emacs_cv_x11_version_5+set}" = set; then +done + + if test "$ac_cv_header_pthread_h"; then + echo "$as_me:$LINENO: checking for pthread_self in -lpthread" >&5 +echo $ECHO_N "checking for pthread_self in -lpthread... $ECHO_C" >&6 +if test "${ac_cv_lib_pthread_pthread_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_self (); int main () { -#if XlibSpecificationRelease < 5 -fail; -#endif - +pthread_self (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_x11_version_5=yes + ac_cv_lib_pthread_pthread_self=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_x11_version_5=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi - - if test $emacs_cv_x11_version_5 = yes; then - echo "$as_me:$LINENO: result: 5 or newer" >&5 -echo "${ECHO_T}5 or newer" >&6 - HAVE_X11R5=yes - -cat >>confdefs.h <<\_ACEOF -#define HAVE_X11R5 1 -_ACEOF - - else - HAVE_X11R5=no - echo "$as_me:$LINENO: result: before 5" >&5 -echo "${ECHO_T}before 5" >&6 - fi +ac_cv_lib_pthread_pthread_self=no fi - - - -HAVE_GTK=no -if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then - if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then - { { echo "$as_me:$LINENO: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&5 -echo "$as_me: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&2;} - { (exit 1); exit 1; }; }; - fi - GLIB_REQUIRED=2.0.1 - GTK_REQUIRED=2.0.1 - GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" - - if test "X${with_pkg_config_prog}" != X; then - PKG_CONFIG="${with_pkg_config_prog}" - fi - - succeeded=no - - if test -z "$PKG_CONFIG"; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" - ;; -esac +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 +echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_self" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_pthread_self" >&6 +if test $ac_cv_lib_pthread_pthread_self = yes; then + HAVE_GTK_AND_PTHREAD=yes fi - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or give the full path to pkg-config with" - echo "*** the PKG_CONFIG environment variable or --with-pkg-config-prog." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - echo "$as_me:$LINENO: checking for $GTK_MODULES" >&5 -echo $ECHO_N "checking for $GTK_MODULES... $ECHO_C" >&6 - - if $PKG_CONFIG --exists "$GTK_MODULES" ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - succeeded=yes - - echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5 -echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6 - GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"` - echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5 -echo "${ECHO_T}$GTK_CFLAGS" >&6 - - echo "$as_me:$LINENO: checking GTK_LIBS" >&5 -echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6 - GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"` - echo "$as_me:$LINENO: result: $GTK_LIBS" >&5 -echo "${ECHO_T}$GTK_LIBS" >&6 - else - GTK_CFLAGS="" - GTK_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"` - echo $GTK_PKG_ERRORS - fi - - - - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - : - else - { { echo "$as_me:$LINENO: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 -echo "$as_me: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} - { (exit 1); exit 1; }; } - fi - - - - C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" - HAVE_GTK=yes + fi + if test "$HAVE_GTK_AND_PTHREAD" = yes; then + GTK_LIBS="$GTK_LIBS -lpthread" cat >>confdefs.h <<\_ACEOF -#define HAVE_GTK 1 +#define HAVE_GTK_AND_PTHREAD 1 _ACEOF - USE_X_TOOLKIT=none - - with_toolkit_scroll_bars=yes + fi + fi fi if test x"${USE_X_TOOLKIT}" = xmaybe; then @@ -8228,7 +10890,6 @@ echo $ECHO_N "checking X11 version 5 with Xaw... $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8247,11 +10908,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8264,7 +10935,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 emacs_cv_x11_version_5_with_xaw=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi if test $emacs_cv_x11_version_5_with_xaw = yes; then @@ -8290,7 +10962,6 @@ echo $ECHO_N "checking X11 toolkit version... $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8310,11 +10981,21 @@ fail; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8327,7 +11008,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 emacs_cv_x11_toolkit_version_6=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6 @@ -8359,7 +11041,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lXmu $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8383,11 +11064,21 @@ XmuConvertStandardSelection (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8400,7 +11091,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xmu_XmuConvertStandardSelection=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_Xmu_XmuConvertStandardSelection" >&5 @@ -8429,7 +11121,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8453,11 +11144,21 @@ XShapeQueryExtension (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8470,7 +11171,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xext_XShapeQueryExtension=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5 @@ -8488,76 +11190,12 @@ fi fi if test "${USE_X_TOOLKIT}" = "MOTIF"; then - echo "$as_me:$LINENO: checking for LessTif where some systems put it" >&5 -echo $ECHO_N "checking for LessTif where some systems put it... $ECHO_C" >&6 -if test "${emacs_cv_lesstif+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # We put this in CFLAGS temporarily to precede other -I options - # that might be in CFLAGS temporarily. - # We put this in CPPFLAGS where it precedes the other -I options. - OLD_CPPFLAGS=$CPPFLAGS - OLD_CFLAGS=$CFLAGS - CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" - CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -int x = 5; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - emacs_cv_lesstif=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -emacs_cv_lesstif=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $emacs_cv_lesstif" >&5 -echo "${ECHO_T}$emacs_cv_lesstif" >&6 - if test $emacs_cv_lesstif = yes; then - # Make sure this -I option remains in CPPFLAGS after it is set - # back to REAL_CPPFLAGS. - # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not - # have those other -I options anyway. Ultimately, having this - # directory ultimately in CPPFLAGS will be enough. - REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" - LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" - else - CFLAGS=$OLD_CFLAGS - CPPFLAGS=$OLD_CPPFLAGS - fi echo "$as_me:$LINENO: checking for Motif version 2.1" >&5 echo $ECHO_N "checking for Motif version 2.1... $ECHO_C" >&6 if test "${emacs_cv_motif_version_2_1+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8578,11 +11216,21 @@ Motif version prior to 2.1. _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8595,7 +11243,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 emacs_cv_motif_version_2_1=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $emacs_cv_motif_version_2_1" >&5 echo "${ECHO_T}$emacs_cv_motif_version_2_1" >&6 @@ -8615,7 +11263,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lXp $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8639,11 +11286,21 @@ XpCreateContext (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8656,7 +11313,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xp_XpCreateContext=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpCreateContext" >&5 @@ -8672,6 +11330,79 @@ cat >>confdefs.h <<\_ACEOF _ACEOF fi + else + echo "$as_me:$LINENO: checking for LessTif where some systems put it" >&5 +echo $ECHO_N "checking for LessTif where some systems put it... $ECHO_C" >&6 +if test "${emacs_cv_lesstif+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # We put this in CFLAGS temporarily to precede other -I options + # that might be in CFLAGS temporarily. + # We put this in CPPFLAGS where it precedes the other -I options. + OLD_CPPFLAGS=$CPPFLAGS + OLD_CFLAGS=$CFLAGS + CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" + CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int x = 5; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + emacs_cv_lesstif=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +emacs_cv_lesstif=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $emacs_cv_lesstif" >&5 +echo "${ECHO_T}$emacs_cv_lesstif" >&6 + if test $emacs_cv_lesstif = yes; then + # Make sure this -I option remains in CPPFLAGS after it is set + # back to REAL_CPPFLAGS. + # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not + # have those other -I options anyway. Ultimately, having this + # directory ultimately in CPPFLAGS will be enough. + REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" + LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" + else + CFLAGS=$OLD_CFLAGS + CPPFLAGS=$OLD_CPPFLAGS + fi fi fi @@ -8685,7 +11416,6 @@ if test "${ac_cv_header_X11_Xaw3d_Scrollbar_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8703,6 +11433,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -8730,7 +11461,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lXaw3d $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8754,11 +11484,21 @@ XawScrollbarSetThumb (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8771,7 +11511,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xaw3d_XawScrollbarSetThumb=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_Xaw3d_XawScrollbarSetThumb" >&5 @@ -8815,12 +11556,71 @@ _ACEOF elif test "${HAVE_GTK}" = "yes"; then cat >>confdefs.h <<\_ACEOF #define USE_TOOLKIT_SCROLL_BARS 1 +_ACEOF + + USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_CARBON}" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define USE_TOOLKIT_SCROLL_BARS 1 _ACEOF USE_TOOLKIT_SCROLL_BARS=yes fi fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + #include +int +main () +{ +XIMProc callback; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + HAVE_XIM=yes + +cat >>confdefs.h <<\_ACEOF +#define HAVE_XIM 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +HAVE_XIM=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + if test "${with_xim}" != "no"; then @@ -8830,6 +11630,86 @@ _ACEOF fi + +if test "${HAVE_XIM}" != "no"; then + late_CFLAGS=$CFLAGS + if test "$GCC" = yes; then + CFLAGS="$CFLAGS --pedantic-errors" + fi + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +int +main () +{ +Display *display; +XrmDatabase db; +char *res_name; +char *res_class; +XIMProc callback; +XPointer *client_data; +#ifndef __GNUC__ +/* If we're not using GCC, it's probably not XFree86, and this is + probably right, but we can't use something like --pedantic-errors. */ +extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*, + char*, XIMProc, XPointer*); +#endif +(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback, + client_data); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + emacs_cv_arg6_star=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + if test "$emacs_cv_arg6_star" = yes; then + cat >>confdefs.h <<\_ACEOF +#define XRegisterIMInstantiateCallback_arg6 XPointer* +_ACEOF + + else + cat >>confdefs.h <<\_ACEOF +#define XRegisterIMInstantiateCallback_arg6 XPointer +_ACEOF + + fi + CFLAGS=$late_CFLAGS +fi + ### Use -lXpm if available, unless `--with-xpm=no'. HAVE_XPM=no if test "${HAVE_X11}" = "yes"; then @@ -8847,7 +11727,6 @@ else echo "$as_me:$LINENO: checking X11/xpm.h usability" >&5 echo $ECHO_N "checking X11/xpm.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8858,11 +11737,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8875,7 +11764,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -8883,7 +11772,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking X11/xpm.h presence" >&5 echo $ECHO_N "checking X11/xpm.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8901,6 +11789,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -8920,33 +11809,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: X11/xpm.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/xpm.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/xpm.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: X11/xpm.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/xpm.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: X11/xpm.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/xpm.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: X11/xpm.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -8972,7 +11860,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lXpm -lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8996,11 +11883,21 @@ XpmReadFileToPixmap (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9013,7 +11910,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_Xpm_XpmReadFileToPixmap=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_Xpm_XpmReadFileToPixmap" >&5 @@ -9029,7 +11927,6 @@ fi echo "$as_me:$LINENO: checking for XpmReturnAllocPixels preprocessor define" >&5 echo $ECHO_N "checking for XpmReturnAllocPixels preprocessor define... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9086,7 +11983,6 @@ else echo "$as_me:$LINENO: checking jerror.h usability" >&5 echo $ECHO_N "checking jerror.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9097,11 +11993,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9114,7 +12020,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -9122,7 +12028,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking jerror.h presence" >&5 echo $ECHO_N "checking jerror.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9140,6 +12045,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -9159,33 +12065,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: jerror.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: jerror.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jerror.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: jerror.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: jerror.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: jerror.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: jerror.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: jerror.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: jerror.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: jerror.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: jerror.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -9211,7 +12116,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9235,11 +12139,21 @@ jpeg_destroy_compress (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9252,7 +12166,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_jpeg_jpeg_destroy_compress=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_destroy_compress" >&5 @@ -9273,7 +12188,6 @@ fi _ACEOF cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9303,35 +12217,51 @@ fi HAVE_PNG=no if test "${HAVE_X11}" = "yes"; then if test "${with_png}" != "no"; then - if test "${ac_cv_header_png_h+set}" = set; then - echo "$as_me:$LINENO: checking for png.h" >&5 -echo $ECHO_N "checking for png.h... $ECHO_C" >&6 -if test "${ac_cv_header_png_h+set}" = set; then + # Debian unstable as of July 2003 has multiple libpngs, and puts png.h + # in /usr/include/libpng. + + +for ac_header in png.h libpng/png.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_png_h" >&5 -echo "${ECHO_T}$ac_cv_header_png_h" >&6 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? -echo "$as_me:$LINENO: checking png.h usability" >&5 -echo $ECHO_N "checking png.h usability... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -#include +#include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9344,21 +12274,20 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? -echo "$as_me:$LINENO: checking png.h presence" >&5 -echo $ECHO_N "checking png.h presence... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -9370,6 +12299,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -9389,51 +12319,59 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: png.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: png.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: png.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: png.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: png.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: png.h: proceeding with the preprocessor's result" >&2;} + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for png.h" >&5 -echo $ECHO_N "checking for png.h... $ECHO_C" >&6 -if test "${ac_cv_header_png_h+set}" = set; then +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_header_png_h=$ac_header_preproc + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + fi -echo "$as_me:$LINENO: result: $ac_cv_header_png_h" >&5 -echo "${ECHO_T}$ac_cv_header_png_h" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF fi -if test $ac_cv_header_png_h = yes; then - echo "$as_me:$LINENO: checking for png_get_channels in -lpng" >&5 + +done + + if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then + echo "$as_me:$LINENO: checking for png_get_channels in -lpng" >&5 echo $ECHO_N "checking for png_get_channels in -lpng... $ECHO_C" >&6 if test "${ac_cv_lib_png_png_get_channels+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -9441,7 +12379,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lpng -lz -lm $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9465,11 +12402,21 @@ png_get_channels (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9482,7 +12429,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_png_png_get_channels=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_png_png_get_channels" >&5 @@ -9491,9 +12439,7 @@ if test $ac_cv_lib_png_png_get_channels = yes; then HAVE_PNG=yes fi -fi - - + fi fi if test "${HAVE_PNG}" = "yes"; then @@ -9522,7 +12468,6 @@ else echo "$as_me:$LINENO: checking tiffio.h usability" >&5 echo $ECHO_N "checking tiffio.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9533,11 +12478,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9550,7 +12505,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -9558,7 +12513,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking tiffio.h presence" >&5 echo $ECHO_N "checking tiffio.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9576,6 +12530,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -9595,33 +12550,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: tiffio.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: tiffio.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: tiffio.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: tiffio.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: tiffio.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: tiffio.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: tiffio.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: tiffio.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: tiffio.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: tiffio.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: tiffio.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -9650,7 +12604,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $tifflibs $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9674,11 +12627,21 @@ TIFFGetVersion (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9691,7 +12654,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_tiff_TIFFGetVersion=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_tiff_TIFFGetVersion" >&5 @@ -9731,7 +12695,6 @@ else echo "$as_me:$LINENO: checking gif_lib.h usability" >&5 echo $ECHO_N "checking gif_lib.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9742,11 +12705,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9759,7 +12732,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -9767,7 +12740,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking gif_lib.h presence" >&5 echo $ECHO_N "checking gif_lib.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9785,6 +12757,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -9804,33 +12777,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: gif_lib.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: gif_lib.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: gif_lib.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: gif_lib.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: gif_lib.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: gif_lib.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: gif_lib.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: gif_lib.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: gif_lib.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: gif_lib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: gif_lib.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: gif_lib.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -9858,7 +12830,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lungif $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9882,11 +12853,21 @@ EGifPutExtensionLast (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9899,7 +12880,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ungif_EGifPutExtensionLast=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_ungif_EGifPutExtensionLast" >&5 @@ -9922,38 +12904,44 @@ _ACEOF fi fi -### Use Mac OS X Carbon API to implement GUI. -HAVE_CARBON=no -if test "${with_carbon}" != "no"; then - if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then - echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 -echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 -if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then +if test "${ac_cv_header_malloc_malloc_h+set}" = set; then + echo "$as_me:$LINENO: checking for malloc/malloc.h" >&5 +echo $ECHO_N "checking for malloc/malloc.h... $ECHO_C" >&6 +if test "${ac_cv_header_malloc_malloc_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 -echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 +echo "$as_me:$LINENO: result: $ac_cv_header_malloc_malloc_h" >&5 +echo "${ECHO_T}$ac_cv_header_malloc_malloc_h" >&6 else # Is the header compilable? -echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5 -echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking malloc/malloc.h usability" >&5 +echo $ECHO_N "checking malloc/malloc.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -#include +#include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9966,21 +12954,20 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? -echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5 -echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking malloc/malloc.h presence" >&5 +echo $ECHO_N "checking malloc/malloc.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -9992,6 +12979,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -10004,80 +12992,189 @@ else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 -echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 -if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_Carbon_Carbon_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 -echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 - + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: malloc/malloc.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: malloc/malloc.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: malloc/malloc.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: malloc/malloc.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: malloc/malloc.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: malloc/malloc.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: malloc/malloc.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: malloc/malloc.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: malloc/malloc.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for malloc/malloc.h" >&5 +echo $ECHO_N "checking for malloc/malloc.h... $ECHO_C" >&6 +if test "${ac_cv_header_malloc_malloc_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_malloc_malloc_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_malloc_malloc_h" >&5 +echo "${ECHO_T}$ac_cv_header_malloc_malloc_h" >&6 + +fi +if test $ac_cv_header_malloc_malloc_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC_MALLOC_H 1 +_ACEOF + +fi + + + +### Use Mac OS X Carbon API to implement GUI. +if test "${HAVE_CARBON}" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CARBON 1 +_ACEOF + + ## Specify the install directory + carbon_appdir= + if test "${carbon_appdir_x}" != ""; then + case ${carbon_appdir_x} in + y | ye | yes) carbon_appdir=/Applications ;; + * ) carbon_appdir=${carbon_appdir_x} ;; + esac + fi + # We also have mouse menus. + HAVE_MENUS=yes + + tmp_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -framework Carbon" + echo "$as_me:$LINENO: checking for CancelMenuTracking" >&5 +echo $ECHO_N "checking for CancelMenuTracking... $ECHO_C" >&6 +if test "${ac_cv_func_CancelMenuTracking+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define CancelMenuTracking to an innocuous variant, in case declares CancelMenuTracking. + For example, HP-UX 11i declares gettimeofday. */ +#define CancelMenuTracking innocuous_CancelMenuTracking + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char CancelMenuTracking (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef CancelMenuTracking + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char CancelMenuTracking (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_CancelMenuTracking) || defined (__stub___CancelMenuTracking) +choke me +#else +char (*f) () = CancelMenuTracking; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != CancelMenuTracking; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_CancelMenuTracking=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_CancelMenuTracking=no fi -if test $ac_cv_header_Carbon_Carbon_h = yes; then - HAVE_CARBON=yes +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi - - +echo "$as_me:$LINENO: result: $ac_cv_func_CancelMenuTracking" >&5 +echo "${ECHO_T}$ac_cv_func_CancelMenuTracking" >&6 +if test $ac_cv_func_CancelMenuTracking = yes; then + have_cmt=yes +else + have_cmt=no fi -if test "${HAVE_CARBON}" = "yes"; then + if test "$have_cmt" = yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_CARBON 1 +#define HAVE_CANCELMENUTRACKING 1 _ACEOF - window_system=mac - ## Specify the install directory - carbon_appdir= - if test "${carbon_appdir_x}" != ""; then - case ${carbon_appdir_x} in - y | ye | yes) carbon_appdir=/Applications ;; - * ) carbon_appdir=${carbon_appdir_x} ;; - esac fi - # We also have mouse menus. - HAVE_MENUS=yes + CFLAGS="$tmp_CFLAGS" fi ### Use session management (-lSM -lICE) if available @@ -10096,7 +13193,6 @@ else echo "$as_me:$LINENO: checking X11/SM/SMlib.h usability" >&5 echo $ECHO_N "checking X11/SM/SMlib.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10107,11 +13203,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10124,7 +13230,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -10132,7 +13238,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking X11/SM/SMlib.h presence" >&5 echo $ECHO_N "checking X11/SM/SMlib.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10150,6 +13255,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -10169,33 +13275,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: X11/SM/SMlib.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: X11/SM/SMlib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: X11/SM/SMlib.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -10219,9 +13324,8 @@ if test "${ac_cv_lib_SM_SmcOpenConnection+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lSM $LIBS" +LIBS="-lSM -lICE $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10232,696 +13336,1105 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char SmcOpenConnection (); +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char SmcOpenConnection (); +int +main () +{ +SmcOpenConnection (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_SM_SmcOpenConnection=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_SM_SmcOpenConnection=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_SM_SmcOpenConnection" >&5 +echo "${ECHO_T}$ac_cv_lib_SM_SmcOpenConnection" >&6 +if test $ac_cv_lib_SM_SmcOpenConnection = yes; then + HAVE_X_SM=yes +fi + +fi + + + + if test "${HAVE_X_SM}" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_X_SM 1 +_ACEOF + + case "$LIBS" in + *-lSM*) ;; + *) LIBS="-lSM -lICE $LIBS" ;; + esac + fi +fi + +# If netdb.h doesn't declare h_errno, we must declare it by hand. +echo "$as_me:$LINENO: checking whether netdb declares h_errno" >&5 +echo $ECHO_N "checking whether netdb declares h_errno... $ECHO_C" >&6 +if test "${emacs_cv_netdb_declares_h_errno+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return h_errno; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + emacs_cv_netdb_declares_h_errno=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +emacs_cv_netdb_declares_h_errno=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $emacs_cv_netdb_declares_h_errno" >&5 +echo "${ECHO_T}$emacs_cv_netdb_declares_h_errno" >&6 +if test $emacs_cv_netdb_declares_h_errno = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_H_ERRNO 1 +_ACEOF + +fi + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +echo "$as_me:$LINENO: checking for working alloca.h" >&5 +echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 +if test "${ac_cv_working_alloca_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_working_alloca_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_working_alloca_h=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +if test $ac_cv_working_alloca_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA_H 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for alloca" >&5 +echo $ECHO_N "checking for alloca... $ECHO_C" >&6 +if test "${ac_cv_func_alloca_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __GNUC__ +# define alloca __builtin_alloca +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# if HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +# endif +#endif + int main () { -SmcOpenConnection (); +char *p = (char *) alloca (1); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_SM_SmcOpenConnection=yes + ac_cv_func_alloca_works=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_SM_SmcOpenConnection=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +ac_cv_func_alloca_works=no fi -echo "$as_me:$LINENO: result: $ac_cv_lib_SM_SmcOpenConnection" >&5 -echo "${ECHO_T}$ac_cv_lib_SM_SmcOpenConnection" >&6 -if test $ac_cv_lib_SM_SmcOpenConnection = yes; then - HAVE_X_SM=yes -else - -lICE +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi +echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 -fi +if test $ac_cv_func_alloca_works = yes; then +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA 1 +_ACEOF +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. - if test "${HAVE_X_SM}" = "yes"; then +ALLOCA=alloca.$ac_objext cat >>confdefs.h <<\_ACEOF -#define HAVE_X_SM 1 +#define C_ALLOCA 1 _ACEOF - case "$LIBS" in - *-lSM*) ;; - *) LIBS="-lSM -lICE $LIBS" ;; - esac - fi + +echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 +if test "${ac_cv_os_cray+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if defined(CRAY) && ! defined(CRAY2) +webecray +#else +wenotbecray +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "webecray" >/dev/null 2>&1; then + ac_cv_os_cray=yes +else + ac_cv_os_cray=no fi +rm -f conftest* -# If netdb.h doesn't declare h_errno, we must declare it by hand. -echo "$as_me:$LINENO: checking whether netdb declares h_errno" >&5 -echo $ECHO_N "checking whether netdb declares h_errno... $ECHO_C" >&6 -if test "${emacs_cv_netdb_declares_h_errno+set}" = set; then +fi +echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +echo "${ECHO_T}$ac_cv_os_cray" >&6 +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + int main () { -return h_errno; +return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_netdb_declares_h_errno=yes + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_netdb_declares_h_errno=no +eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $emacs_cv_netdb_declares_h_errno" >&5 -echo "${ECHO_T}$emacs_cv_netdb_declares_h_errno" >&6 -if test $emacs_cv_netdb_declares_h_errno = yes; then +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_H_ERRNO 1 +cat >>confdefs.h <<_ACEOF +#define CRAY_STACKSEG_END $ac_func _ACEOF + break fi -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then + done +fi + +echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 +if test "${ac_cv_c_stack_direction+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_c_stack_direction=0 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +int +find_stack_direction () +{ + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; +} + int main () { -char *p = (char *) alloca (2 * sizeof (int)); - ; - return 0; + exit (find_stack_direction () < 0); } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_working_alloca_h=yes + ac_cv_c_stack_direction=1 else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_working_alloca_h=no +( exit $ac_status ) +ac_cv_c_stack_direction=-1 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 -if test $ac_cv_working_alloca_h = yes; then +fi +echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 +cat >>confdefs.h <<_ACEOF +#define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF + fi -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then + +# fmod, logb, and frexp are found in -lm on most systems. +# On HPUX 9.01, -lm does not contain logb, so check for sqrt. + +echo "$as_me:$LINENO: checking for sqrt in -lm" >&5 +echo $ECHO_N "checking for sqrt in -lm... $ECHO_C" >&6 +if test "${ac_cv_lib_m_sqrt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char sqrt (); int main () { -char *p = (char *) alloca (1); +sqrt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_alloca_works=yes + ac_cv_lib_m_sqrt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_alloca_works=no +ac_cv_lib_m_sqrt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 - -if test $ac_cv_func_alloca_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA 1 +echo "$as_me:$LINENO: result: $ac_cv_lib_m_sqrt" >&5 +echo "${ECHO_T}$ac_cv_lib_m_sqrt" >&6 +if test $ac_cv_lib_m_sqrt = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 _ACEOF -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. + LIBS="-lm $LIBS" -ALLOCA=alloca.$ac_objext +fi -cat >>confdefs.h <<\_ACEOF -#define C_ALLOCA 1 -_ACEOF +# Check for mail-locking functions in a "mail" library. Probably this should +# have the same check as for liblockfile below. -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then +echo "$as_me:$LINENO: checking for maillock in -lmail" >&5 +echo $ECHO_N "checking for maillock in -lmail... $ECHO_C" >&6 +if test "${ac_cv_lib_mail_maillock+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmail $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if defined(CRAY) && ! defined(CRAY2) -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* -fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" -{ #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - +char maillock (); int main () { -return f != $ac_func; +maillock (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + ac_cv_lib_mail_maillock=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" +ac_cv_lib_mail_maillock=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func +echo "$as_me:$LINENO: result: $ac_cv_lib_mail_maillock" >&5 +echo "${ECHO_T}$ac_cv_lib_mail_maillock" >&6 +if test $ac_cv_lib_mail_maillock = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBMAIL 1 _ACEOF - break -fi + LIBS="-lmail $LIBS" - done fi -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then + +echo "$as_me:$LINENO: checking for maillock in -llockfile" >&5 +echo $ECHO_N "checking for maillock in -llockfile... $ECHO_C" >&6 +if test "${ac_cv_lib_lockfile_maillock+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-llockfile $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -int -find_stack_direction () -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char maillock (); int main () { - exit (find_stack_direction () < 0); +maillock (); + ; + return 0; } _ACEOF -rm -f conftest$ac_exeext +rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_c_stack_direction=1 + ac_cv_lib_lockfile_maillock=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_c_stack_direction=-1 +ac_cv_lib_lockfile_maillock=no fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +echo "$as_me:$LINENO: result: $ac_cv_lib_lockfile_maillock" >&5 +echo "${ECHO_T}$ac_cv_lib_lockfile_maillock" >&6 +if test $ac_cv_lib_lockfile_maillock = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLOCKFILE 1 +_ACEOF + + LIBS="-llockfile $LIBS" + fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF +# If we have the shared liblockfile, assume we must use it for mail +# locking (e.g. Debian). If we couldn't link against liblockfile +# (no liblockfile.a installed), ensure that we don't need to. +if test "$ac_cv_lib_lockfile_maillock" = no; then + # Extract the first word of "liblockfile.so", so it can be a program name with args. +set dummy liblockfile.so; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_liblockfile+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$liblockfile"; then + ac_cv_prog_liblockfile="$liblockfile" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="/usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_liblockfile="yes" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + test -z "$ac_cv_prog_liblockfile" && ac_cv_prog_liblockfile="no" +fi +fi +liblockfile=$ac_cv_prog_liblockfile +if test -n "$liblockfile"; then + echo "$as_me:$LINENO: result: $liblockfile" >&5 +echo "${ECHO_T}$liblockfile" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + if test $ac_cv_prog_liblockfile = yes; then + { { echo "$as_me:$LINENO: error: Shared liblockfile found but can't link against it. +This probably means that movemail could lose mail. +There may be a \`development' package to install containing liblockfile." >&5 +echo "$as_me: error: Shared liblockfile found but can't link against it. +This probably means that movemail could lose mail. +There may be a \`development' package to install containing liblockfile." >&2;} + { (exit 1); exit 1; }; } + else : + fi fi - -# fmod, logb, and frexp are found in -lm on most systems. -# On HPUX 9.01, -lm does not contain logb, so check for sqrt. - -echo "$as_me:$LINENO: checking for sqrt in -lm" >&5 -echo $ECHO_N "checking for sqrt in -lm... $ECHO_C" >&6 -if test "${ac_cv_lib_m_sqrt+set}" = set; then +for ac_func in touchlock +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" +{ #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char sqrt (); +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + int main () { -sqrt (); +return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_m_sqrt=yes + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_m_sqrt=no +eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_lib_m_sqrt" >&5 -echo "${ECHO_T}$ac_cv_lib_m_sqrt" >&6 -if test $ac_cv_lib_m_sqrt = yes; then +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF - LIBS="-lm $LIBS" - fi +done -# Check for mail-locking functions in a "mail" library - -echo "$as_me:$LINENO: checking for maillock in -lmail" >&5 -echo $ECHO_N "checking for maillock in -lmail... $ECHO_C" >&6 -if test "${ac_cv_lib_mail_maillock+set}" = set; then +for ac_header in maillock.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmail $LIBS" + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char maillock (); -int -main () -{ -maillock (); - ; - return 0; -} +$ac_includes_default +#include <$ac_header> _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_mail_maillock=yes + ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_mail_maillock=no +ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes fi -echo "$as_me:$LINENO: result: $ac_cv_lib_mail_maillock" >&5 -echo "${ECHO_T}$ac_cv_lib_mail_maillock" >&6 -if test $ac_cv_lib_mail_maillock = yes; then +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_LIBMAIL 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - LIBS="-lmail $LIBS" +fi + +done + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -fi -echo "$as_me:$LINENO: checking for maillock in -llockfile" >&5 -echo $ECHO_N "checking for maillock in -llockfile... $ECHO_C" >&6 -if test "${ac_cv_lib_lockfile_maillock+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-llockfile $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char maillock (); -int -main () -{ -maillock (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_lockfile_maillock=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_lockfile_maillock=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_lockfile_maillock" >&5 -echo "${ECHO_T}$ac_cv_lib_lockfile_maillock" >&6 -if test $ac_cv_lib_lockfile_maillock = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBLOCKFILE 1 -_ACEOF - LIBS="-llockfile $LIBS" -fi -# If we have the shared liblockfile, assume we must use it for mail -# locking (e.g. Debian). If we couldn't link against liblockfile -# (no liblockfile.a installed), ensure that we don't need to. -if test "$ac_cv_lib_lockfile_maillock" = no; then - # Extract the first word of "liblockfile.so", so it can be a program name with args. -set dummy liblockfile.so; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_liblockfile+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$liblockfile"; then - ac_cv_prog_liblockfile="$liblockfile" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="/usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_liblockfile="yes" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - test -z "$ac_cv_prog_liblockfile" && ac_cv_prog_liblockfile="no" -fi -fi -liblockfile=$ac_cv_prog_liblockfile -if test -n "$liblockfile"; then - echo "$as_me:$LINENO: result: $liblockfile" >&5 -echo "${ECHO_T}$liblockfile" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - if test $ac_cv_prog_liblockfile = yes; then - { { echo "$as_me:$LINENO: error: Shared liblockfile found but can't link against it. -This probably means that movemail could lose mail. -There may be a \`development' package to install containing liblockfile." >&5 -echo "$as_me: error: Shared liblockfile found but can't link against it. -This probably means that movemail could lose mail. -There may be a \`development' package to install containing liblockfile." >&2;} - { (exit 1); exit 1; }; } - else -cat >>confdefs.h <<\_ACEOF -#define LIBMAIL -llockfile -_ACEOF - fi - else : -fi -for ac_func in touchlock + + +for ac_func in gethostname getdomainname dup2 \ +rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \ +random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ +strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ +utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \ +__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ +sendto recvfrom getsockopt setsockopt getsockname getpeername \ +gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ +memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -10930,21 +14443,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -10975,11 +14495,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10992,7 +14522,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -11005,7 +14536,161 @@ fi done -for ac_header in maillock.h + +for ac_header in sys/un.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + +for ac_header in stdlib.h sys/time.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -11021,7 +14706,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11032,11 +14716,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11049,7 +14743,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -11057,7 +14751,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11075,6 +14768,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -11094,33 +14788,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -11131,7 +14824,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -11147,97 +14840,365 @@ fi done +for ac_func in alarm +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +fi +done +echo "$as_me:$LINENO: checking for working mktime" >&5 +echo $ECHO_N "checking for working mktime... $ECHO_C" >&6 +if test "${ac_cv_func_working_mktime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_working_mktime=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Test program from Paul Eggert and Tony Leneis. */ +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif +#if HAVE_STDLIB_H +# include +#endif +#if HAVE_UNISTD_H +# include +#endif +#if !HAVE_ALARM +# define alarm(X) /* empty */ +#endif +/* Work around redefinition to rpl_putenv by other config tests. */ +#undef putenv +static time_t time_t_max; +static time_t time_t_min; +/* Values we'll use to set the TZ environment variable. */ +static char *tz_strings[] = { + (char *) 0, "TZ=GMT0", "TZ=JST-9", + "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" +}; +#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) +/* Fail if mktime fails to convert a date in the spring-forward gap. + Based on a problem report from Andreas Jaeger. */ +static void +spring_forward_gap () +{ + /* glibc (up to about 1998-10-07) failed this test. */ + struct tm tm; + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + tm.tm_year = 98; + tm.tm_mon = 3; + tm.tm_mday = 5; + tm.tm_hour = 2; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + if (mktime (&tm) == (time_t)-1) + exit (1); +} +static void +mktime_test1 (now) + time_t now; +{ + struct tm *lt; + if ((lt = localtime (&now)) && mktime (lt) != now) + exit (1); +} +static void +mktime_test (now) + time_t now; +{ + mktime_test1 (now); + mktime_test1 ((time_t) (time_t_max - now)); + mktime_test1 ((time_t) (time_t_min + now)); +} +static void +irix_6_4_bug () +{ + /* Based on code from Ariel Faigon. */ + struct tm tm; + tm.tm_year = 96; + tm.tm_mon = 3; + tm.tm_mday = 0; + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + mktime (&tm); + if (tm.tm_mon != 2 || tm.tm_mday != 31) + exit (1); +} +static void +bigtime_test (j) + int j; +{ + struct tm tm; + time_t now; + tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; + now = mktime (&tm); + if (now != (time_t) -1) + { + struct tm *lt = localtime (&now); + if (! (lt + && lt->tm_year == tm.tm_year + && lt->tm_mon == tm.tm_mon + && lt->tm_mday == tm.tm_mday + && lt->tm_hour == tm.tm_hour + && lt->tm_min == tm.tm_min + && lt->tm_sec == tm.tm_sec + && lt->tm_yday == tm.tm_yday + && lt->tm_wday == tm.tm_wday + && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) + == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) + exit (1); + } +} +int +main () +{ + time_t t, delta; + int i, j; + /* This test makes some buggy mktime implementations loop. + Give up after 60 seconds; a mktime slower than that + isn't worth using anyway. */ + alarm (60); + for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) + continue; + time_t_max--; + if ((time_t) -1 < 0) + for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) + continue; + delta = time_t_max / 997; /* a suitable prime number */ + for (i = 0; i < N_STRINGS; i++) + { + if (tz_strings[i]) + putenv (tz_strings[i]); + for (t = 0; t <= time_t_max - delta; t += delta) + mktime_test (t); + mktime_test ((time_t) 1); + mktime_test ((time_t) (60 * 60)); + mktime_test ((time_t) (60 * 60 * 24)); + for (j = 1; 0 < j; j *= 2) + bigtime_test (j); + bigtime_test (j - 1); + } + irix_6_4_bug (); + spring_forward_gap (); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_working_mktime=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_func_working_mktime=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 +echo "${ECHO_T}$ac_cv_func_working_mktime" >&6 +if test $ac_cv_func_working_mktime = no; then + case $LIBOBJS in + "mktime.$ac_objext" | \ + *" mktime.$ac_objext" | \ + "mktime.$ac_objext "* | \ + *" mktime.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS mktime.$ac_objext" ;; +esac +fi +if test "$ac_cv_func_working_mktime" = no; then +cat >>confdefs.h <<\_ACEOF +#define BROKEN_MKTIME 1 +_ACEOF +fi +ac_have_func=no # yes means we've found a way to get the load average. +# Make sure getloadavg.c is where it belongs, at configure-time. +test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" || + { { echo "$as_me:$LINENO: error: $srcdir/$ac_config_libobj_dir/getloadavg.c is missing" >&5 +echo "$as_me: error: $srcdir/$ac_config_libobj_dir/getloadavg.c is missing" >&2;} + { (exit 1); exit 1; }; } +ac_save_LIBS=$LIBS - - - - - - - - - - - - - - - - - - - - - - - - - -for ac_func in gethostname getdomainname dup2 \ -rename closedir mkdir rmdir sysinfo \ -random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ -strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ -utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \ -__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ -sendto recvfrom getsockopt setsockopt getsockname getpeername \ -gai_strerror mkstemp getline getdelim mremap memmove fsync bzero memset -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then +# Check for getloadavg, but be sure not to touch the cache variable. +(echo "$as_me:$LINENO: checking for getloadavg" >&5 +echo $ECHO_N "checking for getloadavg... $ECHO_C" >&6 +if test "${ac_cv_func_getloadavg+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define getloadavg to an innocuous variant, in case declares getloadavg. + For example, HP-UX 11i declares gettimeofday. */ +#define getloadavg innocuous_getloadavg + /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. + which can conflict with char getloadavg (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef getloadavg + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -11245,14 +15206,14 @@ extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char $ac_func (); +char getloadavg (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined (__stub_getloadavg) || defined (__stub___getloadavg) choke me #else -char (*f) () = $ac_func; +char (*f) () = getloadavg; #endif #ifdef __cplusplus } @@ -11261,704 +15222,528 @@ char (*f) () = $ac_func; int main () { -return f != $ac_func; +return f != getloadavg; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + ac_cv_func_getloadavg=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" +ac_cv_func_getloadavg=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - +echo "$as_me:$LINENO: result: $ac_cv_func_getloadavg" >&5 +echo "${ECHO_T}$ac_cv_func_getloadavg" >&6 +if test $ac_cv_func_getloadavg = yes; then + exit 0 +else + exit 1 fi -done - +) && ac_have_func=yes +# On HPUX9, an unprivileged user can get load averages through this function. -for ac_header in sys/un.h +for ac_func in pstat_getdynamic do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +sed 's/^/| /' conftest.$ac_ext >&5 +eval "$as_ac_var=no" fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi - done +# Solaris has libkstat which does not require root. - -for ac_header in sys/time.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +echo "$as_me:$LINENO: checking for kstat_open in -lkstat" >&5 +echo $ECHO_N "checking for kstat_open in -lkstat... $ECHO_C" >&6 +if test "${ac_cv_lib_kstat_kstat_open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkstat $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char kstat_open (); +int +main () +{ +kstat_open (); + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_header_compiler=yes + ac_cv_lib_kstat_kstat_open=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no +ac_cv_lib_kstat_kstat_open=no fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_kstat_kstat_open" >&5 +echo "${ECHO_T}$ac_cv_lib_kstat_kstat_open" >&6 +if test $ac_cv_lib_kstat_kstat_open = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBKSTAT 1 +_ACEOF -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + LIBS="-lkstat $LIBS" + +fi + +test $ac_cv_lib_kstat_kstat_open = yes && ac_have_func=yes + +# Some systems with -lutil have (and need) -lkvm as well, some do not. +# On Solaris, -lkvm requires nlist from -lelf, so check that first +# to get the right answer into the cache. +# For kstat on solaris, we need libelf to force the definition of SVR4 below. +if test $ac_have_func = no; then + echo "$as_me:$LINENO: checking for elf_begin in -lelf" >&5 +echo $ECHO_N "checking for elf_begin in -lelf... $ECHO_C" >&6 +if test "${ac_cv_lib_elf_elf_begin+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lelf $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <$ac_header> + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char elf_begin (); +int +main () +{ +elf_begin (); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_elf_elf_begin=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no +ac_cv_lib_elf_elf_begin=no fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - +echo "$as_me:$LINENO: result: $ac_cv_lib_elf_elf_begin" >&5 +echo "${ECHO_T}$ac_cv_lib_elf_elf_begin" >&6 +if test $ac_cv_lib_elf_elf_begin = yes; then + LIBS="-lelf $LIBS" fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF fi - -done - - -for ac_func in alarm -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then +if test $ac_have_func = no; then + echo "$as_me:$LINENO: checking for kvm_open in -lkvm" >&5 +echo $ECHO_N "checking for kvm_open in -lkvm... $ECHO_C" >&6 +if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkvm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" -{ #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - +char kvm_open (); int main () { -return f != $ac_func; +kvm_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + ac_cv_lib_kvm_kvm_open=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" +ac_cv_lib_kvm_kvm_open=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - +echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_kvm_open" >&5 +echo "${ECHO_T}$ac_cv_lib_kvm_kvm_open" >&6 +if test $ac_cv_lib_kvm_kvm_open = yes; then + LIBS="-lkvm $LIBS" fi -done -echo "$as_me:$LINENO: checking for working mktime" >&5 -echo $ECHO_N "checking for working mktime... $ECHO_C" >&6 -if test "${ac_cv_func_working_mktime+set}" = set; then + # Check for the 4.4BSD definition of getloadavg. + echo "$as_me:$LINENO: checking for getloadavg in -lutil" >&5 +echo $ECHO_N "checking for getloadavg in -lutil... $ECHO_C" >&6 +if test "${ac_cv_lib_util_getloadavg+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then - ac_cv_func_working_mktime=no -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Test program from Paul Eggert and Tony Leneis. */ -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#if HAVE_UNISTD_H -# include -#endif -#if !HAVE_ALARM -# define alarm(X) /* empty */ +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" #endif - -/* Work around redefinition to rpl_putenv by other config tests. */ -#undef putenv - -static time_t time_t_max; - -/* Values we'll use to set the TZ environment variable. */ -static const char *const tz_strings[] = { - (const char *) 0, "TZ=GMT0", "TZ=JST-9", - "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" -}; -#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) - -/* Fail if mktime fails to convert a date in the spring-forward gap. - Based on a problem report from Andreas Jaeger. */ -static void -spring_forward_gap () -{ - /* glibc (up to about 1998-10-07) failed this test. */ - struct tm tm; - - /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" - instead of "TZ=America/Vancouver" in order to detect the bug even - on systems that don't support the Olson extension, or don't have the - full zoneinfo tables installed. */ - putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); - - tm.tm_year = 98; - tm.tm_mon = 3; - tm.tm_mday = 5; - tm.tm_hour = 2; - tm.tm_min = 0; - tm.tm_sec = 0; - tm.tm_isdst = -1; - if (mktime (&tm) == (time_t)-1) - exit (1); -} - -static void -mktime_test (now) - time_t now; -{ - struct tm *lt; - if ((lt = localtime (&now)) && mktime (lt) != now) - exit (1); - now = time_t_max - now; - if ((lt = localtime (&now)) && mktime (lt) != now) - exit (1); -} - -static void -irix_6_4_bug () -{ - /* Based on code from Ariel Faigon. */ - struct tm tm; - tm.tm_year = 96; - tm.tm_mon = 3; - tm.tm_mday = 0; - tm.tm_hour = 0; - tm.tm_min = 0; - tm.tm_sec = 0; - tm.tm_isdst = -1; - mktime (&tm); - if (tm.tm_mon != 2 || tm.tm_mday != 31) - exit (1); -} - -static void -bigtime_test (j) - int j; -{ - struct tm tm; - time_t now; - tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; - now = mktime (&tm); - if (now != (time_t) -1) - { - struct tm *lt = localtime (&now); - if (! (lt - && lt->tm_year == tm.tm_year - && lt->tm_mon == tm.tm_mon - && lt->tm_mday == tm.tm_mday - && lt->tm_hour == tm.tm_hour - && lt->tm_min == tm.tm_min - && lt->tm_sec == tm.tm_sec - && lt->tm_yday == tm.tm_yday - && lt->tm_wday == tm.tm_wday - && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) - == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - exit (1); - } -} - +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getloadavg (); int main () { - time_t t, delta; - int i, j; - - /* This test makes some buggy mktime implementations loop. - Give up after 60 seconds; a mktime slower than that - isn't worth using anyway. */ - alarm (60); - - for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) - continue; - time_t_max--; - delta = time_t_max / 997; /* a suitable prime number */ - for (i = 0; i < N_STRINGS; i++) - { - if (tz_strings[i]) - putenv (tz_strings[i]); - - for (t = 0; t <= time_t_max - delta; t += delta) - mktime_test (t); - mktime_test ((time_t) 60 * 60); - mktime_test ((time_t) 60 * 60 * 24); - - for (j = 1; 0 < j; j *= 2) - bigtime_test (j); - bigtime_test (j - 1); - } - irix_6_4_bug (); - spring_forward_gap (); - exit (0); +getloadavg (); + ; + return 0; } _ACEOF -rm -f conftest$ac_exeext +rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_working_mktime=yes + ac_cv_lib_util_getloadavg=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_working_mktime=no -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +ac_cv_lib_util_getloadavg=no fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 -echo "${ECHO_T}$ac_cv_func_working_mktime" >&6 -if test $ac_cv_func_working_mktime = no; then - LIBOBJS="$LIBOBJS mktime.$ac_objext" +echo "$as_me:$LINENO: result: $ac_cv_lib_util_getloadavg" >&5 +echo "${ECHO_T}$ac_cv_lib_util_getloadavg" >&6 +if test $ac_cv_lib_util_getloadavg = yes; then + LIBS="-lutil $LIBS" ac_have_func=yes ac_cv_func_getloadavg_setgid=yes fi -if test "$ac_cv_func_working_mktime" = no; then - -cat >>confdefs.h <<\_ACEOF -#define BROKEN_MKTIME 1 -_ACEOF - fi -ac_have_func=no # yes means we've found a way to get the load average. - -# Make sure getloadavg.c is where it belongs, at configure-time. -test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" || - { { echo "$as_me:$LINENO: error: $srcdir/$ac_config_libobj_dir/getloadavg.c is missing" >&5 -echo "$as_me: error: $srcdir/$ac_config_libobj_dir/getloadavg.c is missing" >&2;} - { (exit 1); exit 1; }; } - -ac_save_LIBS=$LIBS - -# Check for getloadavg, but be sure not to touch the cache variable. -(echo "$as_me:$LINENO: checking for getloadavg" >&5 -echo $ECHO_N "checking for getloadavg... $ECHO_C" >&6 -if test "${ac_cv_func_getloadavg+set}" = set; then +if test $ac_have_func = no; then + # There is a commonly available library for RS/6000 AIX. + # Since it is not a standard part of AIX, it might be installed locally. + ac_getloadavg_LIBS=$LIBS + LIBS="-L/usr/local/lib $LIBS" + echo "$as_me:$LINENO: checking for getloadavg in -lgetloadavg" >&5 +echo $ECHO_N "checking for getloadavg in -lgetloadavg... $ECHO_C" >&6 +if test "${ac_cv_lib_getloadavg_getloadavg+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgetloadavg $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char getloadavg (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" -{ #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char getloadavg (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_getloadavg) || defined (__stub___getloadavg) -choke me -#else -char (*f) () = getloadavg; -#endif -#ifdef __cplusplus -} -#endif - int main () { -return f != getloadavg; +getloadavg (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_getloadavg=yes + ac_cv_lib_getloadavg_getloadavg=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_getloadavg=no +ac_cv_lib_getloadavg_getloadavg=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_getloadavg" >&5 -echo "${ECHO_T}$ac_cv_func_getloadavg" >&6 -if test $ac_cv_func_getloadavg = yes; then - exit 0 +echo "$as_me:$LINENO: result: $ac_cv_lib_getloadavg_getloadavg" >&5 +echo "${ECHO_T}$ac_cv_lib_getloadavg_getloadavg" >&6 +if test $ac_cv_lib_getloadavg_getloadavg = yes; then + LIBS="-lgetloadavg $LIBS" else - exit 1 + LIBS=$ac_getloadavg_LIBS fi -) && ac_have_func=yes -# On HPUX9, an unprivileged user can get load averages through this function. +fi -for ac_func in pstat_getdynamic +# Make sure it is really in the library, if we think we found it, +# otherwise set up the replacement function. + +for ac_func in getloadavg do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -11967,21 +15752,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -12012,11 +15804,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12029,7 +15831,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -12038,210 +15841,175 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -fi -done +else + case $LIBOBJS in + "getloadavg.$ac_objext" | \ + *" getloadavg.$ac_objext" | \ + "getloadavg.$ac_objext "* | \ + *" getloadavg.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS getloadavg.$ac_objext" ;; +esac -# Solaris has libkstat which does not require root. +cat >>confdefs.h <<\_ACEOF +#define C_GETLOADAVG 1 +_ACEOF -echo "$as_me:$LINENO: checking for kstat_open in -lkstat" >&5 -echo $ECHO_N "checking for kstat_open in -lkstat... $ECHO_C" >&6 -if test "${ac_cv_lib_kstat_kstat_open+set}" = set; then +# Figure out what our getloadavg.c needs. +ac_have_func=no +if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5 +echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_dg_sys_info_h" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lkstat $LIBS" + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/dg_sys_info.h usability" >&5 +echo $ECHO_N "checking sys/dg_sys_info.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char kstat_open (); -int -main () -{ -kstat_open (); - ; - return 0; -} +$ac_includes_default +#include _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_kstat_kstat_open=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_kstat_kstat_open=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_kstat_kstat_open" >&5 -echo "${ECHO_T}$ac_cv_lib_kstat_kstat_open" >&6 -if test $ac_cv_lib_kstat_kstat_open = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBKSTAT 1 -_ACEOF - - LIBS="-lkstat $LIBS" - -fi - -test $ac_cv_lib_kstat_kstat_open = yes && ac_have_func=yes - -# Some systems with -lutil have (and need) -lkvm as well, some do not. -# On Solaris, -lkvm requires nlist from -lelf, so check that first -# to get the right answer into the cache. -# For kstat on solaris, we need libelf to force the definition of SVR4 below. -if test $ac_have_func = no; then - echo "$as_me:$LINENO: checking for elf_begin in -lelf" >&5 -echo $ECHO_N "checking for elf_begin in -lelf... $ECHO_C" >&6 -if test "${ac_cv_lib_elf_elf_begin+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lelf $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char elf_begin (); -int -main () -{ -elf_begin (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_elf_elf_begin=yes + ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_elf_elf_begin=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_elf_elf_begin" >&5 -echo "${ECHO_T}$ac_cv_lib_elf_elf_begin" >&6 -if test $ac_cv_lib_elf_elf_begin = yes; then - LIBS="-lelf $LIBS" +ac_header_compiler=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -fi -if test $ac_have_func = no; then - echo "$as_me:$LINENO: checking for kvm_open in -lkvm" >&5 -echo $ECHO_N "checking for kvm_open in -lkvm... $ECHO_C" >&6 -if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lkvm $LIBS" +# Is the header present? +echo "$as_me:$LINENO: checking sys/dg_sys_info.h presence" >&5 +echo $ECHO_N "checking sys/dg_sys_info.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char kvm_open (); -int -main () -{ -kvm_open (); - ; - return 0; -} +#include _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_kvm_kvm_open=yes + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_kvm_kvm_open=no + ac_header_preproc=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5 +echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_dg_sys_info_h=$ac_header_preproc fi -echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_kvm_open" >&5 -echo "${ECHO_T}$ac_cv_lib_kvm_kvm_open" >&6 -if test $ac_cv_lib_kvm_kvm_open = yes; then - LIBS="-lkvm $LIBS" +echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_dg_sys_info_h" >&6 + fi +if test $ac_cv_header_sys_dg_sys_info_h = yes; then + ac_have_func=yes - # Check for the 4.4BSD definition of getloadavg. - echo "$as_me:$LINENO: checking for getloadavg in -lutil" >&5 -echo $ECHO_N "checking for getloadavg in -lutil... $ECHO_C" >&6 -if test "${ac_cv_lib_util_getloadavg+set}" = set; then +cat >>confdefs.h <<\_ACEOF +#define DGUX 1 +_ACEOF + + +echo "$as_me:$LINENO: checking for dg_sys_info in -ldgc" >&5 +echo $ECHO_N "checking for dg_sys_info in -ldgc... $ECHO_C" >&6 +if test "${ac_cv_lib_dgc_dg_sys_info+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lutil $LIBS" +LIBS="-ldgc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12254,116 +16022,204 @@ extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char getloadavg (); +char dg_sys_info (); int main () { -getloadavg (); +dg_sys_info (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_util_getloadavg=yes + ac_cv_lib_dgc_dg_sys_info=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_util_getloadavg=no +ac_cv_lib_dgc_dg_sys_info=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_util_getloadavg" >&5 -echo "${ECHO_T}$ac_cv_lib_util_getloadavg" >&6 -if test $ac_cv_lib_util_getloadavg = yes; then - LIBS="-lutil $LIBS" ac_have_func=yes ac_cv_func_getloadavg_setgid=yes +echo "$as_me:$LINENO: result: $ac_cv_lib_dgc_dg_sys_info" >&5 +echo "${ECHO_T}$ac_cv_lib_dgc_dg_sys_info" >&6 +if test $ac_cv_lib_dgc_dg_sys_info = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDGC 1 +_ACEOF + + LIBS="-ldgc $LIBS" + fi fi -if test $ac_have_func = no; then - # There is a commonly available library for RS/6000 AIX. - # Since it is not a standard part of AIX, it might be installed locally. - ac_getloadavg_LIBS=$LIBS - LIBS="-L/usr/local/lib $LIBS" - echo "$as_me:$LINENO: checking for getloadavg in -lgetloadavg" >&5 -echo $ECHO_N "checking for getloadavg in -lgetloadavg... $ECHO_C" >&6 -if test "${ac_cv_lib_getloadavg_getloadavg+set}" = set; then + + +if test "${ac_cv_header_locale_h+set}" = set; then + echo "$as_me:$LINENO: checking for locale.h" >&5 +echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 +if test "${ac_cv_header_locale_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_locale_h" >&5 +echo "${ECHO_T}$ac_cv_header_locale_h" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgetloadavg $LIBS" + # Is the header compilable? +echo "$as_me:$LINENO: checking locale.h usability" >&5 +echo $ECHO_N "checking locale.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getloadavg (); -int -main () -{ -getloadavg (); - ; - return 0; -} +$ac_includes_default +#include _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_getloadavg_getloadavg=yes + ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_getloadavg_getloadavg=no +ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking locale.h presence" >&5 +echo $ECHO_N "checking locale.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes fi -echo "$as_me:$LINENO: result: $ac_cv_lib_getloadavg_getloadavg" >&5 -echo "${ECHO_T}$ac_cv_lib_getloadavg_getloadavg" >&6 -if test $ac_cv_lib_getloadavg_getloadavg = yes; then - LIBS="-lgetloadavg $LIBS" +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes else - LIBS=$ac_getloadavg_LIBS + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: locale.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: locale.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: locale.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for locale.h" >&5 +echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 +if test "${ac_cv_header_locale_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_locale_h=$ac_header_preproc fi +echo "$as_me:$LINENO: result: $ac_cv_header_locale_h" >&5 +echo "${ECHO_T}$ac_cv_header_locale_h" >&6 fi -# Make sure it is really in the library, if we think we found it, -# otherwise set up the replacement function. -for ac_func in getloadavg + +for ac_func in setlocale do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -12372,21 +16228,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -12417,70 +16280,253 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# We cannot check for , because Solaris 2 does not use dwarf (it +# uses stabs), but it is still SVR4. We cannot check for because +# Irix 4.0.5F has the header but not the library. +if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes; then + ac_have_func=yes + +cat >>confdefs.h <<\_ACEOF +#define SVR4 1 +_ACEOF + +fi + +if test $ac_have_func = no; then + if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then + echo "$as_me:$LINENO: checking for inq_stats/cpustats.h" >&5 +echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_inq_stats_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_inq_stats_cpustats_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking inq_stats/cpustats.h usability" >&5 +echo $ECHO_N "checking inq_stats/cpustats.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking inq_stats/cpustats.h presence" >&5 +echo $ECHO_N "checking inq_stats/cpustats.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for inq_stats/cpustats.h" >&5 +echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_inq_stats_cpustats_h=$ac_header_preproc fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_cv_header_inq_stats_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_inq_stats_cpustats_h" >&6 + fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +if test $ac_cv_header_inq_stats_cpustats_h = yes; then + ac_have_func=yes + +cat >>confdefs.h <<\_ACEOF +#define UMAX 1 _ACEOF -else - LIBOBJS="$LIBOBJS getloadavg.$ac_objext" cat >>confdefs.h <<\_ACEOF -#define C_GETLOADAVG 1 +#define UMAX4_3 1 _ACEOF -# Figure out what our getloadavg.c needs. -ac_have_func=no -if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then - echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5 -echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 -if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then +fi + + +fi + +if test $ac_have_func = no; then + if test "${ac_cv_header_sys_cpustats_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/cpustats.h" >&5 +echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_cpustats_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_dg_sys_info_h" >&6 +echo "$as_me:$LINENO: result: $ac_cv_header_sys_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_cpustats_h" >&6 else # Is the header compilable? -echo "$as_me:$LINENO: checking sys/dg_sys_info.h usability" >&5 -echo $ECHO_N "checking sys/dg_sys_info.h usability... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking sys/cpustats.h usability" >&5 +echo $ECHO_N "checking sys/cpustats.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -#include +#include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12493,21 +16539,20 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? -echo "$as_me:$LINENO: checking sys/dg_sys_info.h presence" >&5 -echo $ECHO_N "checking sys/dg_sys_info.h presence... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking sys/cpustats.h presence" >&5 +echo $ECHO_N "checking sys/cpustats.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -12519,6 +16564,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -12538,153 +16584,253 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/cpustats.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;} + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/cpustats.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/cpustats.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/cpustats.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/cpustats.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5 -echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 -if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then +echo "$as_me:$LINENO: checking for sys/cpustats.h" >&5 +echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_cpustats_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_header_sys_dg_sys_info_h=$ac_header_preproc + ac_cv_header_sys_cpustats_h=$ac_header_preproc fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_dg_sys_info_h" >&6 +echo "$as_me:$LINENO: result: $ac_cv_header_sys_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_cpustats_h" >&6 fi -if test $ac_cv_header_sys_dg_sys_info_h = yes; then - ac_have_func=yes - -cat >>confdefs.h <<\_ACEOF -#define DGUX 1 +if test $ac_cv_header_sys_cpustats_h = yes; then + ac_have_func=yes; cat >>confdefs.h <<\_ACEOF +#define UMAX 1 _ACEOF +fi + -echo "$as_me:$LINENO: checking for dg_sys_info in -ldgc" >&5 -echo $ECHO_N "checking for dg_sys_info in -ldgc... $ECHO_C" >&6 -if test "${ac_cv_lib_dgc_dg_sys_info+set}" = set; then +fi + +if test $ac_have_func = no; then + +for ac_header in mach/mach.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldgc $LIBS" + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dg_sys_info (); -int -main () -{ -dg_sys_info (); - ; - return 0; -} +$ac_includes_default +#include <$ac_header> _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_lib_dgc_dg_sys_info=yes + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dgc_dg_sys_info=no + eval "$as_ac_Header=\$ac_header_preproc" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dgc_dg_sys_info" >&5 -echo "${ECHO_T}$ac_cv_lib_dgc_dg_sys_info" >&6 -if test $ac_cv_lib_dgc_dg_sys_info = yes; then +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDGC 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - LIBS="-ldgc $LIBS" - fi -fi +done +fi -if test "${ac_cv_header_locale_h+set}" = set; then - echo "$as_me:$LINENO: checking for locale.h" >&5 -echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 -if test "${ac_cv_header_locale_h+set}" = set; then +for ac_header in nlist.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_locale_h" >&5 -echo "${ECHO_T}$ac_cv_header_locale_h" >&6 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? -echo "$as_me:$LINENO: checking locale.h usability" >&5 -echo $ECHO_N "checking locale.h usability... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -#include +#include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12697,21 +16843,20 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? -echo "$as_me:$LINENO: checking locale.h presence" >&5 -echo $ECHO_N "checking locale.h presence... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -12723,6 +16868,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -12742,438 +16888,446 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for locale.h" >&5 -echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 -if test "${ac_cv_header_locale_h+set}" = set; then +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_header_locale_h=$ac_header_preproc + eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: $ac_cv_header_locale_h" >&5 -echo "${ECHO_T}$ac_cv_header_locale_h" >&6 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi - - - -for ac_func in setlocale -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + echo "$as_me:$LINENO: checking for struct nlist.n_un.n_name" >&5 +echo $ECHO_N "checking for struct nlist.n_un.n_name... $ECHO_C" >&6 +if test "${ac_cv_member_struct_nlist_n_un_n_name+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif +#include int main () { -return f != $ac_func; +static struct nlist ac_aggr; +if (ac_aggr.n_un.n_name) +return 0; ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + ac_cv_member_struct_nlist_n_un_n_name=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -# We cannot check for , because Solaris 2 does not use dwarf (it -# uses stabs), but it is still SVR4. We cannot check for because -# Irix 4.0.5F has the header but not the library. -if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes; then - ac_have_func=yes - -cat >>confdefs.h <<\_ACEOF -#define SVR4 1 -_ACEOF - -fi - -if test $ac_have_func = no; then - if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then - echo "$as_me:$LINENO: checking for inq_stats/cpustats.h" >&5 -echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 -if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_inq_stats_cpustats_h" >&5 -echo "${ECHO_T}$ac_cv_header_inq_stats_cpustats_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking inq_stats/cpustats.h usability" >&5 -echo $ECHO_N "checking inq_stats/cpustats.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include +#include + +int +main () +{ +static struct nlist ac_aggr; +if (sizeof ac_aggr.n_un.n_name) +return 0; + ; + return 0; +} _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_header_compiler=yes + ac_cv_member_struct_nlist_n_un_n_name=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no +ac_cv_member_struct_nlist_n_un_n_name=no fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_nlist_n_un_n_name" >&5 +echo "${ECHO_T}$ac_cv_member_struct_nlist_n_un_n_name" >&6 +if test $ac_cv_member_struct_nlist_n_un_n_name = yes; then -# Is the header present? -echo "$as_me:$LINENO: checking inq_stats/cpustats.h presence" >&5 -echo $ECHO_N "checking inq_stats/cpustats.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_NLIST_N_UN_N_NAME 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define NLIST_NAME_UNION 1 +_ACEOF + +fi + + +fi + +done + +fi +done + + +# Some definitions of getloadavg require that the program be installed setgid. +echo "$as_me:$LINENO: checking whether getloadavg requires setgid" >&5 +echo $ECHO_N "checking whether getloadavg requires setgid... $ECHO_C" >&6 +if test "${ac_cv_func_getloadavg_setgid+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include "$srcdir/$ac_config_libobj_dir/getloadavg.c" +#ifdef LDAV_PRIVILEGED +Yowza Am I SETGID yet +#endif _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for inq_stats/cpustats.h" >&5 -echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 -if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Yowza Am I SETGID yet" >/dev/null 2>&1; then + ac_cv_func_getloadavg_setgid=yes else - ac_cv_header_inq_stats_cpustats_h=$ac_header_preproc + ac_cv_func_getloadavg_setgid=no fi -echo "$as_me:$LINENO: result: $ac_cv_header_inq_stats_cpustats_h" >&5 -echo "${ECHO_T}$ac_cv_header_inq_stats_cpustats_h" >&6 +rm -f conftest* fi -if test $ac_cv_header_inq_stats_cpustats_h = yes; then - ac_have_func=yes +echo "$as_me:$LINENO: result: $ac_cv_func_getloadavg_setgid" >&5 +echo "${ECHO_T}$ac_cv_func_getloadavg_setgid" >&6 +if test $ac_cv_func_getloadavg_setgid = yes; then + NEED_SETGID=true cat >>confdefs.h <<\_ACEOF -#define UMAX 1 +#define GETLOADAVG_PRIVILEGED 1 _ACEOF +else + NEED_SETGID=false +fi -cat >>confdefs.h <<\_ACEOF -#define UMAX4_3 1 -_ACEOF +if test $ac_cv_func_getloadavg_setgid = yes; then + echo "$as_me:$LINENO: checking group of /dev/kmem" >&5 +echo $ECHO_N "checking group of /dev/kmem... $ECHO_C" >&6 +if test "${ac_cv_group_kmem+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # On Solaris, /dev/kmem is a symlink. Get info on the real file. + ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null` + # If we got an error (system does not support symlinks), try without -L. + test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` + ac_cv_group_kmem=`echo $ac_ls_output \ + | sed -ne 's/[ ][ ]*/ /g; + s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/; + / /s/.* //;p;'` fi +echo "$as_me:$LINENO: result: $ac_cv_group_kmem" >&5 +echo "${ECHO_T}$ac_cv_group_kmem" >&6 + KMEM_GROUP=$ac_cv_group_kmem +fi +if test "x$ac_save_LIBS" = x; then + GETLOADAVG_LIBS=$LIBS +else + GETLOADAVG_LIBS=`echo "$LIBS" | sed "s!$ac_save_LIBS!!"` +fi +LIBS=$ac_save_LIBS -fi -if test $ac_have_func = no; then - if test "${ac_cv_header_sys_cpustats_h+set}" = set; then - echo "$as_me:$LINENO: checking for sys/cpustats.h" >&5 -echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 -if test "${ac_cv_header_sys_cpustats_h+set}" = set; then +echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 +echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6 +if test "${ac_cv_sys_largefile_source+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_cpustats_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_cpustats_h" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking sys/cpustats.h usability" >&5 -echo $ECHO_N "checking sys/cpustats.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + while :; do + ac_cv_sys_largefile_source=no + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include +#include +int +main () +{ +return !fseeko; + ; + return 0; +} _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_header_compiler=yes + break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking sys/cpustats.h presence" >&5 -echo $ECHO_N "checking sys/cpustats.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#define _LARGEFILE_SOURCE 1 +#include +int +main () +{ +return !fseeko; + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_source=1; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + break +done +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6 +if test "$ac_cv_sys_largefile_source" != no; then -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: sys/cpustats.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for sys/cpustats.h" >&5 -echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 -if test "${ac_cv_header_sys_cpustats_h+set}" = set; then +cat >>confdefs.h <<_ACEOF +#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source +_ACEOF + +fi +rm -f conftest* + +# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug +# in glibc 2.1.3, but that breaks too many other things. +# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. +echo "$as_me:$LINENO: checking for fseeko" >&5 +echo $ECHO_N "checking for fseeko... $ECHO_C" >&6 +if test "${ac_cv_func_fseeko+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_header_sys_cpustats_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_cpustats_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_cpustats_h" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return fseeko && fseeko (stdin, 0, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_fseeko=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_func_fseeko=no fi -if test $ac_cv_header_sys_cpustats_h = yes; then - ac_have_func=yes; cat >>confdefs.h <<\_ACEOF -#define UMAX 1 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_fseeko" >&5 +echo "${ECHO_T}$ac_cv_func_fseeko" >&6 +if test $ac_cv_func_fseeko = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FSEEKO 1 _ACEOF fi -fi +# Configure getopt. +# getopt.m4 serial 10 -if test $ac_have_func = no; then +# The getopt module assume you want GNU getopt, with getopt_long etc, +# rather than vanilla POSIX getopt. This means your your code should +# always include for the getopt prototypes. -for ac_header in mach/mach.h + + + + + + + + + + +# Prerequisites of lib/getopt*. + + + + + GETOPT_H= + +for ac_header in getopt.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -13189,7 +17343,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13200,11 +17353,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13217,7 +17380,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -13225,7 +17388,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13243,6 +17405,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -13262,33 +17425,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -13299,7 +17461,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -13310,527 +17472,566 @@ if test `eval echo '${'$as_ac_Header'}'` = yes; then #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF +else + GETOPT_H=getopt.h fi done -fi - + if test -z "$GETOPT_H"; then -for ac_header in nlist.h +for ac_func in getopt_long_only do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_header_compiler=yes + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no +eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +else + GETOPT_H=getopt.h +fi +done + + fi + + if test -z "$GETOPT_H"; then + echo "$as_me:$LINENO: checking whether optreset is declared" >&5 +echo $ECHO_N "checking whether optreset is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_optreset+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <$ac_header> +#include + +int +main () +{ +#ifndef optreset + char *p = (char *) optreset; +#endif + + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_optreset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no +ac_cv_have_decl_optreset=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5 +echo "${ECHO_T}$ac_cv_have_decl_optreset" >&6 +if test $ac_cv_have_decl_optreset = yes; then + GETOPT_H=getopt.h fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then + fi + + if test -z "$GETOPT_H"; then + echo "$as_me:$LINENO: checking for working GNU getopt function" >&5 +echo $ECHO_N "checking for working GNU getopt function... $ECHO_C" >&6 +if test "${gl_cv_func_gnu_getopt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - echo "$as_me:$LINENO: checking for struct nlist.n_un.n_name" >&5 -echo $ECHO_N "checking for struct nlist.n_un.n_name... $ECHO_C" >&6 -if test "${ac_cv_member_struct_nlist_n_un_n_name+set}" = set; then + if test "$cross_compiling" = yes; then + echo "$as_me:$LINENO: checking whether getopt_clip is declared" >&5 +echo $ECHO_N "checking whether getopt_clip is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_getopt_clip+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include int main () { -static struct nlist ac_aggr; -if (ac_aggr.n_un.n_name) -return 0; +#ifndef getopt_clip + char *p = (char *) getopt_clip; +#endif + ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_member_struct_nlist_n_un_n_name=yes + ac_cv_have_decl_getopt_clip=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" +ac_cv_have_decl_getopt_clip=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_getopt_clip" >&5 +echo "${ECHO_T}$ac_cv_have_decl_getopt_clip" >&6 +if test $ac_cv_have_decl_getopt_clip = yes; then + gl_cv_func_gnu_getopt=no +else + gl_cv_func_gnu_getopt=yes +fi + +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - +#include int main () { -static struct nlist ac_aggr; -if (sizeof ac_aggr.n_un.n_name) -return 0; + + char *myargv[3]; + myargv[0] = "conftest"; + myargv[1] = "-+"; + myargv[2] = 0; + return getopt (2, myargv, "+a") != '?'; + ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_member_struct_nlist_n_un_n_name=yes + gl_cv_func_gnu_getopt=yes else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_struct_nlist_n_un_n_name=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest.$ac_ext +( exit $ac_status ) +gl_cv_func_gnu_getopt=no fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_nlist_n_un_n_name" >&5 -echo "${ECHO_T}$ac_cv_member_struct_nlist_n_un_n_name" >&6 -if test $ac_cv_member_struct_nlist_n_un_n_name = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_NLIST_N_UN_N_NAME 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define NLIST_NAME_UNION 1 -_ACEOF - +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - - fi +echo "$as_me:$LINENO: result: $gl_cv_func_gnu_getopt" >&5 +echo "${ECHO_T}$gl_cv_func_gnu_getopt" >&6 + if test "$gl_cv_func_gnu_getopt" = "no"; then + GETOPT_H=getopt.h + fi + fi -done -fi -done + if test -n "$GETOPT_H"; then -# Some definitions of getloadavg require that the program be installed setgid. -echo "$as_me:$LINENO: checking whether getloadavg requires setgid" >&5 -echo $ECHO_N "checking whether getloadavg requires setgid... $ECHO_C" >&6 -if test "${ac_cv_func_getloadavg_setgid+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include "$srcdir/$ac_config_libobj_dir/getloadavg.c" -#ifdef LDAV_PRIVILEGED -Yowza Am I SETGID yet -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Yowza Am I SETGID yet" >/dev/null 2>&1; then - ac_cv_func_getloadavg_setgid=yes -else - ac_cv_func_getloadavg_setgid=no -fi -rm -f conftest* -fi -echo "$as_me:$LINENO: result: $ac_cv_func_getloadavg_setgid" >&5 -echo "${ECHO_T}$ac_cv_func_getloadavg_setgid" >&6 -if test $ac_cv_func_getloadavg_setgid = yes; then - NEED_SETGID=true + GETOPT_H=getopt.h cat >>confdefs.h <<\_ACEOF -#define GETLOADAVG_PRIVILEGED 1 +#define __GETOPT_PREFIX rpl_ _ACEOF -else - NEED_SETGID=false -fi -if test $ac_cv_func_getloadavg_setgid = yes; then - echo "$as_me:$LINENO: checking group of /dev/kmem" >&5 -echo $ECHO_N "checking group of /dev/kmem... $ECHO_C" >&6 -if test "${ac_cv_group_kmem+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # On Solaris, /dev/kmem is a symlink. Get info on the real file. - ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null` - # If we got an error (system does not support symlinks), try without -L. - test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` - ac_cv_group_kmem=`echo $ac_ls_output \ - | sed -ne 's/[ ][ ]*/ /g; - s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/; - / /s/.* //;p;'` + + : + GETOPTOBJS='getopt.o getopt1.o' fi -echo "$as_me:$LINENO: result: $ac_cv_group_kmem" >&5 -echo "${ECHO_T}$ac_cv_group_kmem" >&6 - KMEM_GROUP=$ac_cv_group_kmem -fi -if test "x$ac_save_LIBS" = x; then - GETLOADAVG_LIBS=$LIBS -else - GETLOADAVG_LIBS=`echo "$LIBS" | sed "s!$ac_save_LIBS!!"` -fi -LIBS=$ac_save_LIBS -echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_source+set}" = set; then + +echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5 +echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6 +if test "${ac_cv_func_getpgrp_void+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - while :; do - ac_cv_sys_largefile_source=no - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" + # Use it with a single arg. +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +$ac_includes_default int main () { -return !fseeko; +getpgrp (0); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#define _LARGEFILE_SOURCE 1 -#include -int -main () -{ -return !fseeko; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_sys_largefile_source=1; break + ac_cv_func_getpgrp_void=no else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_func_getpgrp_void=yes fi -rm -f conftest.$ac_objext conftest.$ac_ext - break -done +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi -echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6 -if test "$ac_cv_sys_largefile_source" != no; then +echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5 +echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6 +if test $ac_cv_func_getpgrp_void = yes; then -cat >>confdefs.h <<_ACEOF -#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source +cat >>confdefs.h <<\_ACEOF +#define GETPGRP_VOID 1 _ACEOF fi -rm -f conftest* -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -echo "$as_me:$LINENO: checking for fseeko" >&5 -echo $ECHO_N "checking for fseeko... $ECHO_C" >&6 -if test "${ac_cv_func_fseeko+set}" = set; then + + +for ac_func in strftime +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + int main () { -return fseeko && fseeko (stdin, 0, 0); +return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_fseeko=yes + eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_fseeko=no +eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_fseeko" >&5 -echo "${ECHO_T}$ac_cv_func_fseeko" >&6 -if test $ac_cv_func_fseeko = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_FSEEKO 1 +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -fi - - -echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5 -echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6 -if test "${ac_cv_func_getpgrp_void+set}" = set; then +else + # strftime is in -lintl on SCO UNIX. +echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 +echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6 +if test "${ac_cv_lib_intl_strftime+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - # Use it with a single arg. + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strftime (); int main () { -getpgrp (0); +strftime (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_getpgrp_void=no + ac_cv_lib_intl_strftime=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_getpgrp_void=yes +ac_cv_lib_intl_strftime=no fi -rm -f conftest.$ac_objext conftest.$ac_ext - +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5 -echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6 -if test $ac_cv_func_getpgrp_void = yes; then - -cat >>confdefs.h <<\_ACEOF -#define GETPGRP_VOID 1 +echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6 +if test $ac_cv_lib_intl_strftime = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_STRFTIME 1 _ACEOF +LIBS="-lintl $LIBS" fi +fi +done + # UNIX98 PTYs. @@ -13843,21 +18044,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -13888,11 +18096,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13905,7 +18123,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -13929,21 +18148,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -13974,11 +18200,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13991,7 +18227,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -14017,7 +18254,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14041,11 +18277,21 @@ tparm (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14058,7 +18304,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ncurses_tparm=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tparm" >&5 @@ -14083,21 +18330,28 @@ if test "${ac_cv_func_res_send+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define res_send to an innocuous variant, in case declares res_send. + For example, HP-UX 11i declares gettimeofday. */ +#define res_send innocuous_res_send + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char res_send (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef res_send + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -14128,11 +18382,21 @@ return f != res_send; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14145,7 +18409,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_res_send=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_res_send" >&5 echo "${ECHO_T}$ac_cv_func_res_send" >&6 @@ -14158,21 +18423,28 @@ if test "${ac_cv_func___res_send+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define __res_send to an innocuous variant, in case declares __res_send. + For example, HP-UX 11i declares gettimeofday. */ +#define __res_send innocuous___res_send + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char __res_send (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef __res_send + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -14203,11 +18475,21 @@ return f != __res_send; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14220,7 +18502,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func___res_send=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func___res_send" >&5 echo "${ECHO_T}$ac_cv_func___res_send" >&6 @@ -14235,7 +18518,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14259,11 +18541,21 @@ res_send (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14276,7 +18568,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_resolv_res_send=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_send" >&5 @@ -14292,7 +18585,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14316,11 +18608,21 @@ __res_send (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14333,7 +18635,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_resolv___res_send=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_resolv___res_send" >&5 @@ -14364,21 +18667,28 @@ if test "${ac_cv_func_hes_getmailhost+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define hes_getmailhost to an innocuous variant, in case declares hes_getmailhost. + For example, HP-UX 11i declares gettimeofday. */ +#define hes_getmailhost innocuous_hes_getmailhost + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char hes_getmailhost (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef hes_getmailhost + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -14409,11 +18719,21 @@ return f != hes_getmailhost; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14426,7 +18746,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_hes_getmailhost=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_hes_getmailhost" >&5 echo "${ECHO_T}$ac_cv_func_hes_getmailhost" >&6 @@ -14441,7 +18762,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lhesiod $RESOLVLIB $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14465,11 +18785,21 @@ hes_getmailhost (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14482,7 +18812,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_hesiod_hes_getmailhost=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_hesiod_hes_getmailhost" >&5 @@ -14512,7 +18843,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lcom_err $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14536,11 +18866,21 @@ com_err (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14553,7 +18893,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_com_err_com_err=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_com_err_com_err" >&5 @@ -14576,7 +18917,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lk5crypto $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14600,11 +18940,21 @@ mit_des_cbc_encrypt (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14617,7 +18967,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_k5crypto_mit_des_cbc_encrypt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_k5crypto_mit_des_cbc_encrypt" >&5 @@ -14640,7 +18991,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14664,11 +19014,21 @@ mit_des_cbc_encrypt (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14681,7 +19041,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_crypto_mit_des_cbc_encrypt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_mit_des_cbc_encrypt" >&5 @@ -14704,7 +19065,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb5 $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14728,11 +19088,21 @@ krb5_init_context (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14745,7 +19115,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_krb5_krb5_init_context=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_krb5_krb5_init_context" >&5 @@ -14769,7 +19140,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldes425 $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14793,11 +19163,21 @@ des_cbc_encrypt (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14810,7 +19190,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_des425_des_cbc_encrypt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_des425_des_cbc_encrypt" >&5 @@ -14832,7 +19213,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldes $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14856,11 +19236,21 @@ des_cbc_encrypt (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14873,7 +19263,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_des_des_cbc_encrypt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_des_des_cbc_encrypt" >&5 @@ -14898,7 +19289,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb4 $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14922,11 +19312,21 @@ krb_get_cred (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14939,7 +19339,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_krb4_krb_get_cred=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_krb4_krb_get_cred" >&5 @@ -14961,7 +19362,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14985,11 +19385,21 @@ krb_get_cred (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15002,7 +19412,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_krb_krb_get_cred=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_krb_krb_get_cred" >&5 @@ -15038,7 +19449,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15049,11 +19459,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15066,7 +19486,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -15074,7 +19494,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15092,6 +19511,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -15111,33 +19531,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -15148,7 +19567,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -15181,7 +19600,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15192,11 +19610,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15209,7 +19637,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -15217,7 +19645,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15235,6 +19662,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -15254,33 +19682,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -15291,7 +19718,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -15320,7 +19747,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15331,11 +19757,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15348,7 +19784,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -15356,7 +19792,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15374,6 +19809,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -15393,33 +19829,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -15430,7 +19865,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -15459,7 +19894,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15470,11 +19904,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15487,7 +19931,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -15495,7 +19939,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15513,6 +19956,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -15532,33 +19976,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -15569,7 +20012,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -15609,7 +20052,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15620,11 +20062,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15637,7 +20089,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -15645,7 +20097,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15663,6 +20114,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -15682,33 +20134,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -15719,7 +20170,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -15748,7 +20199,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15759,11 +20209,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15776,7 +20236,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -15784,7 +20244,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15802,6 +20261,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -15821,33 +20281,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -15858,7 +20317,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -15887,7 +20346,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15898,11 +20356,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15915,7 +20383,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -15923,7 +20391,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15941,6 +20408,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -15960,33 +20428,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -15997,7 +20464,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -16038,7 +20505,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16049,11 +20515,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16066,7 +20542,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -16074,7 +20550,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16092,6 +20567,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -16111,33 +20587,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -16148,7 +20623,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -16176,7 +20651,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16200,11 +20674,21 @@ dgettext (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16217,7 +20701,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dgettext=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 @@ -16243,7 +20728,6 @@ if test "$cross_compiling" = yes; then emacs_cv_localtime_cache=yes else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16299,7 +20783,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) emacs_cv_localtime_cache=yes fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi else # If we lack tzset, report that localtime does not cache TZ, @@ -16328,21 +20812,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16373,11 +20864,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16390,7 +20891,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16409,7 +20911,6 @@ if test "${emacs_cv_gettimeofday_two_arguments+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16425,49 +20926,251 @@ cat >>conftest.$ac_ext <<_ACEOF #else #include #endif -#endif +#endif +int +main () +{ +struct timeval time; + gettimeofday (&time, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + emacs_cv_gettimeofday_two_arguments=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +emacs_cv_gettimeofday_two_arguments=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $emacs_cv_gettimeofday_two_arguments" >&5 +echo "${ECHO_T}$emacs_cv_gettimeofday_two_arguments" >&6 + if test $emacs_cv_gettimeofday_two_arguments = no; then + +cat >>confdefs.h <<\_ACEOF +#define GETTIMEOFDAY_ONE_ARGUMENT 1 +_ACEOF + + fi + fi +fi + +# This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. +echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 +echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6 +if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (sizeof ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_tm_tm_zone=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 +echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 +if test $ac_cv_member_struct_tm_tm_zone = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TM_TM_ZONE 1 +_ACEOF + + +fi + +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TM_ZONE 1 +_ACEOF + +else + echo "$as_me:$LINENO: checking for tzname" >&5 +echo $ECHO_N "checking for tzname... $ECHO_C" >&6 +if test "${ac_cv_var_tzname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#ifndef tzname /* For SGI. */ +extern char *tzname[]; /* RS6000 and others reject char **tzname. */ +#endif + int main () { -struct timeval time; - gettimeofday (&time, 0); +atoi(*tzname); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - emacs_cv_gettimeofday_two_arguments=yes + ac_cv_var_tzname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -emacs_cv_gettimeofday_two_arguments=no +ac_cv_var_tzname=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $emacs_cv_gettimeofday_two_arguments" >&5 -echo "${ECHO_T}$emacs_cv_gettimeofday_two_arguments" >&6 - if test $emacs_cv_gettimeofday_two_arguments = no; then +echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 +echo "${ECHO_T}$ac_cv_var_tzname" >&6 + if test $ac_cv_var_tzname = yes; then cat >>confdefs.h <<\_ACEOF -#define GETTIMEOFDAY_ONE_ARGUMENT 1 +#define HAVE_TZNAME 1 _ACEOF - fi fi fi + if test "$ac_cv_func_gettimeofday" = yes; then echo "$as_me:$LINENO: checking for struct timezone" >&5 echo $ECHO_N "checking for struct timezone... $ECHO_C" >&6 @@ -16475,7 +21178,6 @@ if test "${emacs_cv_struct_timezone+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16492,11 +21194,21 @@ struct timezone tz; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16506,7 +21218,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 emacs_cv_struct_timezone=yes else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16549,7 +21260,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) emacs_cv_struct_timezone=no fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi else echo "$as_me: failed program was:" >&5 @@ -16557,7 +21268,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 emacs_cv_struct_timezone=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $emacs_cv_struct_timezone" >&5 echo "${ECHO_T}$emacs_cv_struct_timezone" >&6 @@ -16570,21 +21281,28 @@ if test "${ac_cv_func_socket+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define socket to an innocuous variant, in case declares socket. + For example, HP-UX 11i declares gettimeofday. */ +#define socket innocuous_socket + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char socket (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef socket + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16615,11 +21333,21 @@ return f != socket; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16632,7 +21360,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_socket=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_socket" >&5 echo "${ECHO_T}$ac_cv_func_socket" >&6 @@ -16656,7 +21385,6 @@ else echo "$as_me:$LINENO: checking netinet/in.h usability" >&5 echo $ECHO_N "checking netinet/in.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16667,11 +21395,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16684,7 +21422,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -16692,7 +21430,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking netinet/in.h presence" >&5 echo $ECHO_N "checking netinet/in.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16710,6 +21447,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -16729,33 +21467,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: netinet/in.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: netinet/in.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: netinet/in.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: netinet/in.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: netinet/in.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: netinet/in.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: netinet/in.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: netinet/in.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: netinet/in.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: netinet/in.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: netinet/in.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: netinet/in.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -16794,7 +21531,6 @@ else echo "$as_me:$LINENO: checking arpa/inet.h usability" >&5 echo $ECHO_N "checking arpa/inet.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16805,11 +21541,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16822,7 +21568,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -16830,7 +21576,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking arpa/inet.h presence" >&5 echo $ECHO_N "checking arpa/inet.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16848,6 +21593,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -16867,33 +21613,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: arpa/inet.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: arpa/inet.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: arpa/inet.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: arpa/inet.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: arpa/inet.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: arpa/inet.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: arpa/inet.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: arpa/inet.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -16926,6 +21671,157 @@ _ACEOF fi + +for ac_header in sys/ioctl.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + if test -f /usr/lpp/X11/bin/smt.exp; then cat >>confdefs.h <<\_ACEOF @@ -16955,7 +21851,6 @@ if test "${ac_cv_type_pid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16975,11 +21870,21 @@ if (sizeof (pid_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16992,7 +21897,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_pid_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 echo "${ECHO_T}$ac_cv_type_pid_t" >&6 @@ -17024,7 +21929,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17035,11 +21939,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17052,7 +21966,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -17060,7 +21974,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17078,6 +21991,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -17097,33 +22011,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -17134,7 +22047,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -17160,21 +22073,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -17205,11 +22125,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17222,7 +22152,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -17252,9 +22183,9 @@ else /* Some systems only have a dummy stub for fork() */ int main () { - if (fork() < 0) - exit (1); - exit (0); + if (fork() < 0) + exit (1); + exit (0); } _ACEOF rm -f conftest$ac_exeext @@ -17277,7 +22208,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_fork_works=no fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5 @@ -17310,7 +22241,6 @@ else ac_cv_func_vfork_works=cross else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17432,7 +22362,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_vfork_works=no fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5 @@ -17440,7 +22370,7 @@ echo "${ECHO_T}$ac_cv_func_vfork_works" >&6 fi; if test "x$ac_cv_func_fork_works" = xcross; then - ac_cv_func_vfork_works=ac_cv_func_vfork + ac_cv_func_vfork_works=$ac_cv_func_vfork { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi @@ -17473,7 +22403,6 @@ if test "${emacs_cv_langinfo_codeset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17490,11 +22419,21 @@ char* cs = nl_langinfo(CODESET); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17507,7 +22446,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 emacs_cv_langinfo_codeset=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $emacs_cv_langinfo_codeset" >&5 @@ -17526,7 +22466,6 @@ if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17546,11 +22485,21 @@ if (sizeof (size_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17563,7 +22512,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6 @@ -17577,13 +22526,80 @@ _ACEOF fi +echo "$as_me:$LINENO: checking for mbstate_t" >&5 +echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 +if test "${ac_cv_type_mbstate_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +# include +int +main () +{ +mbstate_t x; return sizeof x; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_mbstate_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_mbstate_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 +echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6 + if test $ac_cv_type_mbstate_t = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MBSTATE_T 1 +_ACEOF + + else + +cat >>confdefs.h <<\_ACEOF +#define mbstate_t int +_ACEOF + + fi + echo "$as_me:$LINENO: checking for C restrict keyword" >&5 echo $ECHO_N "checking for C restrict keyword... $ECHO_C" >&6 if test "${emacs_cv_c_restrict+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17600,11 +22616,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17616,7 +22642,6 @@ else sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17633,11 +22658,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17650,9 +22685,9 @@ sed 's/^/| /' conftest.$ac_ext >&5 emacs_cv_c_restrict=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $emacs_cv_c_restrict" >&5 echo "${ECHO_T}$emacs_cv_c_restrict" >&6 @@ -17675,7 +22710,6 @@ if test "${emacs_cv_c_restrict_arr+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17692,11 +22726,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17709,7 +22753,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 emacs_cv_c_restrict_arr=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $emacs_cv_c_restrict_arr" >&5 echo "${ECHO_T}$emacs_cv_c_restrict_arr" >&6 @@ -17722,153 +22766,6 @@ _ACEOF fi -for ac_header in nlist.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -cat >>confdefs.h <<\_ACEOF -#define NLIST_STRUCT 1 -_ACEOF - -fi - -done - - - # Set up the CFLAGS for real compilation, so we can substitute it. CFLAGS="$REAL_CFLAGS" @@ -18055,6 +22952,14 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}" echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" echo +if test $USE_XASSERTS = yes; then + echo " Compiling with asserts turned on." + CPPFLAGS="$CPPFLAGS -DXASSERTS=1" + echo +fi + + + # Remove any trailing slashes in these variables. test "${prefix}" != NONE && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` @@ -18067,7 +22972,6 @@ test "${exec_prefix}" != NONE && ## C preprocessor. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18114,13 +23018,13 @@ _ACEOF # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | @@ -18150,13 +23054,13 @@ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ + ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; +s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; -s/^[^=]*=[ ]*$//; +s/^[^=]*=[ ]*$//; }' fi @@ -18167,7 +23071,7 @@ ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' @@ -18211,9 +23115,10 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi +DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false @@ -18232,7 +23137,7 @@ for as_var in \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var @@ -18411,16 +23316,17 @@ rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS @@ -18447,7 +23353,7 @@ _ASBOX cat >&5 <<_CSEOF This file was extended by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -18491,9 +23397,9 @@ Usage: $0 [OPTIONS] [FILE]... -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] - instantiate the configuration file FILE + instantiate the configuration file FILE --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + instantiate the configuration header FILE Configuration files: $config_files @@ -18510,11 +23416,10 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.57, +configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir @@ -18717,6 +23622,7 @@ s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t +s,@MAINT@,$MAINT,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t @@ -18732,15 +23638,16 @@ s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t -s,@LN_S@,$LN_S,;t t s,@CPP@,$CPP,;t t +s,@EGREP@,$EGREP,;t t +s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@INSTALL_INFO@,$INSTALL_INFO,;t t -s,@EGREP@,$EGREP,;t t +s,@GZIP_PROG@,$GZIP_PROG,;t t s,@LIBSOUND@,$LIBSOUND,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t @@ -18752,6 +23659,8 @@ s,@LIBOBJS@,$LIBOBJS,;t t s,@NEED_SETGID@,$NEED_SETGID,;t t s,@KMEM_GROUP@,$KMEM_GROUP,;t t s,@GETLOADAVG_LIBS@,$GETLOADAVG_LIBS,;t t +s,@GETOPT_H@,$GETOPT_H,;t t +s,@GETOPTOBJS@,$GETOPTOBJS,;t t s,@version@,$version,;t t s,@configuration@,$configuration,;t t s,@canonical@,$canonical,;t t @@ -18805,9 +23714,9 @@ _ACEOF (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end @@ -18825,21 +23734,21 @@ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -18855,10 +23764,10 @@ echo X"$ac_file" | as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -18896,12 +23805,45 @@ case $srcdir in ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac case $INSTALL in @@ -18923,7 +23865,7 @@ echo "$as_me: creating $ac_file" >&6;} configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." + sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. @@ -18932,24 +23874,24 @@ echo "$as_me: creating $ac_file" >&6;} case $f in -) echo $tmp/stdin ;; [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - echo $f;; + echo "$f";; *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - fi;; + fi;; esac done` || { (exit 1); exit 1; } _ACEOF @@ -18991,12 +23933,12 @@ cat >>$CONFIG_STATUS <<\_ACEOF # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' @@ -19005,11 +23947,11 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac @@ -19023,28 +23965,29 @@ echo "$as_me: creating $ac_file" >&6;} case $f in -) echo $tmp/stdin ;; [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - echo $f;; + # Do quote $f, to prevent DOS paths from being IFS'd. + echo "$f";; *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - fi;; + fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF @@ -19067,9 +24010,9 @@ s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times @@ -19083,13 +24026,13 @@ rm -f confdef2sed.sed # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail @@ -19098,7 +24041,7 @@ do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS @@ -19125,7 +24068,7 @@ do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS @@ -19159,10 +24102,10 @@ echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -19178,10 +24121,10 @@ echo X"$ac_file" | as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -19213,16 +24156,41 @@ for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. if test "$ac_dir" != .; then @@ -19248,12 +24216,45 @@ case $srcdir in ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 diff --git a/configure.in b/configure.in index 9898061d56e..2318c1b9197 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ dnl To rebuild the `configure' script from this, execute the command dnl autoconf dnl in the directory containing this script. dnl -dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003 +dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 dnl Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. @@ -20,8 +20,8 @@ dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with GNU Emacs; see the file COPYING. If not, write to the -dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330, -dnl Boston, MA 02111-1307, USA. +dnl Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. AC_PREREQ(2.54)dnl AC_INIT(src/lisp.h) @@ -125,6 +125,33 @@ AC_ARG_ENABLE(carbon-app, specify install directory for Emacs.app on Mac OS X]], [ carbon_appdir_x=${enableval}]) +AC_ARG_ENABLE(asserts, +[ --enable-asserts compile code with asserts enabled], + USE_XASSERTS=$enableval, + USE_XASSERTS=no) + +AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) +if test $USE_MAINTAINER_MODE = yes; then + MAINT= +else + MAINT=# +fi +AC_SUBST(MAINT) + +AC_ARG_ENABLE(locallisppath, +[ --enable-locallisppath=PATH + directories Emacs should search for lisp files + specific to this site], +if test "${enableval}" = "no"; then + locallisppath= +elif test "${enableval}" != "yes"; then + locallisppath=${enableval} +fi) + #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessarily, since pwd can #### give you automounter prefixes, which can go away. We do all this @@ -158,15 +185,6 @@ if test `pwd` != `(cd ${srcdir} && pwd)` \ use GNU make. If you do not have GNU make, then you must now do `make distclean' in ${srcdir}, and then run $0 again.]]) - -[extrasub='/^VPATH[ ]*=/c\ -vpath %.c $(srcdir)\ -vpath %.h $(srcdir)\ -vpath %.y $(srcdir)\ -vpath %.l $(srcdir)\ -vpath %.s $(srcdir)\ -vpath %.in $(srcdir)\ -vpath %.texi $(srcdir)'] fi #### Given the configuration name, set machfile and opsysfile to the @@ -182,6 +200,10 @@ dnl This used to use changequote, but, apart from `changequote is evil' dnl per the autoconf manual, we can speed up autoconf somewhat by quoting dnl the great gob of text. Thus it's not processed for possible expansion. dnl Just make sure the brackets remain balanced. +dnl +dnl Since Emacs can't find matching pairs of quotes, boundaries are +dnl indicated by comments. +dnl quotation begins [ ### If you add support for a new configuration, add code to this @@ -216,12 +238,19 @@ case "${canonical}" in case "${canonical}" in alpha*-*-freebsd*) machine=alpha ;; i[3456]86-*-freebsd*) machine=intel386 ;; + amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;; esac ;; ## NetBSD ports *-*-netbsd* ) opsys=netbsd + if test -f /usr/lib/crti.o; then] +dnl The close and open brackets here are because this section is quoted -- +dnl see the `changequote' comment above. + AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.]) +[ fi + case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; i[3456]86-*-netbsd*) machine=intel386 ;; @@ -254,6 +283,15 @@ case "${canonical}" in esac ;; + ## LynxOS ports + *-*-lynxos* ) + opsys=lynxos + case "${canonical}" in + i[3456]86-*-lynxos*) machine=intel386 ;; + powerpc-*-lynxos*) machine=powerpc ;; + esac + ;; + ## Acorn RISCiX: arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 @@ -319,11 +357,6 @@ case "${canonical}" in machine=arm opsys=gnu-linux ;; - ppc-*-linux | \ - powerpc-*-linux* ) - machine=macppc opsys=gnu-linux - ;; - ## Altos 3068 m68*-altos-sysv* ) machine=altos opsys=usg5-2 @@ -570,6 +603,9 @@ case "${canonical}" in hppa*-hp-hpux9* ) machine=hp800 opsys=hpux9 ;; + hppa*-hp-hpux10.2* ) + machine=hp800 opsys=hpux10-20 + ;; hppa*-hp-hpux10* ) machine=hp800 opsys=hpux10 ;; @@ -615,7 +651,7 @@ case "${canonical}" in i370-ibm-aix*) machine=ibm370aix opsys=usg5-3 ;; - s390-*-linux-gnu) + s390-*-linux-gnu* ) machine=ibms390 opsys=gnu-linux ;; rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* ) @@ -630,7 +666,7 @@ case "${canonical}" in rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* ) machine=ibmrs6000 opsys=aix4-2 ;; - rs6000-ibm-aix5.1* | powerpc-ibm-aix5.1* ) + rs6000-ibm-aix5* | powerpc-ibm-aix5* ) machine=ibmrs6000 opsys=aix4-2 ;; rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0* ) @@ -1054,7 +1090,9 @@ case "${canonical}" in machine=intel386 case "${canonical}" in *-cygwin ) opsys=cygwin ;; - *-lynxos* ) opsys=lynxos ;; + *-darwin* ) opsys=darwin + CPP="${CC-cc} -E -no-cpp-precomp" + ;; *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; *-isc2.2* ) opsys=isc2-2 ;; *-isc4.0* ) opsys=isc4-0 ;; @@ -1075,6 +1113,8 @@ case "${canonical}" in OVERRIDE_CPPFLAGS=" " ;; *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-sysv5uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; + *-sysv5OpenUNIX* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;; *-386bsd* ) opsys=386bsd ;; *-nextstep* ) opsys=nextstep ;; ## Otherwise, we'll fall through to the generic opsys code at the bottom. @@ -1107,7 +1147,13 @@ case "${canonical}" in powerpc-apple-darwin* ) machine=powermac opsys=darwin # Define CPP as follows to make autoconf work correctly. - CPP="cc -E -traditional-cpp" + CPP="${CC-cc} -E -no-cpp-precomp" + # Use fink packages if available. + if test -d /sw/include && test -d /sw/lib; then + GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" + CPP="${CPP} ${GCC_TEST_OPTIONS}" + NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} + fi ;; ## AMD x86-64 Linux-based GNU system @@ -1137,6 +1183,8 @@ if test x"${opsys}" = x; then *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;; *-sysv3* | *-sysvr3* ) opsys=usg5-3 ;; *-sysv4.2uw* ) opsys=unixware ;; + *-sysv5uw* ) opsys=unixware ;; + *-sysv5OpenUNIX* ) opsys=unixware ;; *-sysv4.1* | *-sysvr4.1* ) NON_GNU_CPP=/usr/lib/cpp opsys=usg5-4 ;; @@ -1157,6 +1205,7 @@ if test x"${opsys}" = x; then fi ] +dnl quotation ends if test $unported = yes; then AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems. @@ -1212,6 +1261,23 @@ then CC="$CC $NON_GCC_TEST_OPTIONS" fi +dnl checks for Unix variants +AC_AIX +AC_GNU_SOURCE + +### Use -Wno-pointer-sign if the compiler supports it +AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign]) +SAVE_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Wno-pointer-sign" +AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) +if test $has_option = yes; then + C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH" +fi +AC_MSG_RESULT($has_option) +CFLAGS="$SAVE_CFLAGS" +unset has_option +unset SAVE_CFLAGS + #### Some other nice autoconf tests. dnl checks for programs @@ -1224,6 +1290,8 @@ fi AC_PATH_PROG(INSTALL_INFO, install-info) AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin) AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin) +dnl Don't use GZIP, which is used by gzip for additional parameters. +AC_PATH_PROG(GZIP_PROG, gzip) dnl Add our options to ac_link now, after it is set up. @@ -1237,8 +1305,24 @@ then ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS" fi -dnl checks for Unix variants -AC_AIX +dnl We need -znocombreloc if we're using a relatively recent GNU ld. +dnl If we can link with the flag, it shouldn't do any harm anyhow. +dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.) +dnl Treat GCC specially since it just gives a non-fatal `unrecognized option' +dnl if not built to support GNU ld. + +late_LDFLAGS=$LDFLAGS +if test "$GCC" = yes; then + LDFLAGS="$LDFLAGS -Wl,-znocombreloc" +else + LDFLAGS="$LDFLAGS -znocombreloc" +fi + +AC_MSG_CHECKING([for -znocombreloc]) +AC_LINK_IFELSE([main(){return 0;}], + [AC_MSG_RESULT(yes)], + LDFLAGS=$late_LDFLAGS + [AC_MSG_RESULT(no)]) #### Extract some information from the operating system and machine files. @@ -1323,6 +1407,10 @@ configure___ use_mmap_for_buffers=no #endif #endif +#ifndef C_WARNINGS_SWITCH +#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH} +#endif + #ifndef LD_SWITCH_MACHINE #define LD_SWITCH_MACHINE #endif @@ -1351,7 +1439,7 @@ configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' /* Get the CFLAGS for real compilation. */ #ifdef __GNUC__ -configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' +configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH '${SPECIFIED_CFLAGS}' #else configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' #endif @@ -1385,8 +1473,6 @@ fi dnl For AC_FUNC_GETLOADAVG, at least: AC_CONFIG_LIBOBJ_DIR(src) -AC_GNU_SOURCE - dnl Do this early because it can frob feature test macros for Unix-98 &c. AC_SYS_LARGEFILE @@ -1401,8 +1487,21 @@ fi dnl checks for header files AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ - termcap.h stdio_ext.h fcntl.h term.h strings.h coff.h pty.h sys/mman.h \ - sys/param.h sys/vlimit.h sys/resource.h) + termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ + sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ + sys/utsname.h pwd.h) + +AC_MSG_CHECKING(if personality LINUX32 can be set) +AC_TRY_COMPILE([#include ], [personality (PER_LINUX32)], + emacs_cv_personality_linux32=yes, + emacs_cv_personality_linux32=no) +AC_MSG_RESULT($emacs_cv_personality_linux32) + +if test $emacs_cv_personality_linux32 = yes; then + AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1, + [Define to 1 if personality LINUX32 can be set.]) +fi + dnl On Solaris 8 there's a compilation warning for term.h because dnl it doesn't define `bool'. AC_CHECK_HEADERS(term.h, , , -) @@ -1477,6 +1576,12 @@ if test $emacs_cv_struct_exception != yes; then AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.]) fi +AC_CHECK_HEADERS(sys/socket.h) +AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT +#if HAVE_SYS_SOCKET_H +#include +#endif]) + dnl checks for structure members AC_STRUCT_TM AC_STRUCT_TIMEZONE @@ -1484,6 +1589,16 @@ AC_CHECK_MEMBER(struct tm.tm_gmtoff, [AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],, [#include ]) +AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, + struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr, + struct ifreq.ifr_addr], , , + [AC_INCLUDES_DEFAULT +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_NET_IF_H +#include +#endif]) dnl checks for compiler characteristics @@ -1509,6 +1624,8 @@ AH_TEMPLATE(POINTER_TYPE, [Define as `void' if your compiler accepts `void *'; otherwise define as `char'.])dnl + + dnl This could be used for targets which can have both byte sexes. dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally. dnl AC_C_BIGENDIAN @@ -1569,6 +1686,20 @@ else fi fi +HAVE_CARBON=no +if test "${with_carbon}" != no; then + AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) +fi +if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then + if test "${with_carbon+set}" != set \ + && test "${carbon_appdir_x+set}" != set; then + HAVE_CARBON=no + fi +fi +if test "${HAVE_CARBON}" = yes; then + window_system=mac +fi + case "${window_system}" in x11 ) HAVE_X_WINDOWS=yes @@ -1587,7 +1718,7 @@ dnl make this decision later: use the toolkit if we have X11R5 or newer. * ) USE_X_TOOLKIT=maybe ;; esac ;; - none ) + mac | none ) HAVE_X_WINDOWS=no HAVE_X11=no USE_X_TOOLKIT=none @@ -1683,6 +1814,22 @@ else fi AC_MSG_RESULT($HAVE_XFREE386) +dnl Check for need for bigtoc support on IBM AIX + +case ${host_os} in +aix*) + AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [ + case $GCC in + yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; + *) gdb_cv_bigtoc=-bbigtoc ;; + esac + + LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc + AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=]) + ]) + ;; +esac + # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets # used for the tests that follow. We set them back to REAL_CFLAGS and # REAL_CPPFLAGS later on. @@ -1796,7 +1943,7 @@ dnl This function defintion taken from Gnome 2.0 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page dnl also defines GSTUFF_PKG_ERRORS on error -AC_DEFUN(PKG_CHECK_MODULES, [ +AC_DEFUN([PKG_CHECK_MODULES], [ succeeded=no if test -z "$PKG_CONFIG"; then @@ -1844,7 +1991,7 @@ AC_DEFUN(PKG_CHECK_MODULES, [ if test $succeeded = yes; then ifelse([$3], , :, [$3]) else - ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + ifelse([$4], , [AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4]) fi ]) @@ -1866,13 +2013,56 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$GTK_LIBS $LIBS" HAVE_GTK=yes AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.]) USE_X_TOOLKIT=none - dnl GTK scrollbars resembles toolkit scrollbars alot, so to avoid + dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid dnl a lot if #ifdef:s, say we have toolkit scrollbars. - with_toolkit_scroll_bars=yes + if test "$with_toolkit_scroll_bars" != no; then + with_toolkit_scroll_bars=yes + fi + + dnl Check if we can use multiple displays with this GTK version. + dnl If gdk_display_open exists, assume all others are there also. + HAVE_GTK_MULTIDISPLAY=no + AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes) + if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then + AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1, + [Define to 1 if GTK can handle more than one display.]) + fi + dnl Check if we have the old file selection dialog. + dnl If gdk_display_open exists, assume all others are there also. + HAVE_GTK_FILE_SELECTION=no + AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes) + + dnl Check if we have the new file chooser dialog + dnl If gdk_display_open exists, assume all others are there also. + HAVE_GTK_FILE_CHOOSER=no + AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes) + + if test "$HAVE_GTK_FILE_SELECTION" = yes \ + && test "$HAVE_GTK_FILE_CHOOSER" = yes; then + AC_DEFINE(HAVE_GTK_FILE_BOTH, 1, + [Define to 1 if GTK has both file selection and chooser dialog.]) + fi + + dnl Check if pthreads are available. Emacs only needs this when using + dnl gtk_file_chooser under Gnome. + if test "$HAVE_GTK_FILE_CHOOSER" = yes; then + HAVE_GTK_AND_PTHREAD=no + AC_CHECK_HEADERS(pthread.h) + if test "$ac_cv_header_pthread_h"; then + AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes) + fi + if test "$HAVE_GTK_AND_PTHREAD" = yes; then + GTK_LIBS="$GTK_LIBS -lpthread" + AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1, + [Define to 1 if you have GTK and pthread (-lpthread).]) + fi + fi fi dnl Do not put whitespace before the #include statements below. @@ -1938,29 +2128,6 @@ if test "${HAVE_X11}" = "yes"; then fi if test "${USE_X_TOOLKIT}" = "MOTIF"; then - AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif, - # We put this in CFLAGS temporarily to precede other -I options - # that might be in CFLAGS temporarily. - # We put this in CPPFLAGS where it precedes the other -I options. - OLD_CPPFLAGS=$CPPFLAGS - OLD_CFLAGS=$CFLAGS - CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" - CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" - [AC_TRY_COMPILE([#include ], - [int x = 5;], - emacs_cv_lesstif=yes, emacs_cv_lesstif=no)]) - if test $emacs_cv_lesstif = yes; then - # Make sure this -I option remains in CPPFLAGS after it is set - # back to REAL_CPPFLAGS. - # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not - # have those other -I options anyway. Ultimately, having this - # directory ultimately in CPPFLAGS will be enough. - REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" - LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" - else - CFLAGS=$OLD_CFLAGS - CPPFLAGS=$OLD_CPPFLAGS - fi AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1, [AC_TRY_COMPILE([#include ], [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1) @@ -1979,6 +2146,30 @@ Motif version prior to 2.1. AC_DEFINE(HAVE_LIBXP, 1, [Define to 1 if you have the Xp library (-lXp).]) fi + else + AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif, + # We put this in CFLAGS temporarily to precede other -I options + # that might be in CFLAGS temporarily. + # We put this in CPPFLAGS where it precedes the other -I options. + OLD_CPPFLAGS=$CPPFLAGS + OLD_CFLAGS=$CFLAGS + CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" + CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" + [AC_TRY_COMPILE([#include ], + [int x = 5;], + emacs_cv_lesstif=yes, emacs_cv_lesstif=no)]) + if test $emacs_cv_lesstif = yes; then + # Make sure this -I option remains in CPPFLAGS after it is set + # back to REAL_CPPFLAGS. + # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not + # have those other -I options anyway. Ultimately, having this + # directory ultimately in CPPFLAGS will be enough. + REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" + LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" + else + CFLAGS=$OLD_CFLAGS + CPPFLAGS=$OLD_CPPFLAGS + fi fi fi @@ -2017,17 +2208,63 @@ if test "${with_toolkit_scroll_bars}" != "no"; then elif test "${HAVE_GTK}" = "yes"; then AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_CARBON}" = "yes"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + USE_TOOLKIT_SCROLL_BARS=yes fi fi -dnl Don't use X11 input methods if user specifies he doesn't want it -dnl with `--with-xim=no'. +dnl See if XIM is available. +AC_TRY_COMPILE([ + #include + #include ], + [XIMProc callback;], + HAVE_XIM=yes + AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available]), + HAVE_XIM=no) + +dnl `--with-xim' now controls only the initial value of use_xim at run time. if test "${with_xim}" != "no"; then AC_DEFINE(USE_XIM, 1, [Define to 1 if we should use XIM, if it is available.]) fi + +if test "${HAVE_XIM}" != "no"; then + late_CFLAGS=$CFLAGS + if test "$GCC" = yes; then + CFLAGS="$CFLAGS --pedantic-errors" + fi + AC_TRY_COMPILE([ +#include +#include ], +[Display *display; +XrmDatabase db; +char *res_name; +char *res_class; +XIMProc callback; +XPointer *client_data; +#ifndef __GNUC__ +/* If we're not using GCC, it's probably not XFree86, and this is + probably right, but we can't use something like --pedantic-errors. */ +extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*, + char*, XIMProc, XPointer*); +#endif +(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback, + client_data);], + [emacs_cv_arg6_star=yes]) + AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6, + [Define to the type of the 6th arg of XRegisterIMInstantiateCallback, +either XPointer or XPointer*.])dnl + if test "$emacs_cv_arg6_star" = yes; then + AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*]) + else + AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer]) + fi + CFLAGS=$late_CFLAGS +fi + ### Use -lXpm if available, unless `--with-xpm=no'. HAVE_XPM=no if test "${HAVE_X11}" = "yes"; then @@ -2083,8 +2320,12 @@ fi HAVE_PNG=no if test "${HAVE_X11}" = "yes"; then if test "${with_png}" != "no"; then - AC_CHECK_HEADER(png.h, - AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)) + # Debian unstable as of July 2003 has multiple libpngs, and puts png.h + # in /usr/include/libpng. + AC_CHECK_HEADERS(png.h libpng/png.h) + if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then + AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm) + fi fi if test "${HAVE_PNG}" = "yes"; then @@ -2123,15 +2364,12 @@ if test "${HAVE_X11}" = "yes"; then fi fi -### Use Mac OS X Carbon API to implement GUI. -HAVE_CARBON=no -if test "${with_carbon}" != "no"; then - AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) -fi +dnl Check for malloc/malloc.h on darwin +AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the header file.])) +### Use Mac OS X Carbon API to implement GUI. if test "${HAVE_CARBON}" = "yes"; then AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.]) - window_system=mac ## Specify the install directory carbon_appdir= if test "${carbon_appdir_x}" != ""; then @@ -2142,13 +2380,22 @@ if test "${HAVE_CARBON}" = "yes"; then fi # We also have mouse menus. HAVE_MENUS=yes + + tmp_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -framework Carbon" + AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no) + if test "$have_cmt" = yes; then + AC_DEFINE(HAVE_CANCELMENUTRACKING, 1, + [Define to 1 if CancelMenuTracking is available (Mac OSX).]) + fi + CFLAGS="$tmp_CFLAGS" fi ### Use session management (-lSM -lICE) if available HAVE_X_SM=no if test "${HAVE_X11}" = "yes"; then AC_CHECK_HEADER(X11/SM/SMlib.h, - AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, -lICE)) + AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)) if test "${HAVE_X_SM}" = "yes"; then AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).]) @@ -2175,10 +2422,10 @@ AC_FUNC_ALLOCA # On HPUX 9.01, -lm does not contain logb, so check for sqrt. AC_CHECK_LIB(m, sqrt) -# Check for mail-locking functions in a "mail" library +# Check for mail-locking functions in a "mail" library. Probably this should +# have the same check as for liblockfile below. AC_CHECK_LIB(mail, maillock) dnl Debian, at least: -dnl AC_CHECK_LIB(lockfile, maillock, [AC_DEFINE(HAVE_LIBMAIL)]) AC_CHECK_LIB(lockfile, maillock) # If we have the shared liblockfile, assume we must use it for mail # locking (e.g. Debian). If we couldn't link against liblockfile @@ -2192,21 +2439,21 @@ if test "$ac_cv_lib_lockfile_maillock" = no; then AC_MSG_ERROR([Shared liblockfile found but can't link against it. This probably means that movemail could lose mail. There may be a `development' package to install containing liblockfile.]) - else AC_DEFINE(LIBMAIL, -llockfile, [Define to -llockfile if it is usable.]) - fi else : + fi fi AC_CHECK_FUNCS(touchlock) AC_CHECK_HEADERS(maillock.h) AC_CHECK_FUNCS(gethostname getdomainname dup2 \ -rename closedir mkdir rmdir sysinfo \ +rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \ random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ -utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \ +utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \ __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ -gai_strerror mkstemp getline getdelim mremap memmove fsync bzero memset) +gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ +memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign) AC_CHECK_HEADERS(sys/un.h) @@ -2219,8 +2466,19 @@ AC_FUNC_GETLOADAVG AC_FUNC_FSEEKO +# Configure getopt. +m4_include([m4/getopt.m4]) +gl_GETOPT_IFELSE([ + gl_GETOPT_SUBSTITUTE_HEADER + gl_PREREQ_GETOPT + GETOPTOBJS='getopt.o getopt1.o' +]) +AC_SUBST(GETOPTOBJS) + AC_FUNC_GETPGRP +AC_FUNC_STRFTIME + # UNIX98 PTYs. AC_CHECK_FUNCS(grantpt) @@ -2355,6 +2613,9 @@ if test "x$HAVE_TIMEVAL" = xyes; then fi fi +# This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. +AC_STRUCT_TIMEZONE + dnl Note that AC_STRUCT_TIMEZONE doesn't do what you might expect. if test "$ac_cv_func_gettimeofday" = yes; then AC_CACHE_CHECK([for struct timezone], emacs_cv_struct_timezone, @@ -2398,6 +2659,8 @@ dnl Fixme: Not used. Should this be HAVE_SOCKETS? [Define to 1 if you have inet sockets.]) fi +AC_CHECK_HEADERS(sys/ioctl.h) + if test -f /usr/lpp/X11/bin/smt.exp; then AC_DEFINE(HAVE_AIX_SMT_EXP, 1, [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.]) @@ -2427,6 +2690,8 @@ fi AC_CHECK_TYPES(size_t) +AC_TYPE_MBSTATE_T + dnl Restrict could probably be used effectively other than in regex.c. AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict, [AC_TRY_COMPILE([void fred (int *restrict x);], [], @@ -2454,11 +2719,16 @@ if test "$emacs_cv_c_restrict_arr" = yes; then declarations. Define as empty for no equivalent.]) fi -AC_CHECK_HEADERS(nlist.h, [AC_DEFINE(NLIST_STRUCT, 1, - [Define to 1 if you have .])]) - dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear dnl how the tty code is related to POSIX and/or other versions of termios. +dnl The following looks like a useful start. +dnl +dnl AC_SYS_POSIX_TERMIOS +dnl if test $ac_cv_sys_posix_termios = yes; then +dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions +dnl and macros for terminal control.]) +dnl AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.]) +dnl fi dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used. (Needs libobj replacement.) @@ -2567,7 +2837,8 @@ if test "${REL_ALLOC}" = "yes" ; then fi AH_TOP([/* GNU Emacs site configuration template file. - Copyright (C) 1988, 93, 94, 99, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004 + Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2583,8 +2854,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ /* No code in Emacs #includes config.h twice, but some bits of code @@ -2625,6 +2896,9 @@ AH_BOTTOM([ /* Turned on June 1996 supposing nobody will mind it. */ #define AMPERSAND_FULL_NAME +/* We have blockinput.h. */ +#define DO_BLOCK_INPUT + /* Define HAVE_SOUND if we have sound support. We know it works and compiles only on the specified platforms. For others, it probably doesn't make sense to try. */ @@ -2645,7 +2919,7 @@ AH_BOTTOM([ /* Don't try to switch on inline handling as detected by AC_C_INLINE generally, because even if non-gcc compilers accept `inline', they may reject `extern inline'. */ -#ifdef __GNUC__ +#if defined (__GNUC__) && defined (OPTIMIZE) #define INLINE __inline__ #else #define INLINE @@ -2693,7 +2967,13 @@ AH_BOTTOM([ /* Tell regex.c to use a type compatible with Emacs. */ #define RE_TRANSLATE_TYPE Lisp_Object #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C) -#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0) +#ifdef make_number +/* If make_number is a macro, use it. */ +#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0))) +#else +/* If make_number is a function, avoid it. */ +#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0)) +#endif #endif /* Avoid link-time collision with system mktime if we will use our own. */ @@ -2701,6 +2981,8 @@ AH_BOTTOM([ #define mktime emacs_mktime #endif +#define my_strftime nstrftime /* for strftime.c */ + /* The rest of the code currently tests the CPP symbol BSTRING. Override any claims made by the system-description files. Note that on some SCO version it is possible to have bcopy and not bcmp. */ @@ -2883,6 +3165,14 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}" echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" echo +if test $USE_XASSERTS = yes; then + echo " Compiling with asserts turned on." + CPPFLAGS="$CPPFLAGS -DXASSERTS=1" + echo +fi + + + # Remove any trailing slashes in these variables. [test "${prefix}" != NONE && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` @@ -2975,3 +3265,6 @@ touch src/config.stamp ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS"]) +m4_if(dnl Do not change this comment + arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e +)dnl diff --git a/etc/.arch-inventory b/etc/.arch-inventory new file mode 100644 index 00000000000..6ab642ca65c --- /dev/null +++ b/etc/.arch-inventory @@ -0,0 +1,10 @@ +# Unlike most emacs dirs, etc has a simple non-autoconf-generated makefile +source ^(Makefile)$ + +# Generated files (DOC-X is generated on windows) +backup ^(DOC(|-[0-9.]*|-X))$ + +# Install-in-place on NT makes this directory, so just ignore it +backup ^(icons)$ + +# arch-tag: 5a1d62e0-593a-48cd-8743-8d45dc58dfae diff --git a/etc/.cvsignore b/etc/.cvsignore index 38c525889bb..15e45da4361 100644 --- a/etc/.cvsignore +++ b/etc/.cvsignore @@ -1,4 +1,5 @@ fns-* +icons *.ps *.log *.dvi diff --git a/etc/CENSORSHIP b/etc/CENSORSHIP index 24bca114790..ca949aa6b6e 100644 --- a/etc/CENSORSHIP +++ b/etc/CENSORSHIP @@ -54,7 +54,7 @@ rules. Of course, I'm making an assumption about just what "indecent" means. I have to do this, because nobody knows for sure. The most obvious -possibile meaning is the meaning it has for television, so I'm using +possible meaning is the meaning it has for television, so I'm using that as a tentative assumption. However, there is a good chance that our courts will reject that interpretation of the law as unconstitutional. diff --git a/etc/COPYING b/etc/COPYING index d60c31a97a5..3912109b5cd 100644 --- a/etc/COPYING +++ b/etc/COPYING @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. @@ -313,7 +313,7 @@ Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) year name of author + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. diff --git a/etc/ChangeLog b/etc/ChangeLog index d4d161b6bdb..f60bddb818d 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,994 @@ +2006-01-15 Dan Nicolaescu + + * e/eterm-color.ti: Re-enable the ri entry. Add kich1. + +2006-01-13 Richard M. Stallman + + * emacs.1: +N applies only to next file. + +2005-12-28 Dan Nicolaescu + + * e/eterm-color.ti: Temporarily disable the ri entry. + * e/eterm-color: Regenerate. + +2005-12-21 L$,1 q(Brentey K,Aa(Broly + + * TODO: Add note on the multi-tty branch. + +2005-12-16 L$,1 q(Brentey K,Aa(Broly + + * NEWS: Change `prev-buffer' to `previous-buffer'; add note on + them using the frame-local buffer list. + +2005-12-10 David Koppelman + + * NEWS: hi-lock-mode is now buffer local, use global-hi-lock-mode + instead. + +2005-12-02 Jay Belanger + + * NEWS: Add comment about the Calc prefix. + +2005-11-28 Thien-Thi Nguyen + + * MORE.STUFF: Add entry: "Go in a buffer: Go Text Protocol client". + +2005-11-18 Chong Yidong + + * images/icons/emacs_16.png, images/icons/emacs_24.png + * images/icons/emacs_32.png, images/icons/emacs_48.png: + New Emacs icons. + +2005-11-18 Carsten Dominik + + * orgcard.tex: Version 3.20 + +2005-11-16 Nick Roberts + + * images/gud/go.xpm, images/gud/go.pbm: Old gud-remove icons. + Use for run/continue. + * images/gud/stop.xpm, images/gud/stop.pbm: Old gud-break icons. + Use for interrupting inferior. + * images/gud/pp.xpm, images/gud/pstar.xpm, images/gud/until.xpm: + Use a more appropriate variable name. + * images/gud/remove.xpm, images/gud/remove.pbm + * images/gud/break.xpm, images/gud/break.pbm: Make more intuitive. + +2005-11-09 Nick Roberts + + * images/gud/pp.xpm, images/gud/pp.pbm: New icons. + +2005-11-06 Jan Dj,Ad(Brv + + * images/copy.xpm, images/copy.pbm, images/low-color/copy.xpm + * images/save.xpm, images/save.pbm, images/low-color/save.xpm: + Adjust baseline. + +2005-11-06 Jan Dj,Ad(Brv + + * images/up-node.xpm, images/prev-node.xpm, images/next-node.xpm + * images/up-node.pbm, images/prev-node.pbm, images/next-node.pbm + * images/low-color/up-node.xpm, images/low-color/prev-node.xpm + * images/low-color/next-node.xpm: Adjust paper size and layout. + +2005-11-05 Nick Roberts + + * DEBUG: Describe how to provide preprocessor macro information. + +2005-11-04 Jan Dj,Ad(Brv + + * images/up-node.xpm, images/prev-node.xpm, images/next-node.xpm + * images/up-node.pbm, images/prev-node.pbm, images/next-node.pbm + * images/low-color/up-node.xpm, images/low-color/prev-node.xpm + * images/low-color/next-node.xpm: New images. + +2005-11-04 Carsten Dominik + + * orgcard.tex (section{Notes}): Version number change. + +2005-11-03 Romain Francoise + + * orgcard.tex: Update FSF's address. + +2005-11-03 Nick Roberts + + * DEBUG: GDB can sometimes expand macros. + +2005-11-01 Romain Francoise + + * NEWS: Source files are compressed by default. + +2005-10-28 Bill Wohler + + * NEWS: Help mode now creates hyperlinks for URLs. + +2005-10-27 Dan Nicolaescu + + * e/eterm-color.ti (el1): Undo 2005-10-23 change. + Add some comments on how to update this file. Add ri + capability that has long been supported by term.el. + +2005-10-25 Nick Roberts + + * images/gud/until.xpm: Colour correction. + +2005-10-23 Richard M. Stallman + + * e/eterm-color.ti (el1): Capability deleted, + since term.el doesn't implement it. + +2005-10-20 Dan Nicolaescu + + * e/eterm-color.ti: Change the terminal name to eterm-color. + * e/eterm-color: Regenerate. + +2005-10-20 Bryan Henderson (tiny change) + + * Makefile (e/eterm-color): Rename eterm to eterm-color. + +2005-10-18 Chong Yidong + + * NEWS: New variable `max-image-size'. + +2005-10-17 Bill Wohler + + Moved all remaining images from lisp/toolbar to etc/images. The + low resolution images were placed in their own directory (low-color). + + * images/attach.*, images/cancel.*, images/close.*: + * images/copy.*, images/cut.*, images/diropen.*: + * images/exit.*, images/help.*, images/home.*: + * images/index.*, images/info.*, images/mail.*: + * images/new.*, images/open.*, images/paste.*: + * images/preferences.*, images/print.*, images/save.*: + * images/saveas.*, images/search.*: + * images/search-replace.*, images/spell.*: + * images/undo.*: Moved here from lisp/toolbar. + + * images/low-color/copy.*: Moved here from lisp/toolbar/lc-copy.*. + * images/low-color/cut.*: Moved here from lisp/toolbar/lc-cut.*. + * images/low-color/help.*: Moved here from lisp/toolbar/lc-help.*. + * images/low-color/home.*: Moved here from lisp/toolbar/lc-home.*. + * images/low-color/index.*: Moved here from lisp/toolbar/lc-index.*. + * images/low-color/new.*: Moved here from lisp/toolbar/lc-new.*. + * images/low-color/open.*: Moved here from lisp/toolbar/lc-open.*. + * images/low-color/paste.*: Moved here from lisp/toolbar/lc-paste.*. + * images/low-color/preferences.*: Moved here from + lisp/toolbar/lc-preferences.*. + * images/low-color/print.*: Moved here from lisp/toolbar/lc-print.*. + * images/low-color/save.*: Moved here from lisp/toolbar/lc-save.*. + * images/low-color/saveas.*: Moved here from lisp/toolbar/lc-saveas.*. + * images/low-color/search.*: Moved here from lisp/toolbar/lc-search.*. + * images/low-color/spell.*: Moved here from lisp/toolbar/lc-spell.*. + * images/low-color/undo.*: Moved here from lisp/toolbar/lc-undo.*. + + To conform with convention, the underscore (_) in the following + image names were replaced with dash (-) or (/) as appropriate. + + * images/back-arrow.*: Moved here from lisp/toolbar/back_arrow.*. + * images/fld-open.*: Moved here from lisp/toolbar/fld_open.*. + * images/fwd-arrow.*: Moved here from lisp/toolbar/fwd_arrow.*. + * images/jump-to.*: Moved here from lisp/toolbar/jump_to.*. + * images/left-arrow.*: Moved here from lisp/toolbar/left_arrow.*. + * images/right-arrow.*: Moved here from lisp/toolbar/right_arrow.*. + * images/up-arrow.*: Moved here from lisp/toolbar/up_arrow.*. + * images/low-color/back-arrow.*: Moved here from + lisp/toolbar/lc-back_arrow.*. + * images/low-color/fwd-arrow.*: Moved here from + lisp/toolbar/lc-fwd_arrow.*. + * images/low-color/jump-to.*: Moved here from + lisp/toolbar/lc-jump_to.*. + * images/low-color/left-arrow.*: Moved here from + lisp/toolbar/lc-left_arrow.*. + * images/low-color/right-arrow.*: Moved here from + lisp/toolbar/lc-right_arrow.*. + * images/low-color/up-arrow.*: Moved here from + lisp/toolbar/lc-up_arrow.*. + * images/mail/compose.*: Moved here from lisp/toolbar/mail_compose.*. + * images/mail/send.*: Moved here from lisp/toolbar/mail_send.*. + + * images/README: Incorporated the content of lisp/toolbar/README + now that all of the images are here. + +2005-10-16 Nick Roberts + + * images/gud/n.pbm, images/gud/n.xpm + * images/gud/ni.xpm, images/gud/ni.xpm + * images/gud/s.xpm, images/gud/s.xpm + * images/gud/si.xpm, images/gud/si.xpm: Rename to + next.*, nexti.*, step.*, and stepi.* , respectively, as the + file-name no longer clashes on 8+3 filesystems. + +2005-10-14 Bill Wohler + + * images/gud/break.*: Moved here from toolbar/gud-break.*. + * images/gud/cont.*: Moved here from toolbar/gud-cont.*. + * images/gud/down.*: Moved here from toolbar/gud-down.*. + * images/gud/finish.*: Moved here from toolbar/gud-finish.*. + * images/gud/ni.*: Moved here from toolbar/gud-ni.*. + * images/gud/n.*: Moved here from toolbar/gud-n.*. + * images/gud/print.*: Moved here from toolbar/gud-print.*. + * images/gud/pstar.*: Moved here from toolbar/gud-pstar.*. + * images/gud/remove.*: Moved here from toolbar/gud-remove.*. + * images/gud/run.*: Moved here from toolbar/gud-run.*. + * images/gud/si.*: Moved here from toolbar/gud-si.*. + * images/gud/s.*: Moved here from toolbar/gud-s.*. + * images/gud/until.*: Moved here from toolbar/gud-until.*. + * images/gud/up.*: Moved here from toolbar/gud-up.*. + * images/gud/watch.*: Moved here from toolbar/gud-watch.*. + +2005-10-14 Bill Wohler + + Released MH-E version 7.85. + + * NEWS, MH-E-NEWS: Updated for release 7.85. + +2005-10-10 Jan Dj,Ad(Brv + + * NEWS: -nb => -nbi + +2005-10-10 Carsten Dominik + + * orgcard.tex: Version 3.17, no changes except version number. + +2005-10-09 Jan Dj,Ad(Brv + + * NEWS: -nb, --no-bitmap-icon + +2005-10-02 Stefan Monnier + + * TODO: Clarify the local variables entry. + +2005-09-30 Bill Wohler + + Moved MH-E image files from toolbar and mail directories into + images. + + * images/mail: New directory. + + * images/mail/reply.*: Moved here from lisp/mail/reply2*. + + * images/mail/alias.*, images/mail/refile.*, images/mail/repack.*: + * images/mail/reply*: Moved here from lisp/toolbar. + + * images/execute.*, images/highlight.*, images/mh-logo.xpm: + * images/page-down.*, images/show.*, images/widen.*: Moved here + from lisp/toolbar. + + * images/refresh.*: Moved here from lisp/toolbar/rescan.*. + Use GNOME 2.10's refresh icon. + + * images/README: New file that indicates which icons came from + GNOME (see lisp/toolbar/README). + +2005-09-30 Romain Francoise + + * NEWS: Mention changes to `read-buffer'. + +2005-09-30 Chong Yidong + + * images/ezimage: New directory. + + * images/ezimage/*.xpm: Add images used by speedbar.el. + +2005-09-30 David Ponce + + * NEWS: Update recentf changes. + +2005-09-28 Simon Josefsson + + * GNUS-NEWS: Fix IDNA notes. + +2005-09-27 Jay Belanger + + * calccard.tex: Update `versionnumber', remove `versiondate'. + (Error Recovery): Refer to "initial state" rather than "default state". + (Algebra): Mention LaTeX language mode. + (Programming): Delete reference to "Z =". + +2005-09-24 Steven Huwig (tiny change) + + * emacs.py (ehelp): Add g and l to arg list, and use them in the + call to `help'. + +2005-09-17 Romain Francoise + + * gfdl.1: Update to version 1.2. Delete UC macro. + +2005-09-15 Kenichi Handa + + * PROBLEMS: Fix the paragraph describing the limitation of UTF-8/16/7. + +2005-09-14 Romain Francoise + + * NEWS: Add entry for write-region-inhibit-fsync. + +2005-09-09 Kevin Ryde + + * MORE.STUFF: Update url for calculator.el. + +2005-09-08 Kenichi Handa + + * PROBLEMS: Show a patch for Mule-UCS to make it byte-compiled + correctly. + +2005-08-31 Michael Albinus + + * NEWS: Add entry for `make-auto-save-file-name'. + +2005-08-19 Emilio C. Lopes + + * emacsclient.1 (DESCRIPTION): Reflect inclusion in the + Emacs distribution. Make role of EDITOR clearer. + (OPTIONS): Document `-s', `-V' and `-h' + as well as their long name counterparts. + (BUGS): Remove. + +2005-08-26 Romain Francoise + + * PROBLEMS: Fix capitalization of "Gnus". + +2005-08-20 Chong Yidong + + * MORE.STUFF: Update links and URLs. + +2005-08-05 Kenichi Handa + + * NEWS: Fix the entry describing code-pages. + +2005-07-28 Juanma Barranquero + + * .cvsignore: Add `icons' (for in-place installs). + +2005-07-19 Juri Linkov + + * grep.txt: New file. + +2005-07-19 Jan Dj,Ad(Brv + + * PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping): + -R comes after i386 in setarch command. + +2005-07-12 Juri Linkov + + * refcard.tex (Files): Change description of `C-x C-q' from + `checkin/checkout' to `toggle read-only'. + (Getting Help): Replace `C-h c' with `C-h k'. + (Error Recovery): Replace `recover-file' with `recover-session'. + (Info): Replace key binding `C-h C-i' with `C-h S'. Add `t'. + +2005-07-07 Richard M. Stallman + + * GNU: Update how to help. Improve footnote 7. + +2005-07-07 Lute Kamstra + + * tasks.texi: Delete file. The GNU Task List is obsolete and has + been replaced by http://savannah.gnu.org/projects/tasklist. + +2005-07-07 Lute Kamstra + + * refcard.tex: Update `versionnumber' and `year'. Update Emacs's + version to 22. + (Starting Emacs): Delete sentence to fix formatting problems. + (Multiple Windows): Clarify first sentence. Mention C-x 5 1. + (Formatting): Update the binding of set face. + (International Character Sets): set-language-environment is bound + to C-x RET l. + +2005-07-05 Lute Kamstra + + Update FSF's address in GPL notices. + + * INTERVIEW: + * calccard.tex: + * cs-dired-ref.tex: + * cs-refcard.tex: + * dired-ref.tex: + * fr-drdref.tex: + * fr-refcard.tex: + * gfdl.1: + * pl-refcard.tex: + * refcard.tex: + * ru-refcard.tex: + * sk-dired-ref.tex: + * sk-refcard.tex: + * vipcard.tex: + * viperCard.tex: Update FSF's address. + +2005-07-03 Jan Dj,Ad(Brv + + * PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping): + Add it again. + +2005-06-29 Carsten Dominik + + * NEWS: Add an entry for Org-mode, and a change entry for reftex-mode. + +2005-06-28 Richard M. Stallman + + * PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping): New. + +2005-06-11 Eli Zaretskii + + * DEBUG: Mention emacs-buffer.gdb. + +2005-06-10 Noah Friedman + + * emacs-buffer.gdb (ybuffer-list): Don't use $filename; can't use + char as placeholder when buffer has no file name and process is + still live. Use different printf cases instead. + +2005-06-08 Kim F. Storm + + * PROBLEMS: Linux kernel 2.6.10 may corrupt process output. + Warn that using CVS+SSH may corrupt files, include work-around. + +2005-06-06 Juri Linkov + + * TUTORIAL.cs, TUTORIAL.sk: Change NBSP to space. + + * TUTORIAL.ro: Change NBSP to space. Move coding cookie from the + second line to Local Variables. Fix title line. + +2005-05-30 Miles Bader + + * emacs-buffer.gdb: Remove RCS keywords. + +2005-05-30 Noah Friedman + + * emacs-buffer.gdb: New file. + * NEWS: Mention it. + +2005-05-28 Richard M. Stallman + + * TUTORIAL.fr: Change NBSP to space. + +2005-05-28 Bill Wohler + + * NEWS, MH-E-NEWS: Upgraded to MH-E version 7.84. + +2005-05-19 Nick Roberts + + * TODO: post-command-idle-hook has gone. + +2005-05-16 Juanma Barranquero + + * NEWS: Remove references to open-network-stream-nowait and + open-network-stream-server. + +2005-05-15 Richard M. Stallman + + * GNU: Correct/improve previous change. + +2005-05-14 Richard M. Stallman + + * GNU: Update footnotes. + + * NEWS: Lots of clarifications and cleanups. + +2005-05-05 Slawomir Nowaczyk (tiny change) + + * TUTORIAL.pl: Updated header. + +2005-05-02 Richard M. Stallman + + * NEWS: More rearrangements. + +2005-05-02 Chong Yidong + + * NEWS: Items rearranged in logical order. + +2005-05-01 Lars Hansen + + * NEWS: Correct key binding for dired-mark-omitted. + +2005-04-25 Dan Nicolaescu + + * NEWS: Mention xterm key bindings. + + * e/eterm.ti: Add a comment. + * e/eterm: Regenerate. + +2005-04-25 Alex Ott + + * TUTORIAL.ru: Update. + +2005-04-13 Pavel Jan,Am(Bk + + * TUTORIAL.sk: Updated header. + +2005-04-12 Jan Dj,Ad(Brv + + * NEWS: Mention cursorBlink resource. + +2005-04-12 YAMAMOTO Mitsuharu + + * NEWS: Mention dynamic change of keyboard-coding-system on Mac. + +2005-04-10 Jan Dj,Ad(Brv + + * NEWS: Mention fontSet for Lucid menus. + +2005-04-10 Masatake YAMATO + + * compilation.txt (symbol): Add gcov-file + gcov-bb-file gcov-never-called-line gcov-called-line. + +2005-04-08 Kenichi Handa + + * TUTORIAL.ja: Updated header, contents synchronized with + TUTORIAL (CVS-1.61). + +2005-04-06 Pavel Jan,Am(Bk + + * TUTORIAL.cs: Updated header. + +2005-04-05 Werner Lemberg + + * TUTORIAL.de: Updated header. + +2005-04-05 Marcelo Toledo + + * TUTORIAL.translators: Added the field Maintainer. + +2005-04-04 Thien-Thi Nguyen + + * TUTORIAL.it: Move "copying conditions at end" sentence after title. + +2005-04-04 Thien-Thi Nguyen + + * TUTORIAL.ja: Update text before first period. + Reported by Kenichi Handa. + +2005-04-02 Richard M. Stallman + + * TUTORIAL.ja, TUTORIAL.cn, TUTORIAL.ru, TUTORIAL.zh: Remove the + old intro line that apparently was a longer version of "Emacs + tutorial". + + * TUTORIAL.es: Clean up line breaks. + +2005-04-01 Marcelo Toledo + + * TUTORIAL.pt_BR, TUTORIAL.cn, TUTORIAL.cs, TUTORIAL.de, + * TUTORIAL.es, TUTORIAL.fr, TUTORIAL.it, TUTORIAL.ja, TUTORIAL.ko, + * TUTORIAL.pl, TUTORIAL.pt_BR, TUTORIAL.ro, TUTORIAL.ru, + * TUTORIAL.sk, TUTORIAL.sl, TUTORIAL.th, TUTORIAL.zh: Fix title line. + +2005-04-01 Ognyan Kulev + + * TUTORIAL.bg: Fix title line; Applied TUTORIAL changes in + revision 1.59, "Emacs" is not transliterated to cyrillic anymore; + Minor fixes. + +2005-04-01 Mats Lidell + + * TUTORIAL.sv: Sync some other changes with the TUTORIAL version + 1.61 in CVS. + +2005-04-01 Lute Kamstra + + * TUTORIAL.nl: Fix title line. + +2005-03-30 Thien-Thi Nguyen + + * TUTORIAL: Add title line. + * TUTORIAL.bg, TUTORIAL.cn, TUTORIAL.cs, TUTORIAL.de, + * TUTORIAL.es, TUTORIAL.fr, TUTORIAL.it, TUTORIAL.ja, + * TUTORIAL.ko, TUTORIAL.nl, TUTORIAL.pl, TUTORIAL.pt_BR, + * TUTORIAL.ro, TUTORIAL.ru, TUTORIAL.sk, TUTORIAL.sl + * TUTORIAL.sv, TUTORIAL.th, TUTORIAL.zh: Likewise. + +2005-03-29 Reiner Steib + + * gnus-refcard.tex, gnus-logo.eps: New files. + +2005-03-23 David Ponce + + * NEWS: Mention recentf-keep. + +2005-03-17 Lute Kamstra + + * TODO: Remove define-generic-mode entry (DONE). + +2005-03-10 Michael Albinus + + * NEWS: Explain how to default Tramp to FTP. + +2005-03-05 YAMAMOTO Mitsuharu + + * NEWS: Mention Carbon build on Mac OS 9. + +2005-03-01 David Kastrup + + * DEBUG: Add information about `-fno-crossjumping' for GCC. + +2005-02-14 Lute Kamstra + + * TODO: Remove battery.el entry (DONE). + + * TUTORIAL.nl: Synchronize with TUTORIAL. Correct some typos. + Make the terminology more consistent. Fill the text using the + default `fill-column'. + +2005-02-08 Lute Kamstra + + * TUTORIAL: Remove some uses of the term "buffer" before it is + properly introduced. Update the description of the mode line. + Consistently use "" to denote the ESC key and "" to + denote the Space bar. Capitalize all command descriptions. + +2005-02-06 Richard M. Stallman + + * DEBUG: Minor clarification. + +2005-02-05 Frederik Fouvry + + * emacs.bash: Update the name of the socket of the Emacs server. + +2005-01-22 David Kastrup + + * NEWS: Mention alias `find-grep' for `grep-find'. + +2005-01-22 Nick Roberts + + * TODO: Add entry for toolbar on ttys. + +2005-01-18 Nick Roberts + + * DEBUG: Suggest separate terminal for debug session. + +2005-01-15 Frederik Fouvry + + * TUTORIAL.nl: Correct translation and the Dutch text (typos). + More consistent use of terminology. + +2005-01-13 Cheng Gao + + * MORE.STUFF: Add entries of some well known and widely used packages. + +2005-01-07 Lars Hansen + + * NEWS: Describe desktop package lazy restore feature. + +2004-12-21 Richard M. Stallman + + * DISTRIB: Don't say "freeware". + +2004-12-15 Nick Roberts + + * DEBUG: Change printing example to break on a procedure name. + +2004-12-11 Dan Nicolaescu + + * e/eterm.ti: Add rs1. + * e/eterm: Regenerate. + +2004-12-08 Alexandre VEYRENC (tiny change) + + * fr-refcard.tex: Fix typos. + +2004-12-07 Jan Dj,Ad(Brv + + * PROBLEMS: Update information about klipper on KDE. + +2004-11-26 Jan Dj,Ad(Brv + + * NEWS: Rename use-old-gtk-file-dialog to x-use-old-gtk-file-dialog. + +2004-10-08 Fr,Ai(Bd,Ai(Bric Bothamy (tiny change) + + * TUTORIAL.fr: Minor wording fix. + +2004-10-04 Luc Teirlinck + + * enriched.doc: Update for new bindings of `set-left-margin' and + `set-right-margin'. + +2004-10-04 Kim F. Storm + + * DEBUG: Mention pp and ff commands. + +2004-09-26 Luc Teirlinck + + * enriched.doc: `enriched-annotation-alist' is now called + `enriched-translations'. + +2004-09-26 Dan Nicolaescu + + * e/eterm.ti: Comment out smcup, rmcup. Add kbs, kdch1, rc, sc. + Reformat. + * e/eterm: Regenerate. + +2004-09-25 Jan Dj,Ad(Brv + + * PROBLEMS: Updated exec-shield description. + +2004-09-16 Dan Nicolaescu + + * e/eterm.ti: Change the strings for smso and rmso. + e/eterm: Regenerate. + +2004-09-09 Thien-Thi Nguyen + + * MORE.STUFF (EDB): Update entry. + +2004-09-07 Dan Nicolaescu + + * e/eterm.ti: Add `op' entry to enable colors in term. + * e/eterm: Regenerate. + +2004-09-04 Eric S. Raymond + + * PROBLEMS: More reorganization to exile old stuff to the + pre-2000 section. I looked up end-of-life dates for a bunch + of old Unixes to check. + +2004-08-24 Bill Wohler + + * NEWS, MH-E-NEWS: Upgraded to MH-E version 7.82. + +2004-08-22 David Kastrup + + * PROBLEMS, MAILINGLISTS: Update AUCTeX information. + +2004-08-21 Bill Wohler + + * NEWS, MH-E-NEWS: Upgraded to MH-E version 7.81. + +2004-08-21 Eric S. Raymond + + * PROBLEMS: Massively rearranged by category, to make environment + features and symptoms easier to find. Bugs relating to + 20th-century systems moved to the end. Most problem headers + changed to "object: variation" format. + +2004-08-15 Bill Wohler + + * NEWS, MH-E-NEWS: Upgraded to MH-E version 7.4.80. + +2004-08-14 Romain Francoise + + * NEWS: Mention the thumbs.el package. + +2004-08-14 Eric Hanchrow + + * TUTORIAL.es: Replace actual whitespace with the magic string + that causes help-with-tutorial to automatically insert the correct + amount. + +2004-08-10 Steven Tamm + + * PROBLEMS: Remove description of Mac OS version upgrade + problems as it is no longer applicable. + +2004-07-27 Werner Lemberg + + * NEWS: Document all new tutorials. + +2004-08-05 Reiner Steib + + * GNUS-NEWS: Import from the v5_10 branch of the Gnus repository. + + * NEWS (Gnus package): Gnus includes Sieve and PGG. Gnus changes + are described in GNUS-NEWS. + +2004-08-02 Reiner Steib + + * gnus.xpm, gnus-pointer.xbm, gnus-pointer.xpm: Import from the + v5_10 branch of the Gnus repository. + +2004-07-14 Luc Teirlinck + + * MORE.STUFF: Tramp is now distributed with Emacs. + +2004-07-12 Bill Wohler + + * NEWS, MH-E-NEWS: Upgraded to MH-E version 7.4.4. + +2004-07-08 David Kastrup + + * NEWS (Lisp changes in 21.4): Document (match-data t) change. + +2002-06-26 Eli Zaretskii + + * FOR-RELEASE: Moved to the admin directory. + +2004-06-24 David Kastrup + + * NEWS: Move description from new paragraph-start and + indent-line-function defaults to general news instead of new + packages. Same for query-replace-skip-read-only. + Add description of new `\,' and `\?' replacement string features. + +2004-06-23 Luc Teirlinck + + * MORE.STUFF: Delete obsolete URL. + +2004-06-10 Lars Hansen + + * NEWS: Describe dired-omit-mode. Describe desktop package changes. + +2004-05-29 Steven Tamm + + * PROBLEMS: Document the workaround for the Mac OS X port not + picking up the environment variables from dotfiles. + +2004-05-16 Juri Linkov + + * TUTORIAL.pt_BR: Add coding: latin-1, sentence-end-double-space: nil. + + * ru-refcard.tex: Add C-u and RET to `C-h t Russian'. + +2004-05-15 Alex Ott + + * ru-refcard.tex, ru-refcard.ps: New files. + +2004-05-14 David Ponce + + * tree-widget: New directory containing tree-widget themes and images. + +2004-04-13 Marcelo Toledo + + * TUTORIAL.pt_BR: initial check-in. + +2004-05-06 Dave Love + + * emacs.py: New file for python-mode's internal use. + +2004-04-22 Stefan Monnier + + * TODO: Use outline mode. Remove compile.el entry (done). + +2004-04-18 Juri Linkov + + * TUTORIAL.fr, TUTORIAL.pl, TUTORIAL.ru, TUTORIAL.sl, TUTORIAL.sv + * TUTORIAL.th: Add sentence-end-double-space: nil. + + * TUTORIAL.it, TUTORIAL.nl, TUTORIAL.sv: Add coding: latin-1. + +2004-04-16 Alex Ott + + * TUTORIAL.ru: Various corrections. + +2004-04-14 Jan Nieuwenhuizen + + * TUTORIAL.nl: Update Delete/Delback translation. + +2004-04-05 Jesper Harder + + * TODO: Remove index-apropos entry. + +2004-04-01 Juri Linkov + + * HELLO: Add Javanese. + +2004-03-29 Vinicius Jose Latorre + + * ps-prin1.ps: Clip the header and footer area, so text will not be + printed outside header or footer, respectively. + (HeaderClip, FooterClip): New PostScript funs. + (HeaderText, FooterText): Adjust PostScript code. + +2004-03-29 Jan Dj,Ad(Brv + + * TODO: Removed drag-and-drop entry (DONE). + +2004-03-19 Kim F. Storm + + * TODO: Remove entries for fringe related issues (DONE). + Remove entry about image-relative coordinates of mouse clicks (DONE). + +2004-03-11 Daniel Pfeiffer + + * compilation.txt: New file. + +2004-02-29 Juanma Barranquero + + * NEWS: Remove bogus reference to user option unicode-data. + +2004-02-16 Klaus Zeitler + + * PROBLEMS: Document crashes on X when build with GCC and GNU ld. + +2004-02-08 Andreas Schwab + + * NEWS: Fix typo. + +2003-12-29 Ognyan Kulev + + * TUTORIAL.bg: Use windows-1251 encoding. Fix punctuation errors. + +2003-11-21 Lars Hansen + + * TODO: Add plans for change of file attributes UID and GID from + integer to string. + +2003-11-10 Kailash C. Chowksey + + * HELLO: Add Kannada. + +2003-11-05 Juri Linkov + + * HELLO: Fix language names. Add C, Braille, Georgian, Ukrainian. + Add IPA pronunciation to English. Fix tab widths. + +2003-11-03 David Ponce + + * PROBLEMS: Document segfaults with Linux kernels that enable the + Exec-shield functionality. + +2003-10-30 Kenichi Handa + + * HELLO: Fix cases of language names. Make German lines one. + Delete FORTRAN, add Mathematics. + +2003-10-24 Jan Dj,Ad(Brv + + * PROBLEMS: Characters are displayed as empty boxes or + with wrong font under X. + +2003-09-30 Werner Lemberg + + * TUTORIAL.de: Minor updates and grammatical fixes. + +2003-09-02 Glenn Morris + + * TODO: Add invisible text kill/yank issue. + +2003-08-29 Wim Nieuwenhuizen + + * TUTORIAL.nl: Many changes. + +2003-08-20 Stephen Eglen + + * MORE.STUFF: Update URLs for several projects. + +2003-07-22 Andrew Choi + + * PROBLEMS: Truncated process output with pty's on Mac OS X. + +2003-07-14 Nick Roberts + + * NEWS: Merge in the changes for versions 21.2 and 21.3 as + documented on the EMACS_21_1_RC branch. + +2003-03-03 Chao-Hong Liu + + * TUTORIAL.cn: Updated. + * TUTORIAL.zh: Updated. + +2003-04-24 Bill Wohler + + * MH-E-NEWS: Upgraded to MH-E version 7.3. + +2003-04-03 Kenichi Handa + + * HELLO: Fix the malayalam line. + +2003-04-01 Dave Love + + * letter.xpm: Use transparent/opaque `colours'. + + * letter.xbm: Deleted. + + * letter.pbm: New. + +2003-03-24 Andreas Schwab + + * HELLO: Remove extra TAB in Greek entries. + +2003-03-03 Chao-Hong Liu + + * TUTORIAL.cn, TUTORIAL.zh: New files. + + * TUTORIAL.translator: List TUTORIAL.cn and TUTORIAL.zh. + +2003-02-24 Kenichi Handa + + * HELLO: Add Malayalam. + 2003-02-13 Dave Love * TUTORIAL.es: Add coding spec. @@ -28,10 +1019,10 @@ * TUTORIAL.pl: Updated. -2003-01-11 Pavel Jan,Bm(Bk +2003-01-11 Pavel Jan,Am(Bk * TUTORIAL.sk: Updated to reflect changes in English version. - From Miroslav Va,B9(Bko . + From Miroslav Va$,1!!(Bko . 2003-01-09 Francesco Potort,Al(B @@ -54,10 +1045,9 @@ * MH-E-NEWS: Upgraded to MH-E version 7.0. -2002-11-22 Juanma Barranquero +2002-11-22 Rafael Sep,Az(Blveda - * TUTORIAL.es: Extensively changed and updated by Rafael Sep,Az(Blveda - . + * TUTORIAL.es: Extensively changed and updated. 2002-10-01 Bill Wohler @@ -101,7 +1091,7 @@ * termcap.src: New version from ftp://invisible-island.net. -2002-03-24 Pavel Jan,Bm(Bk +2002-03-24 Pavel Jan,Am(Bk * TUTORIAL.translators: New file, list of tutorial translators. @@ -109,15 +1099,15 @@ * gnus.xpm: Remove garbages. -2002-01-27 Pavel Jan,Bm(Bk +2002-01-27 Pavel Jan,Am(Bk * letter.xpm: New file, XPM variant of letter.xbm. -2001-12-03 Pavel Jan,Bm(Bk +2001-12-03 Pavel Jan,Am(Bk * COPYING: Move back. -2001-11-29 Pavel Jan,Bm(Bk +2001-11-29 Pavel Jan,Am(Bk * COPYING: Removed. @@ -172,7 +1162,7 @@ * HELLO: Fix the Italian and Maltese entries. From Trevor Spiteri . -2001-08-25 Pavel Jan,Bm(Bk +2001-08-25 Pavel Jan,Am(Bk * HELLO: Slovak language name added to be compatible with other languages. @@ -180,7 +1170,7 @@ 2001-08-23 Eli Zaretskii * TUTORIAL.pl: Updated in accordance with the English version. - From Beata Wierzcho,B3(Bowska and + From Beata Wierzcho$,1 b(Bowska and Janusz S. Bien . 2001-08-14 Eli Zaretskii @@ -189,26 +1179,26 @@ per config.sub and config.guess. Reported by Ryo Furue . -2001-08-10 Pavel Jan,Bm(Bk +2001-08-10 Pavel Jan,Am(Bk * TUTORIAL.sk: Updated in accordance with the English version. - From Miroslav Va,B9(Bko . + From Miroslav Va$,1!!(Bko . 2001-08-08 Eli Zaretskii * TUTORIAL.ko: Updated in accordance with the English version. From Koaunghi Un . -2001-08-06 Pavel Jan,Bm(Bk +2001-08-06 Pavel Jan,Am(Bk * TUTORIAL.cs: Update from Milan Zamazal. -2001-08-05 Pavel Jan,Bm(Bk +2001-08-05 Pavel Jan,Am(Bk * TUTORIAL.cs, TUTORIAL.sk, cs-refcard.tex, sk-refcard.tex: e-mail address of Milan Zamazal changed. -2001-08-04 Pavel Jan,Bm(Bk +2001-08-04 Pavel Jan,Am(Bk * TUTORIAL, TUTORIAL.cs: Be consistent when naming CONTROL and META keys. @@ -240,7 +1230,7 @@ * sk-dired-ref.tex: New files. * cs-survival.tex, cs-dired-ref.ps, cs-dired-ref.tex: New files. - From Pavel@Janik.cz (Pavel Jan,Bm(Bk). + From Pavel@Janik.cz (Pavel Jan,Am(Bk). 2001-04-10 Vinicius Jose Latorre @@ -1314,9 +2304,11 @@ * emacsstool.1: update to document environment variables. -1989-02-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu) +1989-02-21 Mosur Mohan (email@notavailable) - * etags.c (PAS_funcs): New function by Mosur Mohan. + * etags.c (PAS_funcs): New function. + +1989-02-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu) * movemail.c: On sysv, include unistd.h. @@ -1336,10 +2328,10 @@ * fakemail.c (put_line): Break header lines at 79 cols. -1989-01-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu) +1989-01-19 Sam Kendall (email@notavailable) - * etags.c: Greatly rewritten by Sam Kendall for C++ support and for - multiple tags per line. + * etags.c: Greatly rewritten for C++ support and for multiple tags + per line. 1989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) @@ -1516,6 +2508,8 @@ ;; End: Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001 - Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. + +;;; arch-tag: 094f3a51-bd72-44d0-8fac-2ac242c6c5b1 diff --git a/etc/DEBUG b/etc/DEBUG index eb2a3364446..0c2739cafc8 100644 --- a/etc/DEBUG +++ b/etc/DEBUG @@ -1,5 +1,6 @@ Debugging GNU Emacs -Copyright (c) 1985, 2000, 2001 Free Software Foundation, Inc. +Copyright (C) 1985, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -17,8 +18,15 @@ should read the Windows-specific section near the end of this document.] ** When you debug Emacs with GDB, you should start it in the directory -where you built Emacs. That directory has a .gdbinit file that defines -various "user-defined" commands for debugging Emacs. +where the executable was made. That directory has a .gdbinit file +that defines various "user-defined" commands for debugging Emacs. + +** When you are trying to analyze failed assertions, it will be +essential to compile Emacs either completely without optimizations or +at least (when using GCC) with the -fno-crossjumping option. Failure +to do so may make the compiler recycle the same abort call for all +assertions in a given function, rendering the stack backtrace useless +for identifying the specific failed assertion. ** It is a good idea to run Emacs under GDB (or some other suitable debugger) *all the time*. Then, when Emacs crashes, you will be able @@ -62,6 +70,11 @@ use the set command until the inferior process has been started. Put a breakpoint early in `main', or suspend the Emacs, to get an opportunity to do the set command. +When Emacs is running in a terminal, it is useful to use a separate terminal +for the debug session. This can be done by starting Emacs as usual, then +attaching to it from gdb with the `attach' command which is explained in the +node "Attach" of the GDB manual. + ** Examining Lisp object values. When you have a live process to debug, and it has not encountered a @@ -69,9 +82,11 @@ fatal error, you can use the GDB command `pr'. First print the value in the ordinary way, with the `p' command. Then type `pr' with no arguments. This calls a subroutine which uses the Lisp printer. -Note: It is not a good idea to try `pr' if you know that Emacs is in -deep trouble: its stack smashed (e.g., if it encountered SIGSEGV due -to stack overflow), or crucial data structures, such as `obarray', +You can also use `pp value' to print the emacs value directly. + +Note: It is not a good idea to try `pr' or `pp' if you know that Emacs +is in deep trouble: its stack smashed (e.g., if it encountered SIGSEGV +due to stack overflow), or crucial data structures, such as `obarray', corrupted, etc. In such cases, the Emacs subroutine called by `pr' might make more damage, like overwrite some data that is important for debugging the original problem. @@ -105,36 +120,32 @@ objects which you can examine in turn with the x... commands. Even with a live process, these x... commands are useful for examining the fields in a buffer, window, process, frame or marker. Here's an example using concepts explained in the node "Value History" -of the GDB manual to print the variable frame from this line in -xmenu.c: - - buf.frame_or_window = frame; - -First, use these commands: +of the GDB manual to print values associated with the variable +called frame. First, use these commands: cd src gdb emacs - b xmenu.c:1296 + b set_frame_buffer_list r -q -Then type C-x 5 2 to create a new frame, and it hits the breakpoint: +Then Emacs hits the breakpoint: (gdb) p frame - $1 = 1077872640 + $1 = 139854428 (gdb) xtype Lisp_Vectorlike PVEC_FRAME (gdb) xframe - $2 = (struct frame *) 0x3f0800 + $2 = (struct frame *) 0x8560258 (gdb) p *$ $3 = { - size = 536871989, - next = 0x366240, - name = 809661752, + size = 1073742931, + next = 0x85dfe58, + name = 140615219, [...] } (gdb) p $3->name - $4 = 809661752 + $4 = 140615219 Now we can use `pr' to print the name of the frame: @@ -147,11 +158,13 @@ we want the address of the l-value expression near the bottom of XVECTOR (this_command_keys)->contents[this_command_key_count++] = key; -XVECTOR is a macro, and therefore GDB does not know about it. -GDB cannot evaluate "p XVECTOR (this_command_keys)". +XVECTOR is a macro, so GDB only knows about it if Emacs has been compiled with +preprocessor macro information. GCC provides this if you specify the options +`-gdwarf-2' and `-g3'. In this case, GDB can evaluate expressions like +"p XVECTOR (this_command_keys)". -However, you can use the xvector command in GDB to get the same -result. Here is how: +When this information isn't available, you can use the xvector command in GDB +to get the same result. Here is how: (gdb) p this_command_keys $1 = 1078005760 @@ -442,6 +455,9 @@ Several more functions for debugging display code are available in Emacs compiled with GLYPH_DEBUG defined; type "C-h f dump- TAB" and "C-h f trace- TAB" to see the full list. +When you debug display problems running emacs under X, you can use +the `ff' command to flush all pending display updates to the screen. + ** Debugging LessTif @@ -563,6 +579,13 @@ these data structures on the respective headers to remove the `:N' bitfield definitions (which will cause each such field to use a full int). +** How to recover buffer contents from an Emacs core dump file + +The file etc/emacs-buffer.gdb defines a set of GDB commands for +recovering the contents of Emacs buffers from a core dump file. You +might also find those commands useful for displaying the list of +buffers in human-readable format from within the debugger. + ** Some suggestions for debugging on MS Windows: (written by Marc Fleischeuers, Geoff Voelker and Andrew Innes) @@ -647,3 +670,5 @@ temporarily, you will see an old value for it. Again, you need to look at the disassembly to determine which registers are being used, and look at those registers directly, to see the actual current values of these variables. + +;;; arch-tag: fbf32980-e35d-481f-8e4c-a2eca2586e6b diff --git a/etc/DISTRIB b/etc/DISTRIB index adaffe08381..f5c380bfe37 100644 --- a/etc/DISTRIB +++ b/etc/DISTRIB @@ -1,13 +1,11 @@ -*- text -*- For an order form for all Emacs and FSF distributions deliverable from -the USA, see the file `ORDERS' in this directory (etc/ in the GNU -Emacs distribution or http://www.gnu.org/order/order.html). For a -European order form, see `ORDERS.EUROPE'. For a Japan order form, -see `ORDERS.JAPAN'. +the USA, see http://www.gnu.org/order/order.html. GNU Emacs availability information, October 2000 -Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 2000 - Free Software Foundation, Inc. + +Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, + 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document provided that the @@ -36,8 +34,7 @@ If you do not know anyone to get a copy of GNU Emacs from, you can order a cd-rom from the Free Software Foundation. We distribute several Emacs versions. We also distribute nicely typeset copies of the Emacs user manual, Emacs Lisp Reference Manual, the Emacs -reference card, etc. See file `ORDERS', or visit -http://www.gnu.org/order/order.html. +reference card, etc. See http://www.gnu.org/order/order.html. If you have Internet access, you can copy the latest Emacs distribution from hosts, such as ftp.gnu.org. There are several ways @@ -45,14 +42,12 @@ to do this; see http://www.gnu.org/software/software.html for more information. Emacs has been run on GNU/Linux, FreeBSD, NetBSD, OpenBSD, and on many -Unix systems, on a variety of types of cpu. It also works on VMS and -on Apollo computers, though with some deficiencies that reflect -problems in these operating systems. See the file `MACHINES' in this -directory (see above) for a full list of machines that GNU Emacs has -been tested on, with machine-specific installation notes and warnings. -There is also an MS-DOS version that works on MS-DOS and all platforms -that have some kind of ``DOS box'', and also an MS-Windows and a Mac -version. +Unix systems, on a variety of types of cpu, as well as on MSDOS, +Windows and MacOS. It also formerly worked on VMS and on Apollo +computers, though with some deficiencies that reflect problems in +these operating systems. See the file `MACHINES' in this directory +(see above) for a full list of machines that GNU Emacs has been tested +on, with machine-specific installation notes and warnings. Note that there is significant variation between Unix systems supposedly running the same version of Unix; it is possible that what @@ -89,7 +84,7 @@ product and divide it by five, that is a good amount. If you like GNU Emacs, please express your satisfaction with a donation: send me or the Foundation what you feel Emacs has been worth to you. If you are glad that I developed GNU Emacs and distribute it -as freeware, rather than following the obstructive and antisocial +as free software, rather than following the obstructive and antisocial practices typical of software developers, reward me. If you would like the Foundation to develop more free software, contribute. diff --git a/etc/ETAGS.EBNF b/etc/ETAGS.EBNF index 55c90dc4701..4d09eaa581d 100644 --- a/etc/ETAGS.EBNF +++ b/etc/ETAGS.EBNF @@ -2,7 +2,7 @@ This file contains two sections: -1) An EBNF (Extended Backus Normal Form) description of the format of +1) An EBNF (Extended Backus-Naur Form) description of the format of the tags file created by etags.c and interpreted by etags.el; 2) A discussion of tag names and implicit tag names. @@ -81,7 +81,7 @@ substring of the tag pattern. We define a set of rules to decide whether it is possible to deduce the tag name from the pattern, and make an unnamed tag in those cases. The name deduced from the pattern of an unnamed tag is the implicit name of that tag. - When the user looks for a tag, and Emacs founds no explicit tag names + When the user looks for a tag, and Emacs finds no explicit tag names that match it, Emacs then looks for an tag whose implicit tag name matches the request. etags.c uses implicit tag names when possible, in order to reduce the size of the tags file. diff --git a/etc/GNU b/etc/GNU index f85e6d7a254..6d54265d849 100644 --- a/etc/GNU +++ b/etc/GNU @@ -1,4 +1,5 @@ -Copyright (C) 1985, 1993 Free Software Foundation, Inc. +Copyright (C) 1985, 1993, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document, in any medium, provided that the copyright notice and @@ -22,8 +23,9 @@ The GNU Manifesto Footnotes added in 1993 help clarify these points. For up-to-date information about the available GNU software, - please see the latest issue of the GNU's Bulletin. The list is - much too long to include here. + please see www.gnu.org. For software tasks to work on, see + http://savannah.gnu.org/projects/tasklist. For other ways + to contribute, see http://www.gnu.org/help. What's GNU? Gnu's Not Unix! ============================ @@ -341,7 +343,7 @@ that.) other people's lives; and it is usually used to make their lives more difficult. - People who have studied the issue of intellectual property rights + People who have studied the issue of intellectual property rights(6) carefully (such as lawyers) say that there is no intrinsic right to intellectual property. The kinds of supposed intellectual property rights that the government recognizes were created by specific acts of @@ -446,7 +448,7 @@ operating systems onto the new hardware. The sale of teaching, hand-holding and maintenance services could also employ programmers. - People with new ideas could distribute programs as freeware, asking + People with new ideas could distribute programs as freeware(7), asking for donations from satisfied users, or selling hand-holding services. I have met people who are already working this way successfully. @@ -518,15 +520,26 @@ friends or over the net. But it does suggest the wrong idea. (3) Several such companies now exist. - (4) The Free Software Foundation raises most of its funds from a -distribution service, although it is a charity rather than a company. -If *no one* chooses to obtain copies by ordering from the FSF, it -will be unable to do its work. But this does not mean that proprietary -restrictions are justified to force every user to pay. If a small -fraction of all the users order copies from the FSF, that is sufficient -to keep the FSF afloat. So we ask users to choose to support us in -this way. Have you done your part? - - (5) A group of computer companies recently pooled funds to support -maintenance of the GNU C Compiler. - + (4) The Free Software Foundation raised most of its funds for 10 +years from a distribution service, although it is a charity rather +than a company. + + (5) A group of computer companies pooled funds around 1991 to +support maintenance of the GNU C Compiler. + + (6) In the 80s I had not yet realized how confusing it was to speak +of "the issue" of "intellectual property". That term is obviously +biased; more subtle is the fact that it lumps together various +disparate laws which raise very different issues. Nowadays I urge +people to reject the term "intellectual property" entirely, lest it +lead others to suppose that those laws form one coherent issue. The way to be +clear is to discuss patents, copyrights, and trademarks separately. +See http://www.gnu.org/philosophy/not-ipr.xhtml for more explanation +of how this term spreads confusion and bias. + + (7) Subsequently we have learned to distinguish between "free +software" and "freeware". The term "freeware" means software you are +free to redistribute, but usually you are not free to study and change +the source code, so most of it is not free software. See +http://www.gnu.org/philosophy/words-to-avoid.html for more +explanation. diff --git a/etc/GNUS-NEWS b/etc/GNUS-NEWS new file mode 100644 index 00000000000..59e0b5dbd2e --- /dev/null +++ b/etc/GNUS-NEWS @@ -0,0 +1,547 @@ +GNUS NEWS -- history of user-visible changes. +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. +See the end for copying conditions. + +Please send Gnus bug reports to bugs@gnus.org. +For older news, see Gnus info node "New Features". + + +* Changes in Oort Gnus + +** `F' (`gnus-article-followup-with-original') and `R' +(`gnus-article-reply-with-original') only yank the text in the region if the +region is active. + +** `gnus-group-read-ephemeral-group' can be called interactively, using `G M'. + +** In draft groups, `e' is now bound to `gnus-draft-edit-message'. +Use `B w' for `gnus-summary-edit-article' instead. + +** The revised Gnus FAQ is included in the manual. +See the info node "Frequently Asked Questions". + +** Upgrading from previous (stable) version if you have used Oort. + +If you have tried Oort (the unstable Gnus branch leading to this +release) but went back to a stable version, be careful when upgrading +to this version. In particular, you will probably want to remove all +.marks (nnml) and .mrk (nnfolder) files, so that flags are read from +your ~/.newsrc.eld instead of from the .marks/.mrk file where this +release store flags. See a later entry for more information about +marks. Note that downgrading isn't safe in general. + +** Article Buttons + +More buttons for URLs, mail addresses, Message-IDs, Info links, man pages and +Emacs or Gnus related references, see the info node "Article Buttons". The +variables `gnus-button-*-level' can be used to control the appearance of all +article buttons, see the info node "Article Button Levels". + +** Dired integration + +`gnus-dired-minor-mode' installs key bindings in dired buffers to send a file +as an attachment (`C-c C-m C-a'), open a file using the approriate mailcap +entry (`C-c C-m C-l'), and print a file using the mailcap entry (`C-c C-m +C-p'). See the info node "Other modes". + + +** Gnus can display RSS newsfeeds as a newsgroup. To get started do `B +nnrss RET RET' in the Group buffer. + +** Single-part yenc encoded attachments can be decoded. + +** Picons +The picons code has been reimplemented to work in Emacs 21 -- some of +the previous options have been removed or renamed. + +Picons are small "personal icons" representing users, domain and +newsgroups, which can be displayed in the Article buffer. To enable +picons, install the picons database from + + http://www.cs.indiana.edu/picons/ftp/index.html + +and point `gnus-picon-databases' to that location. + +** If the new option `gnus-treat-body-boundary' is `head', a boundary +line is drawn at the end of the headers. + +** Retrieval of charters and control messages +There are new commands for fetching newsgroup charters (`H c') and +control messages (`H C'). + +** Delayed articles +You can delay the sending of a message with `C-c C-j' in the Message +buffer. The messages are delivered at specified time. This is useful +for sending yourself reminders. Setup with (gnus-delay-initialize). + +** If `auto-compression-mode' is enabled, attachments are automatically +decompressed when activated. + +** If the new option `nnml-use-compressed-files' is non-nil, +the nnml back end allows compressed message files. + +** Signed article headers (X-PGP-Sig) can be verified with `W p'. + +** The Summary Buffer uses an arrow in the fringe to indicate the +current article in Emacs 21 running on a graphical display. Customize +`gnus-summary-display-arrow' to disable it. + +** Warn about email replies to news +Do you often find yourself replying to news by email by mistake? Then +the new option `gnus-confirm-mail-reply-to-news' is just the thing for +you. + +** If the new option `gnus-summary-display-while-building' is non-nil, +the summary buffer is shown and updated as it's being built. + +** The new `recent' mark "." indicates newly arrived messages (as +opposed to old but unread messages). + +** The new option `gnus-gcc-mark-as-read' automatically marks +Gcc articles as read. + +** The nndoc back end now supports mailman digests and exim bounces. + +** Gnus supports RFC 2369 mailing list headers, and adds a number of +related commands in mailing list groups. + +** The Date header can be displayed in a format that can be read aloud +in English, see `gnus-treat-date-english'. + +** The envelope sender address can be customized when using Sendmail, see +`message-sendmail-envelope-from'. + +** diffs are automatically highlighted in groups matching +`mm-uu-diff-groups-regexp' + +** TLS wrapper shipped with Gnus + +TLS/SSL is now supported in IMAP and NNTP via tls.el and GNUTLS. The +old TLS/SSL support via (external third party) ssl.el and OpenSSL +still works. + +** New make.bat for compiling and installing Gnus under MS Windows + +Use make.bat if you want to install Gnus under MS Windows, the first +argument to the batch-program should be the directory where xemacs.exe +respectively emacs.exe is located, iff you want to install Gnus after +compiling it, give make.bat /copy as the second parameter. + +`make.bat' has been rewritten from scratch, it now features automatic +recognition of XEmacs and GNU Emacs, generates gnus-load.el, checks if +errors occur while compilation and generation of info files and reports +them at the end of the build process. It now uses makeinfo if it is +available and falls back to infohack.el otherwise. `make.bat' should now +install all files which are necessary to run Gnus and be generally a +complete replacement for the "configure; make; make install" cycle used +under Unix systems. + +The new make.bat makes make-x.bat superfluous, so it has been removed. + +** Support for non-ASCII domain names + +Message supports non-ASCII domain names in From:, To: and Cc: and will +encode them when you try to send a message. The variable +`message-use-idna' controls this. Gnus will also decode non-ASCII +domain names in From:, To: and Cc: when you view a message. The +variable `gnus-use-idna' controls this. + +** Better handling of Microsoft citation styles + +Gnus now tries to recognize the mangled header block that some Microsoft +mailers use to indicate that the rest of the message is a citation, even +though it is not quoted in any way. The variable +`gnus-cite-unsightly-citation-regexp' matches the start of these +citations. + +** gnus-article-skip-boring + +If you set `gnus-article-skip-boring' to t, then Gnus will not scroll +down to show you a page that contains only boring text, which by +default means cited text and signature. You can customize what is +skippable using `gnus-article-boring-faces'. + +This feature is especially useful if you read many articles that +consist of a little new content at the top with a long, untrimmed +message cited below. + +** The format spec %C for positioning point has changed to %*. + +** The new variable `gnus-parameters' can be used to set group parameters. + +Earlier this was done only via `G p' (or `G c'), which stored the +parameters in ~/.newsrc.eld, but via this variable you can enjoy the +powers of customize, and simplified backups since you set the variable +in ~/.emacs instead of ~/.newsrc.eld. The variable maps regular +expressions matching group names to group parameters, a'la: + + (setq gnus-parameters + '(("mail\\..*" + (gnus-show-threads nil) + (gnus-use-scoring nil)) + ("^nnimap:\\(foo.bar\\)$" + (to-group . "\\1")))) + +** Smileys (":-)", ";-)" etc) are now iconized for Emacs too. + +Customize `gnus-treat-display-smileys' to disable it. + +** Gnus no longer generates the Sender: header automatically. + +Earlier it was generated iff the user configurable email address was +different from the Gnus guessed default user address. As the guessing +algorithm is rarely correct these days, and (more controversially) the +only use of the Sender: header was to check if you are entitled to +cancel/supersede news (which is now solved by Cancel Locks instead, +see another entry), generation of the header has been disabled by +default. See the variables `message-required-headers', +`message-required-news-headers', and `message-required-mail-headers'. + +** Features from third party message-utils.el added to message.el. + +Message now asks if you wish to remove "(was: )" from +subject lines (see `message-subject-trailing-was-query'). C-c M-m and +C-c M-f inserts markers indicating included text. C-c C-f a adds a +X-No-Archive: header. C-c C-f x inserts appropriate headers and a +note in the body for cross-postings and followups (see the variables +`message-cross-post-*'). + +** References and X-Draft-Headers are no longer generated when you +start composing messages and `message-generate-headers-first' is nil. + +** Improved anti-spam features. + +Gnus is now able to take out spam from your mail and news streams +using a wide variety of programs and filter rules. Among the supported +methods are RBL blocklists, bogofilter and white/blacklists. Hooks +for easy use of external packages such as SpamAssassin and Hashcash +are also new. + +** Easy inclusion of X-Faces headers. + +** In the summary buffer, the new command / N inserts new messages and +/ o inserts old messages. + +** Gnus decodes morse encoded messages if you press W m. + +** Unread count correct in nnimap groups. + +The estimated number of unread articles in the group buffer should now +be correct for nnimap groups. This is achieved by calling +`nnimap-fixup-unread-after-getting-new-news' from the +`gnus-setup-news-hook' (called on startup) and +`gnus-after-getting-new-news-hook' (called after getting new mail). +If you have modified those variables from the default, you may want to +add n-f-u-a-g-n-n again. If you were happy with the estimate and want +to save some (minimal) time when getting new mail, remove the +function. + +** Group Carbon Copy (GCC) quoting + +To support groups that contains SPC and other weird characters, groups +are quoted before they are placed in the Gcc: header. This means +variables such as `gnus-message-archive-group' should no longer +contain quote characters to make groups containing SPC work. Also, if +you are using the string "nnml:foo, nnml:bar" (indicating Gcc into two +groups) you must change it to return the list ("nnml:foo" "nnml:bar"), +otherwise the Gcc: line will be quoted incorrectly. Note that +returning the string "nnml:foo, nnml:bar" was incorrect earlier, it +just didn't generate any problems since it was inserted directly. + +** ~/News/overview/ not used. + +As a result of the following change, the ~/News/overview/ directory is +not used any more. You can safely delete the entire hierarchy. + +** gnus-agent + +The Gnus Agent has seen a major update. It is now enabled by default, +and all nntp and nnimap servers from `gnus-select-method' and +`gnus-secondary-select-method' are agentized by default. Earlier only +the server in `gnus-select-method' was agentized by the default, and the +agent was disabled by default. When the agent is enabled, headers are +now also retrieved from the Agent cache instead of the backends when +possible. Earlier this only happened in the unplugged state. You can +enroll or remove servers with `J a' and `J r' in the server buffer. +Gnus will not download articles into the Agent cache, unless you +instruct it to do so, though, by using `J u' or `J s' from the Group +buffer. You revert to the old behaviour of having the Agent disabled +by customizing `gnus-agent'. Note that putting `(gnus-agentize)' in +~/.gnus is not needed any more. + +** gnus-summary-line-format + +The default value changed to "%U%R%z%I%(%[%4L: %-23,23f%]%) %s\n". +Moreover `gnus-extra-headers', `nnmail-extra-headers' and +`gnus-ignored-from-addresses' changed their default so that the users +name will be replaced by the recipient's name or the group name +posting to for NNTP groups. + +** deuglify.el (gnus-article-outlook-deuglify-article) + +A new file from Raymond Scholz for deuglifying +broken Outlook (Express) articles. + +** (require 'gnus-load) + +If you use a stand-alone Gnus distribution, you'd better add +"(require 'gnus-load)" to your ~/.emacs after adding the Gnus +lisp directory into load-path. + +File gnus-load.el contains autoload commands, functions and variables, +some of which may not be included in distributions of Emacsen. + +** gnus-slave-unplugged + +A new command which starts gnus offline in slave mode. + +** message-insinuate-rmail + +Adding (message-insinuate-rmail) in .emacs and customizing +`mail-user-agent' to `gnus-user-agent' convinces Rmail to compose, +reply and forward messages in Message mode, where you can enjoy the +power of MML. + +** message-minibuffer-local-map + +The line below enables BBDB in resending a message: + +(define-key message-minibuffer-local-map [?\t] 'bbdb-complete-name) + +** Externalizing and deleting of attachments. + +If `gnus-gcc-externalize-attachments' (or +`message-fcc-externalize-attachments') is non-nil, attach local files +as external parts. + +The command `gnus-mime-save-part-and-strip' (bound to `C-o' on MIME +buttons) saves a part and replaces the part with an external one. +`gnus-mime-delete-part' (bound to `d' on MIME buttons) removes a part. +It works only on back ends that support editing. + +** gnus-default-charset + +The default value now guesses on the basis of your environment instead +of using Latin-1. Also the ".*" item in gnus-group-charset-alist is +removed. + +** gnus-posting-styles + +Add a new format of match like + + ((header "to" "larsi.*org") + (Organization "Somewhere, Inc.")) + +The old format like the lines below is obsolete, but still accepted. + + (header "to" "larsi.*org" + (Organization "Somewhere, Inc.")) + +** message-ignored-news-headers and message-ignored-mail-headers + +X-Draft-From and X-Gnus-Agent-Meta-Information have been added into +these two variables. If you customized those, perhaps you need add +those two headers too. + +** Gnus reads the NOV and articles in the Agent if plugged. + +If one reads an article while plugged, and the article already exists +in the Agent, it won't get downloaded once more. Customize +`gnus-agent-cache' to revert to the old behavior. + +** Gnus supports the "format=flowed" (RFC 2646) parameter. + +On composing messages, it is enabled by `use-hard-newlines'. Decoding +format=flowed was present but not documented in earlier versions. + +** Gnus supports the generation of RFC 2298 Disposition Notification requests. + +This is invoked with the C-c M-n key binding from message mode. + +** Gnus supports Maildir groups. + +Gnus includes a new backend nnmaildir.el. + +** Printing capabilities are enhanced. + +Gnus supports Muttprint natively with O P from the Summary and Article +buffers. Also, each individual MIME part can be printed using p on +the MIME button. + +** Message supports the Importance: (RFC 2156) header. + +In the message buffer, `C-c C-f C-i' or `C-c C-u' cycles through the +valid values. + +** Gnus supports Cancel Locks in News. + +This means a header "Cancel-Lock" is inserted in news posting. It is +used to determine if you wrote a article or not (for cancelling and +superseding). Gnus generates a random password string the first time +you post a message, and saves it using the Custom system. While the +variable is called `canlock-password', it is not security sensitive +data. Publishing your canlock string on the web will not allow anyone +to be able to anything she could not already do. The behaviour can be +changed by customizing `message-insert-canlock'. + +** Gnus supports server-side mail filtering using Sieve. + +Sieve rules can be added as Group Parameters for groups, and the +complete Sieve script is generated using `D g' from the Group buffer, +and then uploaded to the server using `C-c C-l' in the generated Sieve +buffer. Search the online Gnus manual for "sieve", and see the new +Sieve manual, for more information. + +** Extended format specs. + +Format spec "%&user-date;" is added into +`gnus-summary-line-format-alist'. Also, user defined extended format +specs are supported. The extended format specs look like "%u&foo;", +which invokes function `gnus-user-format-function-foo'. Because "&" is +used as the escape character, old user defined format "%u&" is no +longer supported. + +** `/ *' (gnus-summary-limit-include-cached) is rewritten. + +It was aliased to `Y c' (gnus-summary-insert-cached-articles). The new +function filters out other articles. + +** Some limiting commands accept a C-u prefix to negate the match. + +If C-u is used on subject, author or extra headers, i.e., `/ s', `/ +a', and `/ x' (gnus-summary-limit-to-{subject,author,extra}) +respectively, the result will be to display all articles that do not +match the expression. + +** Group names are treated as UTF-8 by default. + +This is supposedly what USEFOR wanted to migrate to. See +`gnus-group-name-charset-group-alist' and +`gnus-group-name-charset-method-alist' for customization. + +** The nnml and nnfolder backends store marks for each group. + +This makes it possible to take backup of nnml/nnfolder servers/groups +separately of ~/.newsrc.eld, while preserving marks. It also makes it +possible to share articles and marks between users (without sharing +the ~/.newsrc.eld file) within e.g. a department. It works by storing +the marks stored in ~/.newsrc.eld in a per-group file ".marks" (for +nnml) and "groupname.mrk" (for nnfolder, named "groupname"). If the +nnml/nnfolder is moved to another machine, Gnus will automatically use +the .marks or .mrk file instead of the information in ~/.newsrc.eld. +The new server variables `nnml-marks-is-evil' and +`nnfolder-marks-is-evil' can be used to disable this feature. + +** The menu bar item (in Group and Summary buffer) named "Misc" has +been renamed to "Gnus". + +** The menu bar item (in Message mode) named "MML" has been renamed to +"Attachments". Note that this menu also contains security related +stuff, like signing and encryption. + +** gnus-group-charset-alist and gnus-group-ignored-charsets-alist. + +The regexps in these variables are compared with full group names +instead of real group names in 5.8. Users who customize these +variables should change those regexps accordingly. For example: + + ("^han\\>" euc-kr) -> ("\\(^\\|:\\)han\\>" euc-kr) + +** Gnus supports PGP (RFC 1991/2440), PGP/MIME (RFC 2015/3156) and +S/MIME (RFC 2630-2633). + +It needs an external S/MIME and OpenPGP implementation, but no +additional lisp libraries. This add several menu items to the +Attachments menu, and C-c RET key bindings, when composing messages. +This also obsoletes `gnus-article-hide-pgp-hook'. + +** Gnus inlines external parts (message/external). + +** MML (Mime compose) prefix changed from `M-m' to `C-c C-m'. + +This change was made to avoid conflict with the standard binding of +`back-to-indentation', which is also useful in message mode. + +** The default for message-forward-show-mml changed to symbol best. + +The behaviour for the `best' value is to show MML (i.e., convert MIME +to MML) when appropriate. MML will not be used when forwarding signed +or encrypted messages, as the conversion invalidate the digital +signature. + +** Bug fixes. + + +* Changes in Pterodactyl Gnus (5.8/5.9) + +The Gnus NEWS entries are short, but they reflect sweeping changes in +four areas: Article display treatment, MIME treatment, +internationalization and mail-fetching. + +** The mail-fetching functions have changed. See the manual for the +many details. In particular, all procmail fetching variables are gone. + +If you used procmail like in + +(setq nnmail-use-procmail t) +(setq nnmail-spool-file 'procmail) +(setq nnmail-procmail-directory "~/mail/incoming/") +(setq nnmail-procmail-suffix "\\.in") + +this now has changed to + +(setq mail-sources + '((directory :path "~/mail/incoming/" + :suffix ".in"))) + +More information is available in the info doc at Select Methods -> +Getting Mail -> Mail Sources + +** Gnus is now a MIME-capable reader. This affects many parts of +Gnus, and adds a slew of new commands. See the manual for details. + +** Gnus has also been multilingualized. This also affects too +many parts of Gnus to summarize here, and adds many new variables. + +** gnus-auto-select-first can now be a function to be +called to position point. + +** The user can now decide which extra headers should be included in +summary buffers and NOV files. + +** `gnus-article-display-hook' has been removed. Instead, a number +of variables starting with `gnus-treat-' have been added. + +** The Gnus posting styles have been redone again and now works in a +subtly different manner. + +** New web-based backends have been added: nnslashdot, nnwarchive +and nnultimate. nnweb has been revamped, again, to keep up with +ever-changing layouts. + +** Gnus can now read IMAP mail via nnimap. + + +* For older news, see Gnus info node "New Features". + +---------------------------------------------------------------------- +Copyright information: + +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. + + Permission is granted to anyone to make or distribute verbatim copies + of this document as received, in any medium, provided that the + copyright notice and this permission notice are preserved, + thus giving the recipient permission to redistribute in turn. + + Permission is granted to distribute modified versions + of this document, or of portions of it, + under the above conditions, provided also that they + carry prominent notices stating who last changed them. + +Local variables: +mode: outline +paragraph-separate: "[ ]*$" +end: diff --git a/etc/HELLO b/etc/HELLO index f051b5af0bc..1c59bdb4de6 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -1,57 +1,69 @@ This is a list of ways to say hello in various languages. Its purpose is to illustrate a number of scripts. - --------------------------------------------------------- Amharic ($(3"c!(B -Arabic (38R(47d(3T!JSa(4W(3W(B -Czech (,Bh(Besky) Dobr,B}(B den -Danish (Dansk) Hej, Goddag -English Hello -Esperanto Saluton (E,C6(Bo,C~(Ban,Cx(Bo ,Cf(Biu,C<(Ba,C}(Bde) -Estonian Tere, Tervist -FORTRAN PROGRAM -Finnish (Suomi) Hei -French (Fran,Ag(Bais) Bonjour, Salut -German (Deutsch Nord) Guten Tag -German (Deutsch S,A|(Bd) Gr,A|_(B Gott -Greek (,FEkkgmij\(B) ,FCei\(B ,Fsar(B -Hebrew ,Hylem(B -Hindi (4$,4!}t%"+0$,15y55B14$,4!.v#"Yv#"20$,15f6 1(B) 4$,4!8v#")0$,15h14$,4!hv#")0$,15n14$,4!zv#!)v#")v#"D0$,15x6-5d6'1(B, 4$,4!8v#")0$,15h14$,4!hv#")0$,15n14$,4!zv# ev#"Rv#")0$,15x6-5U5~14$,4!nv#"W0$,15p1(B 4$,4 J0$,16D1(B -Italian (Italiano) Ciao, Buon giorno -Lao ((1>RJRERG(B) (1JP:R-04U1(B, 0(1"m1c0Ki1b*!04U1(B -Maltese (Malti) Bon,Cu(Bu, Sa,C11(Ba +Arabic (38R(47d(3T!JSa(4W(3W(B +Braille $,2(3(1('('(5(B +C printf ("Hello, world!\n"); +Czech (,Bh(Be,B9(Btina) Dobr,B}(B den +Danish (dansk) Hej, Goddag +Emacs emacs --no-splash -f view-hello-file +English [,0p U(B-,0EZ L(B] Hello +Esperanto Saluton (E,C6(Bo,C~(Ban,Cx(Bo ,Cf(Biu,C<(Ba,C}(Bde) +Estonian (eesti) Tere p,Ad(Bevast, Tere ,Au(Bhtust +Finnish (suomi) Hei, Hyv,Add(B p,Ad(Biv,Add(B +French (fran,Ag(Bais) Bonjour, Salut +Georgian ($,1JEJ0J@J7J5J4J:J8(B) $,1J2J0J;J0J@JOJ=J1J0(B +German (Deutsch) Guten Tag, Gr,A|_(B Gott +Greek (,Fekkgmij\(B) ,FCei\(B ,Fsar(B +Hebrew (,Hraxiz(B) ,Hylem(B +Hindi (4$,4!}t%"+0$,15y55B14$,4!.v#"Yv#"20$,15f6 1(B) 4$,4!8v#")0$,15h14$,4!hv#")0$,15n14$,4!zv#!)v#")v#"D0$,15x6-5d6'1(B, 4$,4!8v#")0$,15h14$,4!hv#")0$,15n14$,4!zv# ev#"Rv#")0$,15x6-5U5~14$,4!nv#"W0$,15p1(B 4$,4 J0$,16D1(B +Italian (italiano) Ciao, Buon giorno +Javanese (Jawa) System.out.println("Halo, selamat sore!"); +Kannada (4$,43Ov#4z0$,1>u14$,44Kv#4zv#4M0$,1?(?M?(14$,43sv#4z0$,1?!1(B) 4$,44Kv#4z0$,1?(14$,44hv#4zv#40$,1?.14$,44qv#4{v#3Q0$,1?8?M>u?>14$,44av#4z0$,1?01(B +Lao ((1>RJRERG(B) (1JP:R-04U1(B, 0(1"m1c0Ki1b*!04U1(B +Malayalam (4$,46A0$,1@N14$,46E0$,1@R14$,46Bv#6M0$,1@O@^14$,46Fv#6W0$,1@S@"1(B) 4$,46<0$,1@H14$,46A0$,1@N14$,46Kv#6Vv#6)v#6M0$,1@X@m@5@^14$,46Cv#6W0$,1@P@"1(B +Maltese (il-Malti) Bon,Cu(Bu, Sa,C11(Ba +Mathematics $,1x (B p $,1x((B world $,1s"(B hello p $,2!a(B Nederlands, Vlaams Hallo, Dag -Norwegian (Norsk) Hei, God dag -Polish Dzie,Bq(B dobry! Cze,B6f(B! -Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B! -Slovak (slovensky) Dobr,B}(B de,Br(B +Norwegian (norsk) Hei, God dag +Polish (polski) Dzie,Bq(B dobry! Cze,B6f(B! +Russian (,L`caaZXY(B) ,L7T`PRabRcYbU(B! +Slovak (sloven,Bh(Bina) Dobr,B}(B de,Br(B Slovenian (sloven,B9h(Bina) Pozdravljeni! -Spanish (Espa,Aq(Bol) ,A!(BHola! -Swedish (Svenska) Hej, Goddag -Tamil (4$,4*N0$,1(B Tigrigna ($(3"8#r!N"^(B) $(3!Q!,!<"8(B Turkish (T,M|(Brk,Mg(Be) Merhaba +Ukrainian (,LcZ`Pw]alZP(B) ,L2vbPn(B Vietnamese (Ti,1*(Bng Vi,1.(Bt) Ch,1`(Bo b,1U(Bn -Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B, (I:]FAJ(B +Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B, (I:]FAJ(B Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B) $ADc:C(B -Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B -Korean ($(CGQ1[(B) $(C>H3gGO<H3gGO=J4O1n(B +Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B +Korean ($(CGQ1[(B) $(C>H3gGO<H3gGO=J4O1n(B Difference among chinese characters in GB, JIS, KSC, BIG5: - GB -- $AT*Fx(B $A?*7"(B - JIS -- $B855$(B $B3+H/(B - KSC -- $(Cj*Q((B $(CKR[!(B - BIG5 -- $(0&x86(B $(0DeBv(B +GB $AT*Fx(B $A?*7"(B +JIS $B855$(B $B3+H/(B +KSC $(Cj*Q((B $(CKR[!(B +BIG5 $(0&x86(B $(0DeBv(B Just for a test of JISX0212: $BqV$(DiQ(B (the second character is of JISX0212) -A short test for Unicode characters: -Czech ($,1 -(Besky) Dobr,A}(B den -Esperanto Saluton (E$,1 E(Bo$,1 }(Ban$,1 =(Bo $,1 )(Biu$,1 U(Ba$,1!-(Bde) -Greek ($,1&u';';'7'='9':',(B) $,1&s'5'9',(B $,1'C'1'B(B -Hebrew $,1-),|,u,}(B -Russian ($,1(@(c(a(a(Z(X(Y(B) $,1(7(T(`(P(R(a(b(R(c(Y(b(U(B! -Maltese (Malti) Bon$,1 A(Bu, Sa$,1 G G(Ba +A short test for characters represented by the character set +mule-unicode-0100-24ff: + +Czech ($,1 ,(Besky) Dobr,A}(B den +Esperanto Saluton (E$,1 E(Bo$,1 }(Ban$,1 =(Bo $,1 )(Biu$,1 U(Ba$,1!-(Bde) +Greek ($,1'5';';'7'='9':',(B) $,1&s'5'9',(B $,1'C'1'B(B +Hebrew ($,1-",q-(,y-*(B) $,1-),|,u,}(B +Russian ($,1(`(c(a(a(Z(X(Y(B) $,1(7(T(`(P(R(a(b(R(c(Y(b(U(B! +Maltese (il-Malti) Bon$,1 A(Bu, Sa$,1 G G(Ba + +;;; Local Variables: +;;; tab-width: 32 +;;; End: diff --git a/etc/INTERVIEW b/etc/INTERVIEW index 8145da6f074..4e109ba49dd 100644 --- a/etc/INTERVIEW +++ b/etc/INTERVIEW @@ -412,13 +412,12 @@ BYTE: How can you get a copy of that? Stallman: Write to the Free Software Foundation, 675 Massachusetts Ave., Cambridge, MA 02139. -[In June 1995, this address changed to: +[As of April 2005, this address is: Free Software Foundation - 59 Temple Place - Suite 330 - Boston, MA 02111-1307, USA + 51 Franklin Street, Fifth Floor + Boston, MA 02110-1301, USA Voice: +1-617-542-5942 Fax: +1-617-542-2652 --gnu@prep.ai.mit.edu ] BYTE: What are you going to do when you are done with the GNU system? diff --git a/etc/LPF b/etc/LPF index df821a966bf..02c7d28d150 100644 --- a/etc/LPF +++ b/etc/LPF @@ -33,90 +33,11 @@ against Borland. We testified twice at the recent Patent Office hearings on software patents. We welcome suggestions for other activities, as well as help in carrying them out. -Membership dues in the League are $42 per year for programmers, -managers and professionals; $10.50 for students; $21 for others. -Please give more if you can. The League's funds will be used for -filing briefs; for printing handouts, buttons and signs; whatever will -persuade the courts, the legislators, and the people. You may not get -anything personally for your dues--except for the freedom to write -programs. The League is a non-profit corporation, but not considered -a tax-exempt charity. However, for those self-employed in software, -the dues can be a business expense. -The League needs both activist members and members who only pay their -dues. We also greatly need additional corporate members; contact us -for information. +(Added 2003) The League for Programming Freedom is inactive nowadays, +though its web site www.programming-freedom.org is still maintained. +It would be very useful to find a person who could take the initiative +to get the LPF operating again. It will be a substantial job, +requiring persistence and working with a lawyer. If you want to do +it, please write to rms@gnu.org. -If you have any questions, please write to the League, phone -+1 617 621 7084, or send Internet mail to lpf@uunet.uu.net. - - Chris Hofstader, President - Dean Anderson, Secretary - Aubrey Jaffer, Treasurer - -Chris Hofstader can be reached at (617) 492-0023; FAX (617) 497-1632. - To join, please send a check and the following information to: - - League for Programming Freedom - 1 Kendall Square #143 - P.O.Box 9171 - Cambridge, Massachusetts 02139 - -(Outside the US, please send a check in US dollars on a bank -having a US correspondent bank, to save us check cashing fees.) - -Your name: - - -The address for League mailings, a few each year; please indicate -whether it is your home address or your work address: - - - -The company you work for, and your position: - - -Your phone numbers (home, work or both): - - -Your email address, so we can contact you for demonstrations or for -writing letters. (If you don't want us to contact you for these -things, please say so, but please give us your email address anyway -so we can save paper and postage by sending you the newsletter by email.) - - -Is there anything about you which would enable your endorsement of the -LPF to impress the public? For example, if you are or have been a -professor or an executive, or have written software that has a good -reputation, please tell us. - - - -Would you like to help with LPF activities? - - - - -The corporate charter of the League for Programming Freedom states: - - The purpose of the corporation is to engage in the following - activities: - - 1. To determine the existence of, and warn the public about - restrictions and monopolies on classes of computer programs where such - monopolies prevent or restrict the right to develop certain types of - computer programs. - - 2. To develop countermeasures and initiatives, in the public interest, - effective to block or otherwise prevent or restrain such monopolistic - activities including education, research, publications, public - assembly, legislative testimony, and intervention in court proceedings - involving public interest issues (as a friend of the court). - - 3. To engage in any business or other activity in service of and - related to the foregoing paragraphs that lawfully may be carried on - by a corporation organized under Chapter 180 of the Massachusetts - General Laws. - -The officers and directors of the League will be elected annually by -the members. diff --git a/etc/MACHINES b/etc/MACHINES index 9a4a700b531..63f341aade7 100644 --- a/etc/MACHINES +++ b/etc/MACHINES @@ -651,7 +651,7 @@ Intel 386 (i386-*-isc, i386-*-esix, i386-*-bsdi2, i386-unknown-isc3.0 as your configuration name. Use i386-*-esix for Esix; Emacs runs as of version 19.6. Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26. - Use i386-*-cygwin for Cygwin; Emacs builds as of version 21.4, in both X11 + Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11 and non-X11 modes. (The Cygwin site has source and binaries for 21.2.) Use i386-intsys-sysv for Integrated Solutions 386 machines. It may also be correct for Microport systems. @@ -755,25 +755,13 @@ Iris 2500 and Iris 2500 Turbo (m68k-sgi-iris3.5 or m68k-sgi-iris3.6) Iris 4D (mips-sgi-irix[456].*) + Emacs 21.3 is reported to work on IRIX 6.5.x. + You can build a 64-bit executable (with larger maximum buffer size) on Irix 6.5 by specifying the 64-bit ABI using the `-64' compiler flag or otherwise (see cc(1)). This may work on earlier Irix 6 systems if you edit src/s/irix6-0.h following irix6-5.h. - Building Emacs 21.1 and 21.2 on versions of Irix before 6.5.10, - especially when Emacs is built with GCC, was reported to have subtle - problems such as being unable to print to stdout under the -batch - command-line option. Building with the native compiler or upgrading - the OS to a newer version solves these problems. There's evidence - that these problems are actually related to the runtime libraries - (before IRIX 6.5.10, the IRIX runtimes were based on the MIPSpro 7.2 - compilers), so installing patches for the runtime from - http://www.sgi.com/support/patch_intro.html could solve the problem - even without upgrading the OS. The dump process is the crucial - step that needs the upgraded runtime, so a workaround is to dump - Emacs on a machine with a newer OS, then copy the binary to the - older OS. - If compiling with GCC on Irix 6 yields an error "conflicting types for `initstate'", install GCC 2.95 or a newer version, and this problem should go away. It is possible that this problem results @@ -781,23 +769,6 @@ Iris 4D (mips-sgi-irix[456].*) could also try reinstalling the same version of GCC, and telling us whether that fixes the problem. - The 19.26 pretest was reported to work on IRIX 4.0.5 and 5.2. - 19.23 was reported to work on IRIX 5.2, but you may need to install - the "compiler_dev.hdr.internal" subsystem in order to compile unexelfsgi.c. - 19.22 was known to work on all Silicon Graphics machines running - IRIX 4.0.5 or IRIX 5.1. - - Compiling with -O using IRIX compilers prior to 3.10.1 may not work. - Don't use -O or use GCC instead. - - Most IRIX 3.3 systems do not have an ANSI C compiler, but a few do. - Compile Emacs 18 with the -cckr switch on these machines. - - There is a bug in IRIX 3.3 that can sometimes leave ptys owned by root - with a permission of 622. This causes malfunctions in use of - subprocesses of Emacs. Irix versions 4.0 and later with GNU Emacs - versions 18.59 and later fix this bug. - Masscomp (m68k-masscomp-rtu) 18.36 worked on a 5500DP running RTU v3.1a and compiler version 3.2 @@ -1498,3 +1469,5 @@ Local variables: mode: indented-text fill-prefix: " " End: + +arch-tag: 7d2e93c7-e982-40ec-9055-3cd064042473 diff --git a/etc/MAILINGLISTS b/etc/MAILINGLISTS index c9fe8e06708..ff3d5013b74 100644 --- a/etc/MAILINGLISTS +++ b/etc/MAILINGLISTS @@ -1,26 +1,31 @@ GNU Project Electronic Mailing Lists and gnUSENET Newsgroups - Last Updated 1999-05-06 + Last Updated 2004-10-19 Please report improvements to: gnu@gnu.org * Mailing list archives -The GNU mailing lists are archived at -ftp://ftp-mailing-list-archives.gnu.org/ +The GNU mailing lists are archived at http://lists.gnu.org. -* GNU mailing lists are also distributed as USENET news groups +* Some GNU mailing lists are also distributed as USENET news groups -The mailing lists are gated both ways with the gnu.all newsgroups at -uunet. The one-to-one correspondence is indicated below. If -you don't know if your site is on USENET, ask your system administrator. -If you are a USENET site and don't get the gnu.all newsgroups, please -ask your USENET administrator to get them. If he has your feeds ask -their feeds, you should win. And everyone else wins: newsgroups make -better use of the limited bandwidth of the computer networks and your -home machine than mailing list traffic; and staying off the mailing -lists make better use of the people who maintain the lists and the -machines that the GNU people working with rms use (i.e. we have more -time to produce code!!). Thanx. +Certain GNU mailing lists are gated both ways with the gnu.all +newsgroups at uunet. You can tell which they are, because the names +correspond. For instance, bug-gnu-emacs corresponds to gnu.emacs.bug; +info-gnu-emacs, to gnu.emacs.announce; help-gnu-emacs, to +gnu.emacs.help; gnu-emacs-sources, to gnu.emacs.sources. Replacing +`emacs' with some other program in those four examples shows you +the whole pattern. + +If you don't know if your site is on USENET, ask your system +administrator. If you are a USENET site and don't get the gnu.all +newsgroups, please ask your USENET administrator to get them. If he has +your feeds ask their feeds, you should win. And everyone else wins: +newsgroups make better use of the limited bandwidth of the computer +networks and your home machine than mailing list traffic; and staying +off the mailing lists make better use of the people who maintain the +lists and the machines that the GNU people working with rms use (i.e. we +have more time to produce code!!). Thanx. * Getting the mailing lists directly @@ -35,22 +40,14 @@ transport the mail from us to you. Send requests to be added or removed, to help-gnu-emacs-request (or info-gnu-request, bug-gdb-request, etc.), NOT to info-gnu-emacs (or info-gnu, etc.). Most -request addresses are now handled -automagically by the SmartList program. +automagically by GNU Mailman. If you need to report problems to a human, send mail to gnu@gnu.org explaining the problem. Many of the GNU mailing lists are very large and are received by many -people. Please don't send them anything that is not seriously important -to all their readers. All GNU mailing lists are unmoderated mail -reflectors, except info-gnu, info-gnu-emacs, info-gcc, info-g++, -info-gnu-fortran. - -All addresses below are in internet format. Consult the mail guru for -your computer to figure out address syntaxes from other networks. From -UUCP machines: - ..!ucbvax!gnu.org!ADDRESS - ..!uunet!gnu.org!ADDRESS +people. Most are unmoderated, so please don't send them anything that +is not seriously important to all their readers. If a message you mail to a list is returned from a MAILER-DAEMON (often with the line: @@ -80,11 +77,10 @@ available to only those people who want it (e.g. mailing it to people who ask, or putting it up for FTP). In the case of gnu.emacs.sources, somewhat larger postings (up to 10 parts of no more than 25,000 characters each) are acceptable (assuming they are likely to be of -interest to a reasonable number of people); if it is larger than that -have it added to archive.cis.ohio-state.edu (the GNU Emacs Lisp ftp and -uucp archive) and announce its location there. Good bug reports are -short. See section '* General Information about bug-* lists and ...' -for further details. +interest to a reasonable number of people); if it is larger than that, +put it in a web page and announce its URL. Good bug reports are short. +See section '* General Information about bug-* lists and ...' for +further details. Most of the time, when you reply to a message sent to a list, the reply should not go to the list. But most mail reading programs supply, by @@ -170,8 +166,7 @@ overworked; they don't have time to help individuals and still fix the bugs and make the improvements that everyone wants. If you want help for yourself in particular, you may have to hire someone. The GNU project maintains a list of people providing such services. It is -distributed with GNU Emacs in file etc/SERVICE, and can be requested -from gnu@gnu.org. +found in . Anything addressed to the implementors and maintainers of a GNU program via a bug-* list, should NOT be sent to the corresponding info-* or @@ -197,27 +192,23 @@ And please DON'T post your GNU bug reports to comp.* or other gnu.* newsgroups, they never make it to the GNU maintainers at all. Please mail them to bug-*@gnu.org instead! -See section '* General Information about all lists'. +* Some special lists that don't fit the usual patterns of help-, bug- and info- -* info-gnu-request@gnu.org to subscribe to info-gnu -** gnUSENET newsgroup: gnu.announce -** Send announcements to: info-gnu@gnu.org +** info-gnu-request@gnu.org to subscribe to info-gnu + +gnUSENET newsgroup: gnu.announce +Send announcements to: info-gnu@gnu.org This list distributes progress reports on the GNU Project. It is also used by the GNU Project to ask people for various kinds of help. It is -NOT for general discussion. - -The list is filtered to remove items meant for info-gnu-request, that -can be answered by the moderator without bothering the list, or should -have been sent to another list. +moderated and NOT for general discussion. -See section '* General Information about info-* lists'. +** gnu-misc-discuss-request@gnu.org to subscribe to gnu-misc-discuss -* gnu-misc-discuss-request@gnu.org to subscribe to gnu-misc-discuss -** gnUSENET newsgroup: gnu.misc.discuss -** Send contributions to: gnu-misc-discuss@gnu.org +gnUSENET newsgroup: gnu.misc.discuss +Send contributions to: gnu-misc-discuss@gnu.org -This list is for serious discussion of freed software, the GNU Project, +This list is for serious discussion of free software, the GNU Project, the GNU Manifesto, and their implications. It's THE place for discussion that is not appropriate in the other GNU mailing lists and gnUSENET newsgroups. @@ -229,9 +220,11 @@ Good READING and writing are expected. Before posting, wait a while, cool off, and think. Don't use this group for complaints and bug reports about GNU software! -The maintainers don't read this group; they won't see your complaint. -Use the appropriate bug-reporting mailing list instead, so that people -who can do something about the problem will see it. +The maintainers of the package you are using probably don't read this +group; they won't see your complaint. Use the appropriate bug-reporting +mailing list instead, so that people who can do something about the +problem will see it. Likewise, use the help- list for technical +questions. Don't trust pronouncements made on gnu-misc-discuss about what GNU is, what FSF position is, what the GNU General Public License is, etc., @@ -244,47 +237,13 @@ empty at your site, wait (the articles are posted monthly), your posting isn't that urgent! Readers on the Internet can anonymous FTP these articles from host ftp.uu.net under directory ?? -Someone from the Free Software Foundation will attempt to follow this -group as time and volume permits. - Remember, "GNUs Not Unix" and "gnUSENET is Not USENET". We have higher standards! -Note that sending technical questions about specific GNU software to -gnu-misc-discuss is likely to be less useful than sending them to the -appropriate mailing list or gnUSENET newsgroup, since more technical -people read those. - -* bug-gnu-sql-request@gnu.org to subscribe to bug-gnu-sql -** gnUSENET newsgroup: NONE PLANNED -** GNU-SQL BUG reports to: bug-gnu-sql@gnu.org - -This list distributes, to the active maintainers of GNU's SQL (GNU's SQL -full scale database server), bug reports and fixes for, and suggestions -for improvements to GNU's SQL. User discussion of GNU's SQL also occurs -here. - -There are no other GNU mailing lists or gnUSENET newsgroups for GNU's SQL. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-guile-request@gnu.org to subscribe to bug-guile -** gnUSENET newsgroup: NONE PLANNED -** GUILE BUG reports to: bug-guile@gnu.org - -This list distributes, to the active maintainers of GUILE (GNU's -Ubiquitous Extension Language), bug reports and fixes for, and suggestions for -improvements to GUILE. User discussion of GUILE also occurs here. +** guile-sources-request@gnu.org to subscribe to guile-sources -There are no other GNU mailing lists or gnUSENET newsgroups for GUILE . - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* guile-sources-request@gnu.org to subscribe to guile-sources -** gnUSENET newsgroup: NONE PLANNED -** Guile source code to: guile-sources@gnu.org +gnUSENET newsgroup: NONE PLANNED +Guile source code to: guile-sources@gnu.org This list will be for the posting, by their authors, of GUILE, Scheme, and C sources and patches that improve Guile. Its contents will be @@ -315,143 +274,10 @@ If the requested source is very long (>10k bytes) send mail offering to send it. This prevents the requester from getting many redundant copies and saves network bandwidth. -* bug-gnustep-request@gnu.org to subscribe to bug-gnustep -** gnUSENET newsgroup: gnu.gnustep.bug -** Gnustep bug reports to: bug-gnustep@gnu.org -** FAQ-URL: none known -** FAQ-Archive-name: none known -** FAQ-Posting-frequency: none known - -This list distributes bug reports for, fixes for bugs in, and -suggestions for improvements in GNUstep to its active developers. - -Subscribers to bug-gnustep get all info-gnustep messages. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-gnustep-request@gnu.org to subscribe to help-gnustep -** gnUSENET newsgroup: gnu.gnustep.help -** Send contributions to: help-gnustep@gnu.org -** FAQ-URL: none known -** FAQ-Archive-name: none known -** FAQ-Posting-frequency: none known - -This list is the place for users and installers of the GNUstep to ask -for help. Please send bug reports to bug-gnustep@gnu.org -instead of posting them here. - -See section '* General Information about help-* lists'. - -* discuss-gnustep-request@gnu.org to subscribe to discuss-gnustep -** gnUSENET newsgroup: gnu.gnustep.discuss -** Send contributions to: discuss-gnustep@gnu.org -** FAQ-URL: none known -** FAQ-Archive-name: none known -** FAQ-Posting-frequency: none known - -This list is the place for GNUstep users and developers to discuss -GNUstep. Please send bug reports to bug-gnustep@gnu.org -instead of posting them here. - -See section '* General Information about discuss-* lists'. - -* info-gnustep-request@gnu.org to subscribe to info-gnustep -** gnUSENET newsgroup: gnu.gnustep.announce -** Send announcements to: info-gnustep@gnu.org -** FAQ-URL: none known -** FAQ-Archive-name: none known -** FAQ-Posting-frequency: none known - -This list distributes announcements and progress reports on GNUstep. -It is NOT for general discussion; please use discuss-gnustep for that. - -The list is filtered to remove items meant for info-gnustep-request, that -can be answered by the moderator without bothering the list, or should -have been sent to another list. - -Do not report GNUstep bugs to info-gnustep, help-gnustep, or -discuss-gnustep, mail them to bug-gnustep@gnu.org instead. - -See section '* General Information about info-* lists'. - -* bug-hurd-request@gnu.org to subscribe to bug-hurd -** gnUSENET newsgroup: NONE -** Hurd bug reports to: bug-hurd@gnu.org - -This list distributes bug reports for, fixes for bugs in, and -suggestions for improvements in the GNU Hurd to its active developers. - -No info-gnu-hurd list is planned. Announcements about the GNU Hurd will -be made to the list info-gnu@gnu.org (see above). - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-hurd-request@gnu.org to subscribe to help-hurd -** gnUSENET newsgroup: NONE -** Send contributions to: help-hurd@gnu.org - -This list is the place for users and installers of the GNU Hurd to ask -for help. - -No info-gnu-hurd list is planned. Announcements about the GNU Hurd will -be made to the list info-gnu@gnu.org (see above). - -See section '* General Information about help-* lists'. - -* hurd-ann-request@gnu.org IS NOW DEFUNCT -** gnUSENET newsgroup: NEVER EXISTED -** DEAD address: hurd-ann@gnu.org - -This list is dead. Announcements about the GNU Hurd will be made to the -list info-gnu@gnu.org (see above). - -* discuss-gnu-electric-request@gnu.org to subscribe to discuss-gnu-electric -** gnUSENET newsgroup: NONE -** Send contributions to: discuss-gnu-electric@gnu.org - -This list is the place for user discussion of Gnu Electric, a -sophisticated electrical CAD system that can handle many forms of -circuit design. Please send bug reports to bug-gnu-electric@gnu.org -(see next entry). - -* bug-gnu-electric-request@gnu.org to subscribe to bug-gnu-electric -** gnUSENET newsgroup: NONE -** Gnu Electric bug reports to: bug-gnu-electric@gnu.org - -This list distributes, to the active maintainers of GNU Electric, bug -reports and fixes for, and suggestions for improvements in GNU Electric, -a sophisticated electrical CAD system that can handle many forms of -circuit design. - -No info-gnu-electric list exists; announcements of new releases are -made to info-gnu@gnu.org (see above). - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-gnu-emacs-request@gnu.org to subscribe to bug-gnu-emacs -** gnUSENET newsgroup: gnu.emacs.bug -** Gnu Emacs bug reports to: bug-gnu-emacs@gnu.org +** gnu-emacs-sources-request@gnu.org to subscribe to gnu-emacs-sources -This list distributes, to the active maintainers of GNU Emacs, bug -reports and fixes for, and suggestions for improvements in GNU Emacs. - -Send bugs in the GNU Emacs Lisp reference manual to: - lisp-manual-bugs@gnu.org - -lisp-manual-bugs is neither a mailing list nor a gnUSENET newsgroup. -It's just a bug-reporting address. - -Subscribers to bug-gnu-emacs get all info-gnu-emacs messages. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* gnu-emacs-sources-request@gnu.org to subscribe to gnu-emacs-sources -** gnUSENET newsgroup: gnu.emacs.sources -** Gnu Emacs source code to: gnu-emacs-sources@gnu.org +gnUSENET newsgroup: gnu.emacs.sources +GNU Emacs source code to: gnu-emacs-sources@gnu.org This list/newsgroup will be for the posting, by their authors, of Emacs Lisp and C sources and patches that improve GNU Emacs. Its contents @@ -485,1039 +311,9 @@ If the requested source is very long (>10k bytes) send mail offering to send it. This prevents the requester from getting many redundant copies and saves network bandwidth. -* help-gnu-emacs-request@gnu.org to subscribe to help-gnu-emacs -** gnUSENET newsgroup: gnu.emacs.help (and one-way into comp.emacs) -** Send contributions to: help-gnu-emacs@gnu.org - -This list is the place for users and installers of GNU Emacs to ask for -help. Please send bug reports to bug-gnu-emacs instead of posting them -here. - -Since help-gnu-emacs is a very large list, send it only those items that -are seriously important to many people. - -If source or patches that were previously posted or a simple fix is -requested in help-gnu-emacs, please mail it to the requester. Do NOT -repost it. If you also want something that is requested, send mail to -the requester asking him to forward it to you. This kind of traffic is -best handled by e-mail, not a broadcast medium that reaches millions of -sites. - -This list is also gated one way to USENET's newsgroup comp.emacs (once -known as net.emacs). This one-way gating is done for users whose sites -get comp.emacs, but not gnu.emacs.help. Users at non-USENET sites may -receive all articles from comp.emacs by making their request to: -unix-emacs-request@bbn.com - -If Emacs crashes, or if you build Emacs following the standard procedure -on a system which Emacs is supposed to work on (see etc/MACHINES) and it -does not work at all, or if an editing command does not behave as it is -documented to behave, this is a bug. Don't send bug reports to -help-gnu-emacs (gnu.emacs.help) or post them to comp.emacs; mail them to -bug-gnu-emacs@gnu.org instead. - -See section '* General Information about help-* lists'. - -* info-gnu-emacs-request@gnu.org to subscribe to info-gnu-emacs -** gnUSENET newsgroup: gnu.emacs.announce (and one-way into comp.emacs) -** Send announcements to: info-gnu-emacs@gnu.org - -This list distributes announcements and progress reports on GNU Emacs. -It is NOT for general discussion; please use help-gnu-emacs for that. - -The list is filtered to remove items meant for info-gnu-emacs-request, -that can be answered by the moderator without bothering the list, or -should have been sent to another list. - -info-gnu-emacs is also gated one way to USENET's newsgroup comp.emacs -(once known as net.emacs). This one-way gating is done for users whose -sites get comp.emacs, but not gnu.emacs.announce. Users at non-USENET -sites may receive all articles from comp.emacs by making their request -to: unix-emacs-request@bbn.com - -Do not report GNU Emacs bugs to info-gnu-emacs or comp.emacs, instead -mail them to bug-gnu-emacs@gnu.org. - -See section '* General Information about info-* lists'. - -* vms-gnu-emacs-request@gnu.org to subscribe -** gnUSENET newsgroup: gnu.emacs.vms -** Send contributions to: vms-gnu-emacs@gnu.org - -This list was a working group who did the initial port of GNU Emacs to -the VMS operating system. It still discusses problems and solutions to -the VMS port and the distribution of it. - -* bug-bash-request@gnu.org to subscribe to bug-bash -** gnUSENET newsgroup: gnu.bash.bug -** BASH bug reports to: bug-bash@gnu.org - -This list distributes, to the active maintainers of BASH (the Bourne -Again SHell), bug reports and fixes for, and suggestions for -improvements in BASH. User discussion of BASH also occurs here. - -Always report the version number of the operating system, hardware, and -bash (flag -version on startup or check the variable $BASH_VERSION in a -running bash). - -There are no other GNU mailing lists or gnUSENET newsgroups for BASH. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-gdb-request@gnu.org to subscribe to bug-gdb -** gnUSENET newsgroup: gnu.gdb.bug -** GDB bug reports to: bug-gdb@gnu.org - -This list distributes, to the active maintainers of GDB (Gnu's -DeBugger), bug reports and fixes for, and suggestions for improvements -in GDB. This list is also for user discussion. - -There are no other GNU mailing lists or gnUSENET newsgroups for GDB. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-ncurses-request@gnu.org to subscribe to bug-ncurses -** gnUSENET newsgroup: none -** NCURSES bug reports to: bug-ncurses@gnu.org - -This list distributes, to the active maintainers of ncurses -(a free implementation of the Unix curses API) bug reports and fixes -for, and suggestions for improvements in ncurses. Users can also -subscribe to this list. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-ncurses-request@gnu.org to subscribe to help-ncurses -** gnUSENET newsgroup: none -** posts go to: help-ncurses@gnu.org - -This list is the place for users and installers of ncurses to ask for -help. Please send bug reports to bug-ncurses instead of posting them -here. - -See section '* General Information about help-* lists' - -* bug-gnats-request@gnu.org to subscribe to bug-gnats -** gnUSENET newsgroup: None -** GNATS bug reports to: bug-gnats@gnu.org - -This list distributes, to the active maintainers of GNATS (GNats: A -Tracking System), bug reports and fixes for, and suggestions for improvements -in GNATS. This list is also for user discussion. - -There are no other GNU mailing lists or gnUSENET newsgroups for GNATS. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-octave-request@bevo.che.utexas.edu to subscribe to bug-octave -** gnUSENET newsgroup: NONE PLANNED -** Octave bug reports to: bug-octave@bevo.che.utexas.edu - -This list distributes, to the active maintainers of Octave (a system -for numerical computations), bug reports and fixes for, and -suggestions for improvements to Octave. - -The help-octave mailing list is for user discussion of Octave. - -See section '* General Information about bug-* lists and reporting -program bugs'. - - -* help-octave-request@bevo.che.utexas.edu to subscribe to help-octave -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: help-octave@bevo.che.utexas.edu - -This list is the place for users and installers of Octave to ask for -help. Please send bug reports to bug-octave instead of posting them -here. - -If Octave crashes, or if you build Octave following the standard -procedure on a system on which Octave is supposed to work on and it -does not work at all, or if a command does not behave as it is -documented to behave, this is a bug. Don't send bug reports to -help-octave; mail them to bug-octave@che.utexas.edu instead. - -See section '* General Information about help-* lists'. - -* bug-bison-request@gnu.org to subscribe to bug-bison -** gnUSENET newsgroup: NONE -** Bison bug reports to: bug-bison@gnu.org - -This list distributes, to the active maintainers of Bison -bug reports and fixes for, and suggestions for improvements -in Bison. User discussion of Bison bugs occurs here. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-bison-request@gnu.org to subscribe to help-bison -** gnUSENET newsgroup: NONE -** Send contributions to: help-bison@gnu.org - -This list is the place for users and installers of Bison -to ask for help. Please send bug reports to bug-bison instead -of posting them here. - -See section '* General Information about help-* lists'. - -* bug-make-request@gnu.org to subscribe to bug-make -** gnUSENET newsgroup: NONE -** Make bug reports to: bug-make@gnu.org - -This list distributes, to the active maintainers of GNU make -bug reports and fixes for, and suggestions for improvements -in GNU make. User discussion of GNU make bugs occurs here. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-make-request@gnu.org to subscribe to help-make -** gnUSENET newsgroup: NONE -** Send contributions to: help-make@gnu.org - -This list is the place for users and installers of GNU make -to ask for help. Please send bug reports to bug-make instead -of posting them here. - -See section '* General Information about help-* lists'. - -* help-flex-request@gnu.org to subscribe to help-flex -** gnUSENET newsgroup: NONE -** Send contributions to: help-flex@gnu.org - -This list is the place for users and installers of Flex -to ask for help. Please send bug reports to bug-gnu-utils instead -of posting them here. - -See section '* General Information about help-* lists'. - -* bug-rcs-request@gnu.org to subscribe to bug-rcs -** gnUSENET newsgroup: NONE -** RCS bug reports to: bug-rcs@gnu.org - -This list distributes, to the active maintainers of RCS -bug reports and fixes for, and suggestions for improvements -in RCS. User discussion of RCS bugs occurs here. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-rcs-request@gnu.org to subscribe to help-rcs -** gnUSENET newsgroup: NONE -** Send contributions to: help-rcs@gnu.org - -This list is the place for users and installers of RCS -to ask for help. Please send bug reports to bug-rcs instead -of posting them here. - -See section '* General Information about help-* lists'. - -* bug-gcc-request@gnu.org to subscribe to bug-gcc -** gnUSENET newsgroup: gnu.gcc.bug -** GCC bug reports to: bug-gcc@gnu.org - -This list distributes bug reports for, fixes for bugs in, and -suggestions for improvements in the GNU C Compiler to its active -developers. - -Please don't send in a patch without a test case to illustrate the -problem the patch is supposed to fix. Sometimes the patches aren't -correct or aren't the best way to do the job, and without a test case -there is no way to debug an alternate fix. - -The most convenient form of test case is a piece of cpp output that can -be passed directly to cc1. Preferably written in C, not C++ or -Objective C. - -Subscribers to bug-gcc get all info-gcc messages. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-gcc-request@gnu.org to subscribe to help-gcc -** gnUSENET newsgroup: gnu.gcc.help -** Send contributions to: help-gcc@gnu.org - -This list is the place for users and installers of the GNU C Compiler to -ask for help. - -If gcc crashes, or if you build gcc following the standard procedure on -a system which gcc is supposed to work on (see config.sub) and it does -not work at all, or if an command line option does not behave as it is -documented to behave, this is a bug. Don't send bug reports to help-gcc -(gnu.gcc.help); mail them to bug-gcc@gnu.org instead. - -See section '* General Information about help-* lists'. - -* info-gcc-request@gnu.org to subscribe to info-gcc -** gnUSENET newsgroup: gnu.gcc.announce -** Send announcements to: info-gcc@gnu.org - -This list distributes announcements and progress reports on the GNU C -Compiler. It is NOT for general discussion; please use help-gcc for -that. - -The list is filtered to remove items meant for info-gcc-request, that -can be answered by the moderator without bothering the list, or should -have been sent to another list. - -See section '* General Information about info-* lists'. - -* bug-gnu960-request@ichips.intel.com to subscribe to bug-gnu960 -** gnUSENET newsgroup: NONE PLANNED -** Intel 960 Port bug reports to: bug-gnu960@ichips.intel.com - -This list distributes bug reports for, fixes for bugs in, and -suggestions for improvements in Intel's port of GNU software to the -Intel 960 microprocessor. - -You can also fax to: GNU/960 - 1-503-696-4930. - -There are no other GNU mailing lists or gnUSENET newsgroups for Intel's -port of GNU software to the Intel 960 microprocessor. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-glibc-request@gnu.org to subscribe to bug-glibc -** gnUSENET newsgroup: gnu.glibc.bug -** GNU C Library bug reports to: bug-glibc@gnu.org - -This list distributes, to the active maintainers of glibc (GNU's C -library), bug reports and fixes for, and suggestions for improvements in -glibc. User discussion of glibc also occurs here. - -Announcements of new releases of glibc are made on both info-gcc and -bug-glibc. - -There are no other GNU mailing lists or gnUSENET newsgroups for the GNU -C Library. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-g++-request@gnu.org to subscribe to bug-g++ -** gnUSENET newsgroup: gnu.g++.bug -** G++ bug reports to: bug-g++@gnu.org - -This list distributes bug reports for, fixes for bugs in, and -suggestions for improvements in the GNU C++ Compiler to its active -developers. - -G++ uses the GNU C-Compiler back end. Active developers may wish to -subscribe to bug-gcc@gnu.org as well. - -Subscribers to bug-g++ get all info-g++ messages. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-g++-request@gnu.org to subscribe to help-g++ -** gnUSENET newsgroup: gnu.g++.help (and one-way into comp.lang.c++) -** Send contributions to: help-g++@gnu.org - -This list is the place for users and installers of the GNU C++ Compiler -to ask for help. Please send bug reports to bug-g++@gnu.org -instead of posting them here. - -help-g++ is also gated one way to USENET's newsgroup comp.lang.c++. -This one-way gating is done for users whose sites get comp.lang.c++, but -not gnu.g++.help. - -See section '* General Information about help-* lists'. - -* info-g++-request@gnu.org to subscribe to info-g++ -** gnUSENET newsgroup: gnu.g++.announce (and one-way into comp.lang.c++) -** Send announcements to: info-g++@gnu.org - -This list distributes announcements and progress reports on the GNU C++ -Compiler. It is NOT for general discussion; please use help-g++ for -that. - -The list is filtered to remove items meant for info-g++-request, that -can be answered by the moderator without bothering the list, or should -have been sent to another list. - -It is also gated one way to USENET's newsgroup comp.lang.c++. This -one-way gating is done for users whose sites get comp.lang.c++, but not -gnu.g++.announce. - -Do not report g++ bugs to info-g++ or comp.lang.c++, mail them to -bug-g++@gnu.org instead. - -See section '* General Information about info-* lists'. - -* bug-lib-g++-request@gnu.org to subscribe to bug-lib-g++ -** gnUSENET newsgroup: gnu.g++.lib.bug -** lib-g++ bug reports to: bug-lib-g++@gnu.org - -This list distributes, to the active maintainers of libg++ (GNU's -library for C++), bug reports and fixes for, and suggestions for -improvements in lib-g++. User discussion of libg++ also occurs here. - -Announcements of new releases of libg++ are made on both info-g++ and -bug-lib-g++. - -There are no other GNU mailing lists or gnUSENET newsgroups for GNU's -G++ Library. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* info-gnu-fortran-request@gnu.org to subscribe to info-gnu-fortran -** gnUSENET newsgroup: NONE YET -** Send announcements to: info-gnu-fortran@gnu.org - -This list is for progress reports and release notices for G77/GNU -Fortran. - -The list is filtered to remove items meant for info-gnu-fortran-request, -that can be answered by the moderator without bothering the list, or that -should have been sent to another list. - -People on the Internet can get a current status report by fingering the -address fortran@gnu.org or by looking at the GNU Fortran web pages at -http://www.gnu.org/software/fortran/fortran.html. - -Users looking for help should ask the help-gnu-fortran@gnu.org list. -Bug reports should go to bug-gnu-fortran@gnu.org. - -See section '* General Information about info-* lists'. - -* help-gnu-fortran-request@gnu.org to subscribe to help-gnu-fortran -** gnUSENET newsgroup: NONE YET -** Send messages to: help-gnu-fortran@gnu.org - -This list is for user requests for help and discussion about GNU -Fortran (G77). Bug reports should go to bug-gnu-fortran@gnu.org. - -See section '* General Information about help-* lists'. - -* bug-gnu-fortran@@gnu.org to subscribe to bug-gnu-fortran -** gnUSENET newsgroup: NONE YET -** Send messages to: help-gnu-fortran@gnu.org - -This list is for bug-reports and patches for GNU Fortran -(G77). Requests for help should go to help-gnu-fortran@gnu.org. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-oleo-request@gnu.org to subscribe to bug-oleo -** gnUSENET newsgroup: NONE PLANNED -** Oleo bug reports to: bug-oleo@gnu.org - -This list distributes, to the active maintainers of Oleo (the GNU -spreadsheet), bug reports and fixes for, and suggestions for -improvements to Oleo. User discussion of Oleo also occurs here. - -There are no other GNU mailing lists or gnUSENET newsgroups for Oleo. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-gmp-request@gnu.org to subscribe to bug-gmp -** gnUSENET newsgroup: NONE PLANNED -** gmp bug reports to: bug-gmp@gnu.org - -This list distributes, to the active maintainers of gmp (the GNU -Multiple Precision Library), bug reports and fixes for, and suggestions -for improvements to gmp. User discussion of gmp also occurs here. - -There are no other GNU mailing lists or gnUSENET newsgroups for gmp . - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-panorama-request@gnu.org to subscribe to bug-panorama -** gnUSENET newsgroup: NONE PLANNED -** panorama bug reports to: bug-panorama@gnu.org - -This list is a place for users of Panorama to send bug reports, fixes -for them, and suggestions for improvements. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-panorama-request@gnu.org to subscribe to help-panorama -** gnUSENET newsgroup: NONE PLANNED -** articles to: help-panorama@gnu.org - -This list is the place for users and installers of Panorama to ask for -help. Please send bug reports to bug-panorama instead of posting them -here. - -* devel-panorama-request@gnu.org to subscribe to devel-panorama -** gnUSENET newsgroup: NONE PLANNED -** articles to: devel-panorama@gnu.org - -This list is a place for discussion among active developers of Panorama -API or any of its plugins. - -* bug-mana-request@gnu.org to subscribe to bug-mana -** gnUSENET newsgroup: NONE PLANNED -** mana bug reports to: bug-mana@gnu.org - -This list distributes, to the active maintainers of mana (the GNU -stand-alone mail reader), bug reports and fixes for, and suggestions -for improvements to mana. User discussion of mana also occurs here. - -There are no other GNU mailing lists or gnUSENET newsgroups for mana. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-zebra-request@gnu.org to subscribe to bug-zebra -** gnUSENET newsgroup: NONE PLANNED -** zebra bug reports to: bug-zebra@gnu.org - -This list distributes, to the active maintainers of zebra (a GPLed -program to manage TCP/IP based routing protocols), bug reports, bug fixes, -and suggestions for improvements to zebra. User discussion of zebra -also occurs here. - -There are no other GNU mailing lists or gnUSENET newsgroups for zebra. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-cfengine-request@gnu.org to subscribe to bug-cfengine -** gnUSENET newsgroup: gnu.cfengine.bug -** cfengine bug reports to: bug-cfengine@gnu.org - -This list distributes, to the active maintainers of cfengine (configure -BSD and System-5-like operating systems attached to a TCP/IP network), -bug reports and fixes for, and suggestions for improvements to cfengine. -User discussion of cfengine also occurs here. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-cfengine-request@gnu.org to subscribe to help-cfengine -** gnUSENET newsgroup: gnu.cfengine.help -** Send contributions to: help-cfengine@gnu.org - -This list is the place for users and installers of cfengine to ask for -help. Please send bug reports to bug-cfengine instead of posting them -here. - -This list is also used for announcements about cfengine and related -programs, and small but important patches. Announcements of cfengine -releases are also made to info-gnu@gnu.org (see above) - -Since help-cfengine is a large list, send it only those items that -are seriously important to many people. - -If source or patches that were previously posted or a simple fix is -requested in help-cfengine, please mail it to the requester. Do NOT -repost it. If you also want something that is requested, send mail to -the requester asking him to forward it to you. This kind of traffic is -best handled by e-mail, not a broadcast medium that reaches millions of -sites. - -See section '* General Information about help-* lists'. -Also see section '* General Information about info-* lists'. - -* bug-gnu-smalltalk-request@gnu.org to subscribe to bug-gnu-smalltalk -** gnUSENET newsgroup: gnu.smalltalk.bug -** GNU Smalltalk bug reports to: bug-gnu-smalltalk@gnu.org - -GNU Smalltalk is the GNU project implementation of the Smalltalk language. - -This list distributes, to the active maintainers of GNU Smalltalk, bug -reports and fixes for, and suggestions for improvements to GNU -Smalltalk. User discussion of GNU Smalltalk also occurs here. - -For now, new releases of GNU Smalltalk will also be announced on this list. - -There are no other GNU mailing lists or gnUSENET newsgroups for GNU -Smalltalk. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* st-next-request@laplace.eng.sun.com to subscribe to st-next -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: st-next@laplace.eng.sun.com - -For people interested in working on GNU Smalltalk on the NeXT. - -* bug-groff-request@gnu.org to subscribe to bug-groff -** gnUSENET newsgroup: gnu.groff.bug -** GNU groff bug reports to: bug-groff@gnu.org - -groff is the GNU project implementation, in C++, of the traditional Unix -document formatting tools. - -This list distributes, to the active maintainers of groff, bug reports -and fixes for, and suggestions for improvements to groff (and it -component programs). User discussion of groff also occurs here. - -For now, new releases of groff will also be announced on this list. - -There are no other GNU mailing lists or gnUSENET newsgroups for groff. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-ghostscript-request@gnu.org to subscribe to bug-ghostscript -** gnUSENET newsgroup: gnu.ghostscript.bug -** Ghostscript bug reports to: bug-ghostscript@gnu.org - -Ghostscript is the GNU project implementation of a language and graphics -library with a remarkable similarity to PostScript. - -This list distributes, to the active maintainers of Ghostscript, bug -reports and fixes for, and suggestions for improvements in Ghostscript. - -For now, new releases of Ghostscript will also be announced on this list. - -There are no other GNU mailing lists or gnUSENET newsgroups for -Ghostscript. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-gnu-utils-request@gnu.org to subscribe to bug-gnu-utils -** gnUSENET newsgroup: gnu.utils.bug -** GNU Utilities bug reports to: bug-gnu-utils@gnu.org - -This list distributes, to the active maintainers of these programs, bug -reports and fixes for, and suggestions for improvements in GNU programs -not covered by other bug-* mailing lists/gnu.*.bug newsgroups. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-gnu-utils-request@gnu.org to subscribe to help-gnu-utils -** gnUSENET newsgroup: gnu.utils.help -** Send contributions to: help-gnu-utils@gnu.org - -This list is the place for users and installers of GNU programs not -covered by other GNU mailing lists/gnu.* newsgroups to ask for help. - -Don't send bug reports to help-gnu-utils (gnu.utils.help); mail them to -bug-gnu-utils@gnu.org instead. - -See section '* General Information about help-* lists'. - -* info-gnu-utils-request@gnu.org IS NOW DEFUNCT -** a gnUSENET newsgroup bever existed -** DEAD address: info-gnu-utils@gnu.org - -This list is dead. Announcements about GNU Utilities will be made to the -list info-gnu@gnu.org (see above). - -* info-cvs-request@gnu.org to subscribe to info-cvs. -** USENET newsgroup: (none) -** CVS discussions/questions to: info-cvs@gnu.org - -This list is for discussion and dissemination of information about -CVS. Please check the FAQ before posting questions, however. - -* bug-cvs-request@gnu.org to subscribe to bug-cvs. -** USENET newsgroup: (none) -** CVS bug reports to: bug-cvs@gnu.org - -This list distributes bug reports, fixes, and suggestions for -improvements to the maintainers of CVS. - -* bug-dr-geo-request@gnu.org to subscribe to bug-dr-geo -** gnUSENET newsgroup: NONE -** Dr. Geo bug reports to: bug-dr-geo@gnu.org - -This list distributes bug reports for, fixes for bugs in, and -suggestions for improvements in Dr. Geo to its active developers. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-fortran-mode-request@erl.mit.edu to subscribe to bug-fortran-mode -** USENET newsgroup: (none) -** Fortran mode bug reports to: bug-fortran-mode@erl.mit.edu - -This list collects bug reports, fixes for bugs, and suggestions for -improvements in GNU Emacs's Fortran mode (a major mode to support -editing Fortran source code). - -It is the place to report Fortran mode bugs by all users of Fortran -mode. - -Always report the version number Fortran mode reports on startup as well -as the version of Emacs. - -There is no info-fortran-mode list. There are no USENET gateways to -bug-fortran-mode at this time. - -* info-gnus-request@flab.fujitsu.co.jp to subscribe -** gnUSENET newsgroup: NONE YET -** Send contributions to: info-gnus@flab.fujitsu.co.jp - -The list is intended to exchange useful information about GNUS, such as -bug reports, useful hooks, and extensions of GNUS. GNUS is an NNTP-base -network news reader for GNU Emacs (which also works with a news spool). -English and Japanese are the official languages of the list. GNUS is -quite different than gnews. - -* info-gnus-english-request@gnu.org to subscribe -** gnUSENET newsgroup: gnu.emacs.gnus -** Send contributions to: info-gnus-english@gnu.org - -The list has the same charter as info-gnus. The difference is that -English is the only official language of the list. - -info-gnus-english/gnu.emacs.gnus is forward to info-gnus, but NOT -vice-versa. - -* info-gnews-request@ics.uci.edu to subscribe to info-gnews -** gnUSENET newsgroup: gnu.emacs.gnews -** Send contributions to: info-gnews@ics.uci.edu - -This newsgroup is intended to exchange useful information about gnews, -such as bug reports, useful hooks, and extensions of gnews. gnews is an -NNTP-base network news reader for GNU Emacs (which also works a news -spool). It is quite different than GNUS. - -* gnu-emacs-ada-request@grebyn.com to subscribe to gnu-emacs-ada -** gnUSENET newsgroup: NONE PLANNED -** Gnu Emacs Ada support bug reports to: gnu-emacs-ada@grebyn.com - -This list distributes bug reports for, fixes for bugs in, and -suggestions for improvements in GNU Emacs' editing support of the Ada -programming language. - -There are no other GNU mailing lists or gnUSENET newsgroups for GNU -Emacs' editing support of Ada. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* bug-vm-request@uunet.uu.net to subscribe to bug-vm -** gnUSENET newsgroup: gnu.emacs.vm.bug -** VM mail reader bug reports to: bug-vm@uunet.uu.net - -This list discusses bugs in View Mail mode for GNU Emacs, with an -emphasis on beta and prerelease versions. - -Always report the version number of VM you are using, as well as the -version of Emacs you're running. If you believe it is significant, -report the operating system used and the hardware. - -Subscribers to bug-vm get all info-vm messages. - -* info-vm-request@uunet.uu.net to subscribe to info-vm -** gnUSENET newsgroup: gnu.emacs.vm.info -** Send contributions to: info-vm@uunet.uu.net - -This list discusses the View Mail mode for GNU Emacs, an alternative to -rmail mode. - -* supercite-request@warsaw.nlm.nih.gov to subscribe to supercite -** gnUSENET newsgroup: NONE PLANNED -** Send articles to: supercite@warsaw.nlm.nih.gov -*** UUCP: ..!uunet!warsaw.nlm.nih.gov!supercite-request - -The supercite mailing list covers issues related to the advanced -mail/news citation package called Supercite for GNU Emacs. - -* auc-tex-request@iesd.auc.dk to subscribe -** USENET newsgroup: NONE YET -** Send contributions to: auc-tex@iesd.auc.dk - -The list is intended to exchange information about AUC TeX, such as -bug reports, request for help, and information on current -developments. AUC TeX is a much enhanced LaTeX mode for GNU Emacs. - -The list is unmoderated. - -* bug-gnu-chess-request@gnu.org to subscribe to bug-gnu-chess -** gnUSENET newsgroup: gnu.chess.bug -** GNU Chess bug reports to: bug-gnu-chess@gnu.org - -This list directly accesses the GNU Chess developer's group. If you -have a *BUG* to report about the program, which can also include a -feature enhancement request, please send it to this list. - -Subscribers to bug-gnu-chess get all info-gnu-chess messages. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-gnu-chess-request@gnu.org IS NOW DEFUNCT -** gnUSENET newsgroup: NONE PLANNED -** DEAD address: help-gnu-chess@gnu.org - -This list is dead. Use info-gnu-chess@gnu.org/gnu.chess instead. - -* info-gnu-chess-request@gnu.org to subscribe to info-gnu-chess -** gnUSENET newsgroup: gnu.chess -** Send contributions to: info-gnu-chess@gnu.org -** FAQ-URL: http://www.tim-mann.org/chess.html -** FAQ-Archive-name: games/chess/gnu-faq -** FAQ-Posting-frequency: monthly - -This list is the place for users and installers of GNU Chess to ask for -help. This list is also used for games played by people or other -entities against the program, and other generalized non-bug, -non-enhancement data. Please send bug reports to bug-gnu-chess instead -of posting them here. - -This list is also used for announcements about GNU Chess and related -programs, and small but important patches. Announcements of GNU Chess -releases are also made to info-gnu@gnu.org (see above) - -Since info-gnu-chess is a large list, send it only those items that -are seriously important to many people. - -If source or patches that were previously posted or a simple fix is -requested in info-gnu-chess, please mail it to the requester. Do NOT -repost it. If you also want something that is requested, send mail to -the requester asking him to forward it to you. This kind of traffic is -best handled by e-mail, not a broadcast medium that reaches millions of -sites. - -See section '* General Information about help-* lists'. -Also see section '* General Information about info-* lists'. - -* bug-gnu-shogi-request@gnu.org to subscribe to bug-gnu-shogi -** gnUSENET newsgroup: NONE PLANNED -** GNU Shogi bug reports to: bug-gnu-shogi@gnu.org - -This list directly accesses the GNU Shogi developer's group. If you -have a *BUG* to report about the program, which can also include a -feature enhancement request, please send it to this list. - -Subscribers to bug-gnu-shogi get all info-gnu-shogi messages. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -Shogi is a game something like chess. There are several different types -of pieces, a board that is 9 by 9 squares, and the modification that a -captured piece can be reintroduced on the board by the capturing player -(and used). Due to this last difference from Western chess, a Shogi -game never simplifies. - -* bug-mcsim-request@gnu.org to subscribe to bug-mcsim -** gnUSENET newsgroup: None at present. -** MCSim bug reports to: bug-mcsim@gnu.org - -This list is used for bug reports concerning MCSim, a general- -purpose modeling and simulation program. It is also for user -discussion of bug fixes and patches. - -This list is unmoderated. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-mcsim-request@gnu.org to subscribe to help-mcsim -** gnUSENET newsgroup: None at present. -** Send contributions to: help-mcsim@gnu.org - -This list is the place for users and installers of MCSim to ask for -help. Please send bug reports to bug-mcsim instead of posting them -here. - -This list is also used for announcements about MCSim and related -programs, and small but important patches. Announcements of MCSim -releases are also made to info-gnu@gnu.org (see above) - -* bug-m4-request@gnu.org to subscribe to bug-m4 -** gnUSENET newsgroup: None at present. -** Send contributions to: bug-m4@gnu.org - -This list is used for bug reports concerning m4, the GNU implementation -of the traditional Unix macro processor. It is also for user -discussion of bug fixes and patches. - -This list is unmoderated. - -* gpc-request@gnu.de to subscribe to gpc -** gnUSENET newsgroup: None at present. -** Send contributions to: gpc@gnu.de - -This list is the user mailing list for GNU Pascal. -*NOTE* This list was formerly at gpc@hut.fi, and moved as of 1999-05-13. -Announcements will now be sent to an announcements list (see next entry) -as well as to this list and info-gnu@gnu.org. - -* gpc-announce-request@gnu.de to subscribe to gpc-announce -** gnUSENET newsgroup: None at present. -** Send contributions to: gpc-announce@gnu.de - -This list will have announcements to interest to users of GNU Pascal, -including new releases. - -* autoconf-request@gnu.org to subscribe to automake -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: autoconf@gnu.org - -The list can be used to discuss the autoconf build system and related -tools (eg config.guess). The discussion can range from simple "how-to" -questions up to patches and future directions for this tool. - -* automake-request@gnu.org to subscribe to automake -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: automake@gnu.org - -The list can be used to discuss automake and related tools (eg libtool). -The discussion can range from simple "how-to" questions up to patches -and configuration philosophy. - -* libtool-request@gnu.org to subscribe to libtool -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: libtool@gnu.org - -The list can be used to discuss development and porting of libtool, and -anything else that the libtool developers might find interesting (excepting -bug-reports which have a list of their own). - -This list is unmoderated. - -* bug-libtool-request@gnu.org to subscribe to bug-libtool -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: bug-libtool@gnu.org - -The list can be used to submit and to discuss bugs in libtool. The -discussion can range from bug reports and patches themselves to discourse -related to specific bugs and patches. - -This list is unmoderated. - -* libtool-commit-request@gnu.org to subscribe to libtool -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: libtool-commit@gnu.org - -The list distributes automatic reports of cvs commits to the libtool -development sources to the list subscribers. Probably, any discussion -related to these automatic submissions should go to the libtool list which -has more subscribers who will see the submission. - -This list is unmoderated. - -* bug-a2ps-request@gnu.org to subscribe to bug-a2ps -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: bug-a2ps@gnu.org - -This list is used for bug reports concerning GNU a2ps, an Any to -PostScript filter. People willing to help (debugging, or helping users) -may subscribe to this list. - -This list is unmoderated. - -* a2ps-request@gnu.org to subscribe to a2ps -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: a2ps@gnu.org - -On this list are sent announcements about GNU a2ps --included betas--, -discussions on the interface, implementations etc. It is by no means a -bug reporting address, and its volume should be kept moderate. To this -end, and to avoid `accidents' (bug reports and spam), this list is not -moderated but members only can post. - -* wget-subscribe@sunsite.auc.dk to subscribe to wget@sunsite.auc.dk -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: wget@sunsite.auc.dk - -This list is for user discussion of wget. This list is not moderated. - -* help-gnu-shogi-request@gnu.org IS NOW DEFUNCT -** gnUSENET newsgroup: NONE PLANNED -** DEAD address: help-gnu-shogi@gnu.org - -This list is dead. - -* info-gnu-shogi-request@gnu.org to subscribe to info-gnu-shogi -** gnUSENET newsgroup: NONE PLANNED -** Send contributions to: info-gnu-shogi@gnu.org - -This list is the place for users and installers of GNU Shogi to ask for -help. This list is also used for games played by people or other -entities against the program, and other generalized non-bug, -non-enhancement data. Please send bug reports to bug-gnu-shogi instead -of posting them here. - -This list is also used for announcements about GNU Shogi and related -programs, and small but important patches. Announcements of GNU Shogi -releases are also made to info-gnu@gnu.org (see above) - -Since info-gnu-shogi is a large list, send it only those items that -are seriously important to many people. - -If source or patches that were previously posted or a simple fix is -requested in info-gnu-shogi, please mail it to the requester. Do NOT -repost it. If you also want something that is requested, send mail to -the requester asking him to forward it to you. This kind of traffic is -best handled by e-mail, not a broadcast medium that reaches millions of -sites. - -See section '* General Information about help-* lists'. -Also see section '* General Information about info-* lists'. - -* bug-texinfo-request@gnu.org to subscribe to bug-texinfo -** gnUSENET newsgroup: NONE -** GNU Texinfo bug reports to: bug-texinfo@gnu.org - -This list distributes, to the active maintainers of these programs, bug -reports and fixes for, and suggestions for improvements in GNU Texinfo, -both the programs and the language. - -See section '* General Information about bug-* lists and reporting -program bugs'. - -* help-texinfo-request@gnu.org to subscribe to help-texinfo -** gnUSENET newsgroup: NONE -** Send contributions to: help-texinfo@gnu.org - -This list is the place for authors, users and installers of GNU Texinfo -to ask for help. - -Don't send bug reports to help-texinfo; mail them to -bug-texinfo@gnu.org instead. - -See section '* General Information about help-* lists'. - -* gnu-manual-request@a.cs.uiuc.edu IS NOW DEFUNCT -** DEAD: Gnusenet newsgroup: gnu.emacs.lisp.manual -** DEAD address: gnu-manual@a.cs.uiuc.edu -*** DEAD UUCP address: ..!uunet!uiucdcs!gnu-manual-request - -This list and newsgroup is dead. It was a working group whose -volunteers wrote, proofread and commented on the developing GNU Emacs -Lisp programmers manual. - -Send bugs in the GNU Emacs Lisp reference manual to: - lisp-manual-bugs@gnu.org - -lisp-manual-bugs is neither a mailing list nor a gnUSENET newsgroup. -It's just a bug-reporting address. - -* no mailing list request -** gnUSENET newsgroup: gnu.gnusenet.config -** no mailing list - -This newsgroup has nothing to do with GNU software, especially its -configuration. It exists to distribute information about the -administration and configuration of gnUSENET: the gnu.all alternative -USENET hierarchy that carry the GNU mailing lists. - -Administrators of gnUSENET hosts receiving the gnu.all newsgroups are -welcome to ask questions here or via e-mail of gnu@gnu.org. - -* no mailing list request -** gnUSENET newsgroup: gnu.gnusenet.test -** no mailing list - -This newsgroup has nothing to do with GNU software, especially its -testing. It exists to allow test messages to be made in gnUSENET: the -gnu.all alternative USENET hierarchy that carry the GNU mailing lists. - Local variables: mode: outline fill-column: 72 End: + +arch-tag: 6e42bba8-7532-4a23-8486-99dbc5770a8e diff --git a/etc/MH-E-NEWS b/etc/MH-E-NEWS index 4e0cf683ab5..ba13b8aca15 100644 --- a/etc/MH-E-NEWS +++ b/etc/MH-E-NEWS @@ -1,3 +1,1013 @@ +* COPYRIGHT + +Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +* Changes in MH-E 7.85 + +Version 7.85 heralds a migration of the CVS repository from +SourceForge to Savannah only for those files that were already part of +Emacs. As a result, two incompatibilities were introduced with this +release: the location of MH-E in the load-path has changed, and +mh-e-autoloads.el was renamed to mh-autoloads.el. While this migration +will benefit maintainers, it will also benefit users: CVS Emacs users +will not have to check out MH-E separately and welcome faster MH-E +updates, and CVS MH-E users will welcome faster MH-E updates from +Emacs developers. Read section CVS MH-E INSTALL in the README for +details. + +MH-E now works on a Mac. See section INSTALL in the README for details. + +** Bug Fixes in MH-E 7.85 + +*** Prompts Now Follow Current Conventions + +Instead of "Prompt: [] ", the prompts now look like "Prompt +(default: ): ". + +*** Face Variable Names Now Follow Current Conventions + +The -face suffix has been dropped from all face names. + +*** Default Identity Prevents Insertion of Auto Fields + +Auto insertion of an identity now occurs even when the default +identity is used (closes SF #1204506). + +*** mh-compose-forward and Default Message Number + +mh-compose-forward will now default to the sent message in the sent +folder and the `cur' message in other folders. It also takes ranges of +messages and can include multiple messages at a time (closes SF +#1205890). + +*** mh-customize Uses Group mh, Not mh-e + +The `mh' customization group alias has been deleted to avoid some +problems that were found (closes SF #1213716). + +*** font-lock Error in mh-letter-mode + +An error in MH-E was introduced as a result of a change in CVS Emacs. +This has been fixed (closes SF #1241017). + + + +* Changes in MH-E 7.84 + +Version 7.84 contains no user-visible changes. This version +incorporates changes made in CVS Emacs such as the removal of some +deprecated software. + +* Changes in MH-E 7.83 + +Version 7.83 fixes a handful of bugs, adds colors to buttons for +signed or encrypted messages, and contains some documentation changes +related to the upcoming release of the manual. Some options were moved +to other customization groups as a result. + +While not related to this release, the MH-E mailing lists are now +gatewayed at gmane.org (closes SF #979308). + +** New Variables in MH-E 7.83 + +*** mh-show-pgg-bad-face + +Face used to highlight a bad PGG signature. + +*** mh-show-pgg-good-face + +Face used to highlight a good PGG signature. + +*** mh-show-pgg-unknown-face + +Face used to highlight a PGG signature whose status is unknown. This +face is also used for a signature when the signer is untrusted. + +** Bug Fixes in MH-E 7.83 + +*** Whitespace in pick Expressions + +The "C-u / s RET" command now works. In addition, you can now add +whitespace to any of the limiting (/) commands (closes SF #1122655). + +*** auto-mode-alist Updated + +MH-E originally updated auto-mode-alist to set the major mode of +drafts. Now that we explicitly set the mode, there is no reason to do +this, and this behavior caused problems for people who didn't use MH-E +who were editing files that looked like MH message files (closes SF +#1032353). + +*** mh-show-unquote-From Fails (read-only buffer) + +MH-E quotes the "From " header field that is inserted by MTAs. +However, it was trying to do this in a read-only buffer. This has been +fixed (closes SF #1089870). + +*** rmmproc Refile Complains No Such Message + +MH-E would get confused about which folder to delete messages from if +you were refiling and deleting messages at the same time. This has +been fixed (closes SF #1023959). + +*** ! Doesn't Do Regions + +Now it does (closes SF #1046330). + +*** Swish Fixes + +Items in swish indexes that aren't mail messages are now handled more +gracefully. + +*** Spamassassin Fixes + +If you use spamassassin, there was an error when you tried to junk +mail if the option mh-junk-background was set. This has been fixed. + +*** Mairix Support + +Indexing now compatible with Mairix version 0.12 and later. + + + +* Changes in MH-E 7.82 + +Version 7.82 continues to address the saga surrounding the use of CL +macros in CVS Emacs and fixes the auto-detection of vanilla MH (closes +SF #1014781). + +* Changes in MH-E 7.81 + +Version 7.81 fixes a `wrong-type-argument' argument error that +sometimes occurred when processing the Message-ID, adds the "; +(mh-toggle-mh-decode-mime-flag)" command, and uses ":default" instead +of "default" in `mh-identity-handlers' to avoid problems with +"Default:" as a user defined field. If you have modified +`mh-identity-handlers' in your .emacs, you'll need to rename "default" +to ":default". This release also corrects the release numbering; the +previous version number was intended to be 7.80. + + + +* Changes in MH-E 7.4.80 + +Version 7.4.80 now supports GNU mailutils, S/MIME, picons, +which-func-mode, has an improved interface for hiding header fields, +improves upon the MH variant detection, and contains many bug fixes. +Those of you familiar with the GNU version numbering schemes will +recognize this as an alpha release. This does not reflect on the +quality of this release which is as high as it has always been. +Although we are not ready to release 8.0, we want you to have access +to the work that has been hiding in CVS. At the same time we want to +make it clear that there are incompatible changes with previous +versions. + +We are planning to release the long-awaited manual update synchronized +with version 8.0. We are using documentation from the manual in the +docstrings which is hoped to make "C-h f (describe-function)" really +useful and create a seamless experience when switching back and forth +between the manual and the docstrings. This has been done in about +half of the variables and functions in this version. + +The writing of the manual has revealed a few inconsistencies in the +software whose fixes have resulted in incompatible changes, and there +may well be more. So, unlike version 7 which was chock full of new +features, version 8's strengths will include complete documentation +and higher quality. + +** New Features in MH-E 7.4.80 + +*** GNU mailutils Support + +MH-E now supports GNU mailutils 0.4 and higher versions. + +*** S/MIME Support + +MH-E now supports S/MIME using Gnus 5.10.6 or higher. + +*** Picon Support + +In addition to the other methods of displaying an icon for the sender +of a message, MH-E can now display images from a picon directory. The +directory search path is found in the `mh-picon-directory-list' +variable. More documentation is found in the "facedb" sections in the +xfaces man page. [NOTE: need to make mh-picon-directory-list an option +and add xfaces facedb documentation to it.] + +*** X-Image-URL Updates + +Now support the use of `curl' and `fetch' as alternatives to `wget' to +obtain the image. The display of images are controlled with the +`mh-show-use-xface-flag' option while the `mh-fetch-x-image-url' +option controls how the images are fetched. + +WARNING: There are security concerns with this feature. Please read +the documentation for these options carefully before changing the +default. + +*** Updates to mh-identity-list + +Note that the field names found in `mh-identity-list' that refer to +the fields in `mh-identity-handlers' have changed in an incompatible +way from 7.4.4. In general, the symbolic names now have a ":" prefix +to avoid collisions with header fields. Before starting Emacs, edit +your .emacs and insert ":" before "signature" if you have defined it. + +You can change your attribution in replies with the new "Attribution +Verb" field, and you can set your default GPG user ID with the "GPG +key ID" field. + +Signatures can now be read from the `mh-signature-file-name' variable, +or come from a function, in addition to a named file. If you write +your own function, variables that you can use include +`mh-signature-separator-regexp', `mh-signature-separator', +and `mh-signature-separator-p'. + +The handling of these fields has been moved into a new +`mh-identity-handlers' option, an alist of fields (strings) and +handlers (functions). Strings are lowercase. Use ":signature" for +Signature and ":pgg-default-user-id" for GPG Key ID. The function +associated with the string "default" is used if no other functions are +appropriate. For this reason, don't name a header field "Default". + +If you point your signature at a vCard file with a vcf suffix, then it +will be incorporated as a vCard body part (closes SF #802723). + +*** Catchup Command + +There is a new "F c (mh-catchup)" command that marks all unread +messages in the current folder as read. + +*** Change Content-Type Renderer on the Fly in MH-Show Buffer + +This has been implemented by adding the key binding "K e +(mh-display-with-external-viewer)". For inline text/html parts, +buttons aren't displayed by default. In that case use "K t +(mh-toggle-mime-buttons)" to display the button before viewing it with +an external browser (closes SF #839318). + +*** Use which-func-mode to Display Folder in Index Mode + +Turning on `which-func-mode' displays the folder name of the message +under the cursor in index folders (closes SF #855520). + +*** Render Signature and vCard in Italics + +This has been implemented. Use `mh-show-signature-face' to customize +the face used (closes SF #802722). + +*** New Print Map + +There is now a keymap for the printing functions whose prefix is "P". +The command "l (mh-print-msg)" has been replaced with "P l". Other new +functions in this keymap include: + + P A mh-ps-print-toggle-mime + P C mh-ps-print-toggle-color + P F mh-ps-print-toggle-faces + P M mh-ps-print-toggle-mime + P f mh-ps-print-msg-file + P l mh-print-msg + P p mh-ps-print-msg + P s mh-ps-print-msg-show + +*** Draft Buffer Keymap Changes + +The keymap in the draft buffer has been modified slightly. The old +anonymous ftp and tar composition commands have been reinstated and +letter signing and encrypting keymaps have been added. + +The type of signing or encryption has been generalized so the method +is now an option rather than a part of the function's name. The option +is `mh-mml-method-default' and choices include PGP (MIME), PGP, +S/MIME, or none. + +Key 7.4.4 7.4.80 + +C-c RET C-e mh-mml-secure-message-encrypt-pgpmime + mh-mml-secure-message-encrypt +C-c RET C-s mh-mml-secure-message-sign-pgpmime + - +C-c RET C-g - mh-mhn-compose-anon-ftp +C-c RET C-n - mh-mml-unsecure-message +C-c RET C-s - mh-mml-secure-message-sign +C-c RET C-t - mh-mhn-compose-external-compressed-tar +C-c RET C-s mh-mml-secure-message-sign-pgpmime + mh-mml-secure-message-sign +C-c RET C-x - mh-mhn-compose-external-type +C-c RET e mh-mml-secure-message-encrypt-pgpmime + Prefix Command +C-c RET e e - mh-mml-secure-message-encrypt +C-c RET e s - mh-mml-secure-message-signencrypt +C-c RET g - mh-mhn-compose-anon-ftp +C-c RET n - mh-mml-unsecure-message +C-c RET s mh-mml-secure-message-sign-pgpmime + Prefix Command +C-c RET s e - mh-mml-secure-message-signencrypt +C-c RET s s - mh-mml-secure-message-sign +C-c RET t - mh-mhn-compose-external-compressed-tar +C-c RET x - mh-mhn-compose-external-type + +*** Speedbar: Highlight Folders With Unseen + +The speedbar now renders the folders with unseen messages in boldface +which makes them easier to identify (closes SF #623369). + +*** Quick Key Help + +The "? (mh-help)" function now displays the help in its own buffer +called *MH-E Help* (closes SF #493740 and SF #656631). + +*** New Startup File mh-e-autoloads.el + +If you are installing MH-E yourself, then you can replace any +autoloads you may have with "(require 'mh-e-autoloads.el)". See the +README for details. + +*** Glimpse Support Removed + +Since glimpse isn't free, we cannot mention it. Glimpse has been +removed from the option `mh-indexer-choices' (closes SF #831276). + +*** mh-msg-is-in-seq Update + +Can now specify an alternate message number to "S s +(mh-msg-is-in-seq)" with a prefix argument. + +** New Variables in MH-E 7.4.80 + +Variables that have been added to MH-E that have not been discussed +elsewhere are listed here. + +*** mail-citation-hook + +Hook for modifying a citation just inserted in the mail buffer. + +*** mh-alias-reloaded-hook + +Invoked by `mh-alias-reload' after reloading aliases. + +*** mh-auto-fields-prompt-flag + +Non-nil means to prompt before sending if fields in +`mh-auto-fields-list' are inserted. + +*** mh-default-folder-for-message-function + +Function to select a default folder for refiling or `Fcc'. + +*** mh-forward-hook + +Invoked on the forwarded letter by "f (mh-forward)". + +*** mh-invisible-header-fields-default + +List of hidden header fields. The header fields listed in this option +are hidden, although you can check off any field that you would like +to see. Header fields that you would like to hide that aren't listed +can be added to the `mh-invisible-header-fields' option (closes SF +#752045). + +The option `mh-visible-header-fields' has been deleted. + +*** mh-junk-background + +If on, spam programs are run in background. This used to be the +default behavior but this could overwhelm a system if many messages +were black- or whitelisted at once. The spam programs are now run in +the foreground, but this option can be used to put them back in the +background. + +*** mh-signature-separator-flag + +Non-nil means a signature separator should be inserted. It is not +recommended that you change this option since various mail user +agents, including MH-E, use the separator to present the signature +differently, and to suppress the signature when replying or yanking a +letter into a draft. + +*** mh-variant + +Specifies the variant used by MH-E. The default setting of this option +is `Auto-detect' which means that MH-E will automatically choose the +first of nmh, MH, or GNU mailutils that it finds in the directories +listed in `mh-path', `mh-sys-path', and `exec-path'. If, for example, +you have both nmh and mailutils installed and `mh-variant-in-use' was +initialized to nmh but you want to use mailutils, then you can set +this option to `mailutils'. + +When this variable is changed, MH-E resets `mh-progs', `mh-lib', +`mh-lib-progs', `mh-flists-present-flag', and `mh-variant-in-use' +accordingly. + +If you've set these variables in your .emacs, it is strongly suggested +that you comment them out. The MH detection code has been completely +rewritten and it is very likely that you no longer to set them and +their setting may confuse other MH-E settings. + +** Variables Deleted in MH-E + +Variables that have been removed from MH-E that have not been +discussed elsewhere are listed here. + +*** mh-alias-system-aliases + +System definitions should not be a user option. + +*** mh-junk-mail-folder + +Since this variable can accept values other than folder names, it was +renamed to `mh-junk-disposition' to more accurately reflect the content. + +** Bug Fixes in MH-E 7.4.80 + +Many bugs were fixed in this version that aren't listed below. + +*** mh-extract-rejected-mail Can't Do MIME (and Other Formats) + +Now handles qmail and exim bounces (addresses SF #404965). + +*** mh-rmail Hangs in XEmacs + +We've determined that MH-E is incompatible with some versions of +XEmacs (21.5.9-21.5.16). More recent versions work fine. If you think +our list is too broad, please let us know which version of XEmacs you +are using (closes SF #644321). + +*** Inconsistent Prompts + +Prompt formats are now consistent throughout the application (closes +SF #730470). + +*** Empty Shell Comments Confuse mh-mhn-directive-present-p + +If you had a string that matched the regexp "^# $" in your draft, it +would cause an error. This has been fixed (closes SF #762458). + +*** Quote Hashes When mhbuild Directives Used + +A related bug, if you had empty shell comments but inserted your own +directives, you'd get another error from mhbuild. This has been fixed +by quoting the hash ("^# $") like this "##" before submitting to +mhbuild (closes SF #762464). + +*** Inconsistent Usage in Scan Formatting Variables + +The variables: + + mh-note-cur + mh-note-deleted + mh-note-dist + mh-note-forw + mh-note-refiled + mh-note-repl + mh-note-seq + +used to contain strings. Although only the first character was read, +the entire string would be inserted which may have caused problems. +These variables have been converted to character constants so that +only a single character can be inserted into the scan line (closes SF +#770772). + +*** Bad Handling of Aliases That Conflict With Local User Names + +If a user name existed both locally and in the aliases file, the local +user would be flashed, but the alias would be used when sending. This +has been fixed so that the user name that is flashed is the same as +the name that is sent (closes SF #772595). + +*** Args out of range + +In rare and non-reproducible circumstances, compilation sometimes +threw an "Args out of range" error. Nonetheless, this has been fixed +(closes SF #806577). + +*** mh-forward hard-codes '-mime' Switch on nmh + +Added new option `mh-compose-forward-as-mime-flag' that controls whether +messages are forwarded as MIME attachments (closes SF #827203). + +*** Not Re-prompted to Sign After Pass Phrase Typo + +If there were errors when sending a signed message (like getting the +pass phrase wrong), the MML markup remained in the draft buffer. The +draft buffer is now restored if there is an error (closes SF #839303). + +*** Font-lock Gets Confused in MH-Letter Buffer + +If a user manually moved the cursor to the end of the header field +separator line (by mouse click or keyboard navigation) and hit Enter +to start typing their message, any line in the body with a colon would +be fontified with a gray background. This has been fixed (closes SF +#855479). + +*** mh-refile-msg Fails to Suggest Folder for Empty Message + +If you received a message with an empty body from someone who is +listed in your aliases file, "o (mh-refile-msg)" failed to suggest the +correct folder. This has been fixed (closes SF #917096). + +*** Error Visiting Folder With no Unseen Messages + +If you visited a folder without unseen messages and the option "flist: +-noshowzero" is present in your ~/.mh_profile, you'd get an error. This +has been fixed (closes SF #933954). + + + +* Changes in MH-E 7.4.4 + +Version 7.4.4 addresses programmatic issues from the FSF and prepares +MH-E for inclusion into an impending GNU Emacs release (22.1). There +are no user-visible changes (unless you are using XEmacs on DOS or +don't have the cl package installed). Filenames are now unique in +their first 8 characters (DOS 8.3 requirement). The runtime dependency +on the cl package has been removed. Desktop saving and restoration +code moved here from desktop.el. + +* Changes in MH-E 7.4.3 + +Version 7.4.3 fixes the problem where `mh-identity-list' was not getting +set from .emacs. + +* Changes in MH-E 7.4.2 + +Version 7.4.2 fixes the accidental dependence on nmh (closes SF +#791021). + +* Changes in MH-E 7.4.1 + +Version 7.4.1 fixes the Makefile so it no longer tries to compile +mh-unit.el. + +* Changes in MH-E 7.4 + +Version 7.4 contains many new useful features including arbitrary MH +range handling, new draft features such as draft form editing, as well +as sequence propagation and manipulation. We've also fixed bugs and +added a handful of new variables. + +** New Features in MH-E 7.4 + +*** Add Arbitrary Ranges to MH-E UI + +MH-E now handles any legal MH range (such as last:5 or 4 8 10-12) +wherever you're prompted for a message number or sequence (closes SF +#728638). + +*** Remove Prompting in mh-send + +Brian Reid's original mhe didn't do prompting anywhere but used forms +instead. While we won't go that far, we eliminated prompting where a +form is already involved, such as in composing a message. + +The new customization variable `mh-compose-prompt-flag' can be set to +t to get the original behavior (closes SF #745622). + +*** Use TAB to Switch Fields in Header + +When composing a message, TAB and SHIFT-TAB can be used to move +quickly between header fields. The new customization variable, +`mh-compose-skipped-header-fields', contains a list of header fields +that are skipped and truncated if they are too long (closes SF +#745627). + +*** Alias Completion in Composition Buffer + +Aliases can be completed in the draft with "M-TAB +(mh-letter-complete)". Or, if the customization variable +`mh-compose-space-does-completion-flag' is set to t, then a "SPC +(mh-letter-complete-or-space)" with do the same thing. If +`mh-alias-flash-on-comma' is non-nil, ", (mh-letter-confirm-address)" +will show the alias expansion in the minibuffer (closes SF #745634). + +*** Auto Fields Should be Inserted During Send + +Fields that were inserted by the multiple personality code when the +draft was sent now insert the header fields when the draft is composed +to give you a chance to edit them (closes SF #747890). + +*** mh-index-tick-messages + +The command "F ' (mh-index-ticked-messages)" creates a buffer with all +messages ticked with "' (mh-toggle-tick)" in the folders listed in the +new customization variable `mh-index-ticked-messages-folders'. Chances +are that if you set `mh-index-new-messages-folders', you'll want to +set `mh-index-ticked-messages-folders' accordingly. + +In addition, a general function, "F q (mh-index-sequenced-messages)" +has been provided that displays messages in the `mh-unseen-seq' in the +folders listed `mh-index-new-messages-folders', unless a prefix +argument is given, in which case you can provide both a list of +folders and a sequence (closes SF #718833). + +*** Narrow to Region + +If there is a region, "/ r (mh-narrow-to-range)" will only consider +those messages in the region. In addition, there is now a stack of +folder limits which can be popped with "/ w (mh-widen)". With a prefix +arg, all the restrictions are popped off of the stack (closes SF +#732823). + +*** Narrow to Ticked Sequence + +The buffer can now be narrowed to ticked messages with "S ' +(mh-narrow-to-tick)" (closes SF #732825). + +*** Display Multiple Buttons for multipart/alternative + +A new customizable variable, +`mh-display-buttons-for-alternatives-flag', was added to display +buttons for the alternatives. The default value is nil to retain the +current behavior (closes SF #741288). + +*** Identity Menu Changes + +A menu item has been added that inserts custom fields if the To or Cc +header fields match `mh-auto-fields-list'. + +** New Variables in MH-E 7.4 + +*** mh-alias-local-users-prefix + +This string is prepended to the real names of users from the passwd +file. If nil, use the username string unmodified instead of the real +name from the gecos field of the passwd file. + +*** mh-alias-passwd-gecos-comma-separator-flag + +Non-nil means the gecos field in the passwd file uses comma as a +separator. Used to construct aliases for users in the passwd file." + +*** mh-interpret-number-as-range-flag + +Non-nil means interpret a number as a range. If the variable is +non-nil, and you use an integer, N, when asked for a range to scan, +then MH-E uses the range "last:N". + +*** mh-kill-folder-suppress-prompt-hook + +This new hook is invoked at the beginning of the `F k +(mh-kill-folder)' command. It is a list of functions to be called, +with no arguments, which should return a value of non-nil if you +should not be asked if you're sure that you want to remove the folder. +This is useful for folders that are easily regenerated. + +The default value of `mh-index-p' suppresses the prompt on folders +generated by an index search. + +WARNING: Use this hook with care. If there is a bug in your hook which +returns t on +inbox and you hit `F k' by accident in the +inbox +buffer, you will not be happy. + +*** mh-refile-preserves-sequences-flag + +Non-nil means that sequences are preserved when messages are refiled. +If this variable is non-nil and a message belonging to a sequence +other than cur or Previous-Sequence (see mh-profile 5) is refiled then +it is put in the same sequence in the destination folder. Additional +sequences that should not to be preserved can be specified by setting +`mh-unpropagated-sequences' appropriately. + +*** mh-visible-header-fields + +Customize this instead of `mh-visible-headers', which is now a defvar. +This was done to mimic the relationship between +`mh-invisible-header-fields' and `mh-invisible-fields'. + +** Variables Deleted in MH-E 7.4 + +*** mh-visible-headers + +See the paragraph for `mh-visible-header-fields' above. + +** Bug Fixes in MH-E 7.4 + +*** Aliases Constantly Reloaded + +The system aliases are not loaded as often as they were, so the +completion speed has been dramatically improved if your passwd file is +large (closes SF #693859). + +*** Folders in MH-Index View Not Saved + +When you perform a search to produce an MH-Index buffer, the folders +that contain the messages are shown. If the MH-Index buffer was +deleted, or Emacs was restarted and the corresponding folder +rescanned, the folder information would be lost. This has been fixed +by saving the information in a file called ".mhe_index" (closes SF +#701762). + +*** Ticking Messages in +mhe-index/new + +If a new message in a buffer created by "F n" was ticked (with "'"), +the message would not be added to the tick sequence in the source +folder. This has been fixed so that any sequence changes in any index +folder (from within MH-E of course) are now reflected back to the +corresponding source folder (closes SF #709664). + +*** Custom Vars Set by a Function + +The default setting of customization variable `mh-summary-height' is +now `nil' which means MH-E will change the size dynamically according +to the size of the frame (closes SF #723267). + +*** Folder Completion Slow + +The first folder completion was very slow. This has been fixed (closes +SF #730426). + +*** Tick Sequence Persistent When Refiled + +Sequences are now preserved when messages are refiled (closes SF +#737128). + +*** Auto-inserted Header Fields Inconsistent + +For consistency, all automatically inserted header fields (such as +X-Mailer and X-Face) are added when the draft is first presented to +you. This also gives you a chance to edit or delete them if necessary +(closes SF #745624). Note that we would be distressed if you deleted +the X-Mailer field. + +*** Toolbar Spec Error + +The following message appeared when displaying a message in XEmacs: + + Signaling: (error "Toolbar spec must be list or nil" ) + +This has been fixed (closes SF #745655). + +*** mh-index-search Doesn't Find Short Acronyms + +Swish typically ignores words with fewer than four letters, but will +still look for acronyms. Unfortunately, MH-E was downcasing the input +words which defeated this feature. This has been fixed (closes SF +#755718). + + + +* Changes in MH-E 7.3 + +This release includes the new features of an index view of unseen +messages in all folders, spam software support, relative folder +specification @ support, marking messages, recipient handling by +mh-default-folder-list, Face and X-Image-URL header field support, and +Fcc completion. Function arguments have been unified. Bugs have been +fixed. + +** New Features in MH-E 7.3 + +*** Unified Function Arguments + +Any function with MSG-OR-SEQ in its docstring uses the displayed +message by default for this argument. However, if a prefix argument is +provided, then the user is prompted for a message sequence. If the +variable `transient-mark-mode' is non-nil and the mark is active, then +the function operates on the messages in the selected region. In a +program, MSG-OR-SEQ can be a message number, a list of message +numbers, a region in a cons cell, or a sequence. + +*** MH-Index View of Unseen Messages + +Use "F n (mh-index-new-messages)" or Folder -> View New Messages menu +item to display messages in the `mh-unseen-seq' sequence in folders +specified by `mh-index-new-messages-folders'. With a prefix argument, +enter a space-separated list of folders, or nothing to search all +folders. + +Like other MH-Index folders, use "v (mh-index-visit-folder)" if you +wish to visit the original folder with the unseen message. This is +usually not necessary since the original message is annotated if you +reply, deleted if you delete the message, or refiled if you refile the +message (closes SF #701756). + +*** Spam Software Support + +MH-E now supports several spam filters including Bogofilter, +SpamProbe, and SpamAssassin. Spam that is mistakenly considered to be +good mail can be reclassified as spam with "J b (mh-junk-blacklist)". +Conversely, good mail that is accidently considered to be spam can be +reclassified with "J w (mh-junk-whitelist)" (closes SF #669518). + +If a message is blacklisted, and `mh-junk-mail-folder' is a string, +then the message is refiled to that folder. If this variable is nil, +the message is deleted. If a message is whitelisted, then the message +is refiled to `mh-inbox'. + +To change the spam program being used, customize `mh-junk-program'. +This should only be necessary if you have multiple filters on your +system and MH-E picked the wrong one. These customization variables +are found in the new customization group `mh-junk'. + +The documentation for the following functions describes what setup is +needed for the different spam fighting programs: + + - `mh-bogofilter-blacklist' + - `mh-spamprobe-blacklist' + - `mh-spamassassin-blacklist' + +*** Relative Folder Specification @ Supported + +You can now use the relative folder marker @ in folder names (closes +SF #666774). + +*** Marking Messages + +Messages can now be highlighted with "' (mh-toggle-tick)", Sequence -> +Toggle Tick Mark menu item or the "Toggle tick mark" button. These +messages are added to the "tick" sequence, although this sequence can +be changed in `mh-tick-seq'. The highlighting effect can be modified +by customizing `mh-folder-tick-face' (closes SF #623367). + +There is also a new keybinding "/ ' (mh-narrow-to-tick)" and menu item +Sequence -> Narrow to Tick Sequence to narrow the view to the +highlighted messages. + +*** mh-default-folder-list Now Takes Recipients + +If you wish to file a message based upon the recipient of a message +(such as a mailing list), you can now indicate that when filling out +the address in the `mh-default-folder-list' customization variable. + +*** Face Header Field Supported + +In addition to the X-Face header field, the Face header field, which +can display color images, is now supported. As a bonus, the external +xface-e21 library is no longer required. + +*** X-Image-URL Support + +Images specified in X-Image-URL header fields are now supported. +See the customization variable `mh-fetch-x-image-url' to enable this +support. + +*** Fcc Completion + +Folders in Fcc fields in message drafts can now be completed with +M-TAB. + +** New Variables in MH-E 7.3 + +Variables that have been added to MH-E that have not been discussed +elsewhere are listed here. + +*** mh-auto-fields-list + +Alist of addresses for which header lines are automatically inserted. +When a regular expression matches in the To or cc fields of a message, +the corresponding header field is automatically inserted in the +message header. It also allows the automatic setting of an identity +(using `mh-insert-identity') to set an alternate identity when sending +messages to a certain person or mailing list. + +Since this is a more general use of `mh-insert-mail-followup-to-flag' +and `mh-insert-mail-followup-to-list', these variables have been removed. + +*** mh-show-xface-face + +Face for displaying the X-Face image. + +*** mh-xemacs-toolbar-position + +This customization variable allows the user to place the toolbar on +the four edges of the frame. + +*** mh-xemacs-use-toolbar-flag + +This customization variable is used to enable or disable the toolbar +under XEmacs. + +** Variables Deleted in MH-E 7.3 + +Variables that have been removed from MH-E that have not been +discussed elsewhere are listed here. + +*** mh-decode-content-transfer-encoded-message-flag + +No longer needed since the external program mimencode is no longer +used. + +*** mh-index-show-hook + +This hook was never used, so it was removed. + +*** mh-tool-bar-reply-3-buttons-flag + +Obsolete. This functionality is present `mh-tool-bar-folder-buttons'. + +** Bug Fixes in MH-E 7.3 + +*** Can't Refile Message + +Messages with invalid addresses were causing errors in ali which +prevented the refiling of messages. The ali error is now shown in the +"*MH-E Log*" buffer and refiling suggests the last folder used (closes +SF #680388). + +*** Empty Body Triggers Duped Header + +If the body was empty the header would be treated like the body and +was therefore displayed twice. This has been fixed (closes SF +#681162). + +*** mml or mhl Directives Not Always Processed + +The mml and mhl directives used to create body parts were not +processed if one re-edited a draft, or if they added the directives +manually. The directives are now always processed upon sending the +letter. You may still, of course, use "C-c C-m m (mh-mml-to-mime)" or +"C-c C-e (mh-edit-mhn)" to manually create the MIME body parts from +the directives and then send the draft. + +*** mh-alias-grab-from-field Fails + +MH-E was adding aliases with angle brackets around the address when +there wasn't a phrase (usually, the user's name), to go with it. This +caused ali to fail which caused problems in MH-E. This is probably a +bug in ali, but MH-E no longer inserts angle brackets around the +address unless there is a phrase, which avoids the problem (closes SF +#690216). + +*** XEmacs Fixes + +MH-E is now fully supported under XEmacs and compiles without any +warnings. + +In particular, the following now work under XEmacs: + +- X-Face, Face, and X-Image-URL header fields +- MH-E logo in mode line +- Emphasis (bold, italics, etc.) +- Smilies +- Toolbar + +*** Indexed Folders Should Respect mh-show-threads-flag + +Indexed folders are now threaded if `mh-show-threads-flag' is non-nil +(closes SF #709667). + +*** Threading Index View Loses Folder Info + +This has been fixed (closes SF #709672). + +*** No Undo Information When Re-editing Drafts + +Undo is turned on in the draft buffer when using "e (mh-edit-again)" +(closes SF #712777). + +*** Forwarded base64-encoded Messages Are Incorrectly Displayed + +This has been fixed (closes SF #681518). + +*** Append to *MH-E Log* Buffer + +The last 100 lines of log messages are kept in the *MH-E Log* buffer. +Previously, the buffer was erased every time it was written (closes SF +#685476). In addition, many of the MH-E commands now send their output +into this buffer instead of a plethora of other special-purpose +buffers. + +*** mh-inc-folder Complains if No Mail and No Current Message + +The function `mh-inc-folder' no longer calls `mh-show' if point is not +on a valid scan line. This keeps `mh-inc-folder' from complaining +(closes SF #678115). + +*** Folder Normalization Strips Leading Slash + +Leading "/" characters in folder names entered by the user were being +lost. This has been fixed (closes SF #676890). + +*** Print Header Doesn't Show Message + +When printing a sequence, the header simply indicated that a sequence, +but not which one, was being printed and did not show the message +number. This has been fixed. If more than one message is printed, a +page of the scan lines is printed and its header indicates the +sequence or message range. The pages with the actual messages all set +the header to the folder and message displayed on that page. + +*** Aliases Constantly Reloaded + +Empty lists are now handled properly (closes SF #693859). + +*** Remove RCS Keywords + +Removed RCS keywords per Emacs conventions (closes SF #680731). + +*** Replace Mimencode + +MH-E was enhanced to decode message based on charset and +Content-Transfer-Encoding. This eliminates the need for the external +program mimencode (closes SF #674857). + + + * Changes in MH-E 7.2 This release includes the new features of filing hints, hierarchical @@ -1469,3 +2479,5 @@ Local variables: mode: outline paragraph-separate: "[ ]*$" end: + +arch-tag: f6696cad-eb1b-4c5f-8057-4e3954a98d18 diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF index 248fcf9441f..1e90298c9f0 100644 --- a/etc/MORE.STUFF +++ b/etc/MORE.STUFF @@ -16,7 +16,7 @@ Please submit a bug report if you find that any of the addresses listed here fail. * The `Emacs Lisp List' at - has pointers + has pointers to sources of a large number of packages. * gnu.emacs.sources @@ -25,46 +25,41 @@ Packages posted to the gnu.emacs.sources newsgroup (see etc/MAILINGLISTS) might be archived specifically (try a web search engine) or retrievable from general Usenet archive services. +* emacswiki.org + +The Emacs Wiki has an area for storing elisp files +. + * Maintenance versions of some packages distributed with Emacs You might find bug-fixes or enhancements in these places. - * Ada: - - * Autorevert, CWarn and Follow: - + * Ada-mode: * Battery and Info Look: * BibTeX: - * BS: + * BS: - * Calculator: + * Calculator: * CC mode: - * CPerl: + * CPerl: - * Ediff and Viper: + * Ediff and Viper: * Eldoc and Rlogin: - + - * EShell: + * EShell: * Etags: - * EUDC: - * Expand: - * Find Func: - - - * Flyspell: - * Fortune: * Gnus: @@ -76,23 +71,22 @@ You might find bug-fixes or enhancements in these places. * Ispell: - * Iswitchb: - * PC Selection: * PS mode: - * PS-print: + * PS-print: - * QuickURL: + * QuickURL: - * RefTeX: + * RefTeX: - * Speedbar, Checkdoc etc: + * Speedbar, Checkdoc etc: * SQL: - * Sregex: + * Tramp: Remote file access via rsh/ssh + * Webjump: @@ -118,7 +112,7 @@ the future. You might like to check whether they are packaged for your system. Several are for Debian GNU/Linux in particular. - * AUCTeX: fancy (La)TeX support: + * AUCTeX: fancy (La)TeX support: There's an AUCTeX mail list/newsgroup: . @@ -128,20 +122,25 @@ Several are for Debian GNU/Linux in particular. emacs-mule, say by adding `("\\.bbdb\\'" . emacs-mule)' to `file-coding-system-alist' for non-ASCII characters.] + * Boxquote: + + * CEDET: Collection of Emacs Development Environment Tools, including + EIEIO, Semantic, Speedbar, EDE, and COGRE: + + * CJK-emacs: Converting MULE-encoded text to TeX: and mirrors of the `CTAN' TeX archives. * Dismal: spreadsheet: - + - * EDB: database: - - Not maintained? + * ECB: Emacs Code Browser: - * EIEIO (object system), ETalk (interface to Internet talk): - + * EDB: database: + + * Ee: categorizing information manager: + * EFS: enhanced version of ange-ftp: @@ -151,51 +150,92 @@ Several are for Debian GNU/Linux in particular. From GNU distribution mirrors. (Much of this functionality is now in Emacs.) + * EMacro: + EMacro is a portable configuration file that configures itself. + + * Emacs speaks statistics (ESS): statistical programming within Emacs + + * Emacspeak -- A Speech Output Subsystem For Emacs: + * Emacs-w3m : + A simple Emacs interface to w3m, which is a text-mode + WWW browser + + * Emacs Wiki Mode: + A wiki-like publishing tool and personal information manager + + * ERC: IRC client: + + * Gnuserv: - - Enhanced emacsclient/emacsserver. See also - for - other Friedman Emacs hacks. + + Enhanced emacsclient/emacsserver. Also available from this Web + page: eiffel-mode.el. - The latest versions of gnuserv are maintained by Martin Schwenke, - and are available from . Also - available from this Web page: eiffel-mode.el. + * Go in a buffer: Go Text Protocol client: + + A modified version is also bundled with GNU Go: + * hm--html-menus: HTML-specific editing. Can work with PSGML. - * Hyperbole: `Hyperbole is an open, efficient, programmable - information management and hypertext system.' - From GNU distribution mirrors. - - * ILISP: - Provides an interactive environment for manipulating an inferior - process running some form of Lisp. + * Hyperbole: + + Hyperbole is an open, efficient, programmable information + management and hypertext system. - * JDE: - Provides a Java-specific `Integrated Development Environment'. + * JDEE: + Provides a Java development environment for Emacs. * Mule-UCS: Universal enCoding System: Extended coding systems for Mule, specifically for reading and - writing UTF-8 encoded Unicode. This does more than the built-in - utf-8 coding system. + writing UTF-8 encoded Unicode. This probably doesn't have much + advantage over the built-in `mule-utf-8' coding system with + `utf-translate-cjk' turned on. * Mailcrypt: - + PGP and GPG support. PGP isn't free software, but GPG, the GNU Privacy Guard, is a free replacement . - * Pointers to MIME packages: - + * Mew: + A MIME mail reader for Emacs/XEmacs. + + * MMM Mode: + MMM Mode is an emacs add-on package providing a minor mode that + allows Multiple Major Modes to coexist in one buffer. + + * nXML Mode: New mode for XML: + + nXML mode is an addon for GNU Emacs, which makes GNU Emacs into a + powerful XML editor. + + * Planner Mode: + + + * Preview LaTeX: embed preview LaTeX images in source buffer. + * PSGML: DTD-aware serious SGML/XML editing. + * Quack: + Quack enhances Emacs support for Scheme + + * Remember: + + + * Session: + Session Management for Emacs. + + * SLIME: The Superior Lisp Interaction Mode for Emacs: + + * Tamago: Chinese/Japanese/Korean input method Emacs Lisp package to provide input methods for CJK characters. @@ -204,8 +244,7 @@ Several are for Debian GNU/Linux in particular. Wnn6, SJ3 Ver.2 - * Tramp: Remote file access via rsh/ssh - + * Tiny Tools: * VM (View Mail): Alternative mail reader. There is a VM newsgroup: @@ -215,6 +254,14 @@ Several are for Debian GNU/Linux in particular. and a W3 development mail list/newsgroup . + * Wanderlust: + Yet Another Message Interface on Emacsen. Wanderlust is a mail/news + reader supporting IMAP4rev1 for emacsen. + + * WhizzyTex: + WhizzyTeX provides a minor mode for Emacs or XEmacs, a (bash) + shell-script daemon and some LaTeX macros. + * X-Symbol: Quasi-WYSIWYG editing of TeX & al. (It will be improved to take better advantage of Emacs 21 features.) @@ -224,3 +271,5 @@ mode: text mode: view eval: (goto-address) End: + +arch-tag: c1d4e7c8-db85-44e6-909e-659e2b20fefa diff --git a/etc/MOTIVATION b/etc/MOTIVATION index 37ed36f47b0..267a2333f76 100644 --- a/etc/MOTIVATION +++ b/etc/MOTIVATION @@ -96,7 +96,7 @@ about rewards and performance. First, rewards encourage people to focus narrowly on a task, to do it as quickly as possible and to take few risks. "If they feel that -'this is something I hve to get through to get the prize,' the're +'this is something I have to get through to get the prize,' they're going to be less creative," Amabile said. Second, people come to see themselves as being controlled by the diff --git a/etc/Makefile b/etc/Makefile index da96f9618e8..4275b301aaa 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -21,12 +21,13 @@ unlock: relock: chmod u-w $(SOURCES) -# ${etcdir}/e/eterm is used by ../lisp/term.el. +# ${etcdir}/e/eterm-color is used by ../lisp/term.el. # TERMINFO systems use terminfo files compiled by the Terminfo Compiler (tic). # These files are binary, and depend on the version of tic, but they seem # to be system-independent and backwardly compatible. # So there should be no need to recompile the distributed binary version. TIC=tic -e/eterm: e/eterm.ti - TERMINFO=`pwd`; export TERMINFO; $(TIC) e/eterm.ti +e/eterm-color: e/eterm-color.ti + TERMINFO=`pwd`; export TERMINFO; $(TIC) e/eterm-color.ti +# arch-tag: 4261f003-cf77-4478-a10a-5284e9d8f797 diff --git a/etc/NEWS b/etc/NEWS index 891412d675b..8bf912b346a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1,9 +1,12 @@ -GNU Emacs NEWS -- history of user-visible changes. 2001-03-15 -Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +GNU Emacs NEWS -- history of user-visible changes. 2003-05-21 +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. See the end for copying conditions. Please send Emacs bug reports to bug-gnu-emacs@gnu.org. For older news, see the file ONEWS +You can narrow news to the specific version by calling +`view-emacs-news' with a prefix argument or by typing C-u C-h C-n. Temporary note: +++ indicates that the appropriate manual has already been updated. @@ -12,25 +15,28 @@ When you add a new item, please add it without either +++ or --- so we will look at it and add it to the manual. -* Installation Changes in Emacs 21.4 +* Installation Changes in Emacs 22.1 -** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' -when you run configure. This requires Gtk+ 2.0 or newer. +--- +** Emacs now supports new configure options `--program-prefix', +`--program-suffix' and `--program-transform-name' that affect the names of +installed programs. --- ** Emacs can now be built without sound support. -** The `emacsserver' program has been removed, replaced with elisp code. +--- +** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' +when you run configure. This requires Gtk+ 2.0 or newer. This port +provides a way to display multilingual text in menus (with some caveats). --- -** Emacs now supports new configure options `--program-prefix', -`--program-suffix' and `--program-transform-name' that affect the names of -installed programs. +** The `emacsserver' program has been removed, replaced with Lisp code. --- ** By default, Emacs now uses a setgid helper program to update game scores. The directory ${localstatedir}/games/emacs is the normal -place for game scores to be stored. This may be controlled by the +place for game scores to be stored. You can control this with the configure option `--with-game-dir'. The specific user that Emacs uses to own the game scores is controlled by `--with-game-user'. If access to a game user is not available, then scores will be stored separately @@ -44,7 +50,7 @@ Emacs with Leim. +++ ** The Emacs Lisp Reference Manual is now part of the distribution. -The ELisp reference manual in Info format is built as part of the +The Emacs Lisp Reference Manual in Info format is built as part of the Emacs build procedure and installed together with the Emacs User Manual. A menu item was added to the menu bar that makes it easy accessible (Help->More Manuals->Emacs Lisp Reference). @@ -58,16 +64,27 @@ together with the Emacs User Manual, into the Info directory. A menu item was added to the menu bar that makes it easy accessible (Help->More Manuals->Introduction to Emacs Lisp). -** Support for Cygwin was added. +--- +** New translations of the Emacs Tutorial are available in the +following languages: Brasilian Portuguese, Bulgarian, Chinese (both +with simplified and traditional characters), French, and Italian. +Type `C-u C-h t' to choose one of them in case your language setup +doesn't automatically select the right one. --- -** Support for AIX 5.1 was added. +** A French translation of the `Emacs Survival Guide' is available. --- -** Support for FreeBSD/Alpha has been added. +** Emacs now includes support for loading image libraries on demand. +(Currently this feature is only used on MS Windows.) You can configure +the supported image types and their associated dynamic libraries by +setting the variable `image-library-alist'. + +--- +** Support for Cygwin was added. --- -** Support for BSD/OS 5.0 was added. +** Support for FreeBSD/Alpha has been added. --- ** Support for GNU/Linux systems on S390 machines was added. @@ -80,383 +97,326 @@ See the files mac/README and mac/INSTALL for build instructions. ** Support for GNU/Linux systems on X86-64 machines was added. --- -** A French translation of the `Emacs Survival Guide' is available. +** Mac OS 9 port now uses the Carbon API by default. You can also +create non-Carbon build by specifying `NonCarbon' as a target. See +the files mac/README and mac/INSTALL for build instructions. --- -** A French translation of the Emacs Tutorial is available. - - -* Changes in Emacs 21.4 - -** New language environments "malayalam" and "tamil". - -** New input methods "malayalam-itrans", "tamil-itrans", -"malayalam-inscript", and "tamil-inscript". +** Building with -DENABLE_CHECKING does not automatically build with union +types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. -** Init file changes - -You can now put the init files .emacs and .emacs_SHELL under -~/.emacs.d or directly under ~. Emacs will find them in either place. +--- +** When pure storage overflows while dumping, Emacs now prints how +much pure storage it will approximately need. -** MH-E changes. +** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the +contents of buffers from a core dump and save them to files easily, should +emacs crash. -Upgraded to MH-E version 7.2. There have been major changes since -version 5.0.2; see MH-E-NEWS for details. +--- +** The Emacs terminal emulation in term.el uses a different terminfo name. +The Emacs terminal emulation in term.el now uses "eterm-color" as its +terminfo name, since term.el now supports color. -+++ -** The `emacsclient' command understands the options `--eval' and -`--display' which tell Emacs respectively to evaluate the given elisp -expression and to use the given display when visiting files. +--- +** Emacs Lisp source files are compressed by default if `gzip' is available. -** User option `server-mode' can be used to start a server process. + +* Startup Changes in Emacs 22.1 +++ -** The mode line position information now comes before the major mode. -When the file is maintained under version control, that information -appears between the position information and the major mode. - -** C-x s (save-some-buffers) now offers an option `d' to diff a buffer -against its file, so you can see what changes you would be saving. +** New command line option -Q or --quick. +This is like using -q --no-site-file, but in addition it also disables +the fancy startup screen. +++ -** You can now customize the use of window fringes. To control this -for all frames, use M-x fringe-mode or the Show/Hide submenu of the -top-level Options menu, or customize the `fringe-mode' variable. To -control this for a specific frame, use the command M-x -set-fringe-style. +** New command line option -D or --basic-display. +Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and +the blinking cursor. +++ -** There is a new user option `mail-default-directory' that allows you -to specify the value of `default-directory' for mail buffers. This -directory is used for auto-save files of mail buffers. It defaults to -"~/". +** New command line option -nbc or --no-blinking-cursor disables +the blinking cursor on graphical terminals. +++ -** When you are root, and you visit a file whose modes specify -read-only, the Emacs buffer is now read-only too. Type C-x C-q if you -want to make the buffer writable. (As root, you will in fact be able -to alter the file.) +** The option --script FILE runs Emacs in batch mode and loads FILE. +It is useful for writing Emacs Lisp shell script files, because they +can start with this line: -** The new command `revert-buffer-with-coding-system' (C-x RET r) -revisits the current file using a coding system that you specify. + #!/usr/bin/emacs --script ---- -** `ps-print' can now print Unicode characters. ++++ +** The option --directory DIR now modifies `load-path' immediately. +Directories are added to the front of `load-path' in the order they +appear on the command line. For example, with this command line: -Printing text with characters from the mule-unicode-* sets works with -ps-print, provided that you have installed the appropriate BDF fonts. -See the file INSTALL for URLs where you can find these fonts. + emacs -batch -L .. -L /tmp --eval "(require 'foo)" ---- -** The new options `buffers-menu-show-directories' and -`buffers-menu-show-status' let you control how buffers are displayed -in the menu dropped down when you click "Buffers" from the menu bar. +Emacs looks for library `foo' in the parent directory, then in /tmp, then +in the other directories in `load-path'. (-L is short for --directory.) -`buffers-menu-show-directories' controls whether the menu displays -leading directories as part of the file name visited by the buffer. -If its value is `unless-uniquify', the default, directories will be -shown unless uniquify-buffer-name-style' is non-nil. The value of nil -and t turn the display of directories off and on, respectively. ++++ +** The command line option --no-windows has been changed to +--no-window-system. The old one still works, but is deprecated. -`buffers-menu-show-status' controls whether the Buffers menu includes -the modified and read-only status of the buffers. By default it is -t, and the status is shown. ++++ +** The -f option, used from the command line to call a function, +now reads arguments for the function interactively if it is +an interactively callable function. -Setting these variables directly does not take effect until next time -the Buffers menu is regenerated. ++++ +** When you specify a frame size with --geometry, the size applies to +all frames you create. A position specified with --geometry only +affects the initial frame. +++ -** The commands M-x customize-face and M-x customize-face-other-window -now look at the character after point. If a face or faces are -specified for that character, the commands by default customize those -faces. +** Emacs can now be invoked in full-screen mode on a windowed display. +When Emacs is invoked on a window system, the new command-line options +`--fullwidth', `--fullheight', and `--fullscreen' produce a frame +whose width, height, or both width and height take up the entire +screen size. (For now, this does not work with some window managers.) -** New language environments: French, Ukrainian, Windows-1251, Tajik, -Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, -Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian. ++++ +** Emacs now displays a splash screen by default even if command-line +arguments were given. The new command-line option --no-splash +disables the splash screen; see also the variable +`inhibit-startup-message' (which is also aliased as +`inhibit-splash-screen'). -** Indian support has been updated. -The in-is13194 coding system is now Unicode-based. CDAC fonts are -assumed. There is a framework for supporting various -Indian scripts, but currently still only Devanagari is supported. ++++ +** The default is now to use a bitmap as the icon, so the command-line options +--icon-type, -i has been replaced with options --no-bitmap-icon, -nbi to turn +the bitmap icon off. ---- -** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, -ukrainian-computer, belarusian, bulgarian-bds, russian-computer, -vietnamese-telex, lithuanian-numeric, lithuanian-keyboard, -latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml, -bulgarian-phonetic, dutch, slovenian, croatian. ++++ +** New user option `inhibit-startup-buffer-menu'. +When loading many files, for instance with `emacs *', Emacs normally +displays a buffer menu. This option turns the buffer menu off. ---- -** A new coding system `euc-tw' has been added for traditional Chinese -in CNS encoding; it accepts both Big 5 and CNS as input; on saving, -Big 5 is then converted to CNS. ++++ +** Init file changes +If the init file ~/.emacs does not exist, Emacs will try +~/.emacs.d/init.el or ~/.emacs.d/init.elc. You can also put the shell +init file .emacs_SHELL under ~/.emacs.d. ---- -** Many new coding systems are available by loading the `code-pages' -library. These include complete versions of most of those in -codepage.el, based on Unicode mappings. ++++ +** Emacs now reads the standard abbrevs file ~/.abbrev_defs +automatically at startup, if it exists. When Emacs offers to save +modified buffers, it saves the abbrevs too if they have changed. It +can do this either silently or asking for confirmation first, +according to the value of `save-abbrevs'. + +* Incompatible Editing Changes in Emacs 22.1 -** The utf-8 coding system has been enhanced. Untranslatable utf-8 -sequences (mostly representing CJK characters) are composed into -single quasi-characters. User option `utf-translate-cjk' arranges to -translate many utf-8 CJK character sequences into real Emacs -characters in a similar way to the Mule-UCS system. The utf-8 coding -system will now encode characters from most of Emacs's one-dimensional -internal charsets, specifically the ISO-8859 ones. ++++ +** M-g is now a prefix key. +M-g g and M-g M-g run goto-line. +M-g n and M-g M-n run next-error (like C-x `). +M-g p and M-g M-p run previous-error. -** iso-10646-1 (`Unicode') fonts can be used to display any range of -characters encodable by the utf-8 coding system. Just specify the -fontset appropriately. ++++ +** C-u M-g M-g switches to the most recent previous buffer, +and goes to the specified line in that buffer. -** New command `ucs-insert' inserts a character specified by its -unicode. +When goto-line starts to execute, if there's a number in the buffer at +point then it acts as the default argument for the minibuffer. +++ -** Limited support for character `unification' has been added. -Emacs now knows how to translate between different representations of -the same characters in various Emacs charsets according to standard -Unicode mappings. This applies mainly to characters in the ISO 8859 -sets plus some other 8-bit sets, but can be extended. For instance, -translation works amongst the Emacs ...-iso8859-... charsets and the -mule-unicode-... ones. - -By default this translation will happen automatically on encoding. -Self-inserting characters are translated to make the input conformant -with the encoding of the buffer in which it's being used, where -possible. +** The old bindings C-M-delete and C-M-backspace have been deleted, +since there are situations where one or the other will shut down +the operating system or your X server. -You can force a more complete unification with the user option -unify-8859-on-decoding-mode. That maps all the Latin-N character sets -into Unicode characters (from the latin-iso8859-1 and -mule-unicode-0100-24ff charsets) on decoding. Note that this mode -will often effectively clobber data with an iso-2022 encoding. ++++ +** line-move-ignore-invisible now defaults to t. -** There is support for decoding Greek and Cyrillic characters into -either Unicode (the mule-unicode charsets) or the iso-8859 charsets, -when possible. The latter are more space-efficient. This is -controlled by user option utf-8-fragment-on-decoding. ++++ +** When the undo information of the current command gets really large +(beyond the value of `undo-outer-limit'), Emacs discards it and warns +you about it. -** The new command `set-file-name-coding-system' (C-x RET F) sets -coding system for encoding and decoding file names. A new menu item -(Options->Mule->Set Coding Systems->For File Name) invokes this -command. ++++ +** `apply-macro-to-region-lines' now operates on all lines that begin +in the region, rather than on all complete lines in the region. ---- -** The scrollbar under LessTif or Motif has a smoother drag-scrolling. -On the other hand, the size of the thumb does not represent the actual -amount of text shown any more (only a crude approximation of it). ++++ +** A prefix argument is no longer required to repeat a jump to a +previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u +C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC +to set the mark immediately after a jump. +++ -** Emacs can produce an underscore-like (horizontal bar) cursor. -The underscore cursor is set by putting `(cursor-type . hbar)' in -default-frame-alist. It supports variable heights, like the `bar' -cursor does. +** The info-search bindings on C-h C-f, C-h C-k and C-h C-i +have been moved to C-h F, C-h K and C-h S. -** Filesets are collections of files. You can define a fileset in -various ways, such as based on a directory tree or based on -program files that include other program files. ++++ +** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. -Once you have defined a fileset, you can perform various operations on -all the files in it, such as visiting them or searching and replacing -in them. +See below under "incremental search changes". --- -** PO translation files are decoded according to their MIME headers -when Emacs visits them. +** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. ---- -** The game `mpuz' is enhanced. +Since the default input is the current directory, this has the effect +of specifying the current directory. Normally that means to visit the +directory with Dired. -`mpuz' now allows the 2nd factor not to have two identical digits. By -default, all trivial operations involving whole lines are performed -automatically. The game uses faces for better visual feedback. +You can get the old behavior by typing C-x C-f M-n RET, which fetches +the actual file name into the minibuffer. +++ -** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is -now shown as a hollow box or a thin bar. However, you can control how -it blinks off by setting the variable `blink-cursor-alist'. - +** The completion commands TAB, SPC and ? in the minibuffer apply only +to the text before point. If there is text in the buffer after point, +it remains unchanged. +++ -** Emacs now supports compound-text Extended Segments in X selections. - -Some versions of X, notably XFree86, use Extended Segments to encode -in X selections characters that belong to character sets which are not -part of the list of approved standard encodings defined by the -compound text spec. An example of such non-standard encodings is -BIG5. The new coding system `compound-text-with-extensions' supports -these extensions, and is now used by default for encoding and decoding -X selections. If you don't want this support, set -`selection-coding-system' to `compound-text'. +** When Emacs prompts for file names, SPC no longer completes the file name. +This is so filenames with embedded spaces could be input without the +need to quote the space with a C-q. The underlying changes in the +keymaps that are active in the minibuffer are described below under +"New keymaps for typing file names". +++ -** The parameters of automatic hscrolling can now be customized. -The variable `hscroll-margin' determines how many columns away from -the window edge point is allowed to get before automatic hscrolling -will horizontally scroll the window. The default value is 5. +** M-o now is the prefix key for setting text properties; +M-o M-o requests refontification. -The variable `hscroll-step' determines how many columns automatic -hscrolling will scroll the window when point gets too close to the -window edge. If its value is zero, the default, Emacs scrolls the -window so as to center point. If its value is an integer, it says how -many columns to scroll. If the value is a floating-point number, it -gives the fraction of the window's width to scroll the window. ++++ +** You can now follow links by clicking Mouse-1 on the link. -The variable `automatic-hscrolling' was renamed to -`auto-hscroll-mode'. The old name is still available as an alias. +See below for more details. +++ -** The user option `tex-start-options-string' has been replaced -by two new user options: `tex-start-options', which should hold -command-line options to feed to TeX, and `tex-start-commands' which should hold -TeX commands to use at startup. +** In Dired's ! command (dired-do-shell-command), `*' and `?' now +control substitution of the file names only when they are surrounded +by whitespace. This means you can now use them as shell wildcards +too. If you want to use just plain `*' as a wildcard, type `*""'; the +doublequotes make no difference in the shell, but they prevent +special treatment in `dired-do-shell-command'. + +* Editing Changes in Emacs 22.1 +++ -** New display feature: focus follows mouse. If you set the variable -mouse-autoselect-window to non-nil value, moving the mouse to a different -Emacs window will select that window (minibuffer window can be selected -only when it is active). The default is nil, so that this feature is not -enabled. +** !MEM FULL! at the start of the mode line indicates that Emacs +cannot get any more memory for Lisp data. This often means it could +crash soon if you do things that use more memory. On most systems, +killing buffers will get out of this state. If killing buffers does +not make !MEM FULL! disappear, you should save your work and start +a new Emacs. +++ -** The new command `describe-char' (C-u C-x =) pops up a buffer with -description various information about a character, including its -encodings and syntax, its text properties, overlays, and widgets at -point. You can get more information about some of them, by clicking -on mouse-sensitive areas or moving there and pressing RET. +** The max size of buffers and integers has been doubled. +On 32bit machines, it is now 256M (i.e. 268435455). +++ -** The new command `multi-occur' is just like `occur', except it can -search multiple buffers. There is also a new command -`multi-occur-by-filename-regexp' which allows you to specify the -buffers to search by their filename. Internally, Occur mode has been -rewritten, and now uses font-lock, among other changes. +** You can now switch buffers in a cyclic order with C-x C-left +(previous-buffer) and C-x C-right (next-buffer). C-x left and +C-x right can be used as well. The functions keep a different buffer +cycle for each frame, using the frame-local buffer list. +++ -** Emacs normally highlights mouse sensitive text whenever the mouse -is over the text. By setting the new variable `mouse-highlight', you -can optionally enable mouse highlighting only after you move the -mouse, so that highlighting disappears when you press a key. You can -also disable mouse highlighting. +** `undo-only' does an undo which does not redo any previous undo. +++ -** font-lock: in modes like C and Lisp where the fontification assumes that -an open-paren in column 0 is always outside of any string or comment, -font-lock now highlights any such open-paren-in-column-zero in bold-red -if it is inside a string or a comment, to indicate that it can cause -trouble with fontification and/or indentation. +** M-SPC (just-one-space) when given a numeric argument N +converts whitespace around point to N spaces. + +--- +** New commands to operate on pairs of open and close characters: +`insert-pair', `delete-pair', `raise-sexp'. +++ -** There's a new face `minibuffer-prompt'. -Emacs adds this face to the list of text properties stored in the -variable `minibuffer-prompt-properties', which is used to display the -prompt string. +** New command `kill-whole-line' kills an entire line at once. +By default, it is bound to C-S-. +++ -** The new face `mode-line-inactive' is used to display the mode line -of non-selected windows. The `mode-line' face is now used to display -the mode line of the currently selected window. +** Yanking text now discards certain text properties that can +be inconvenient when you did not expect them. The variable +`yank-excluded-properties' specifies which ones. Insertion +of register contents and rectangles also discards these properties. -The new variable `mode-line-in-non-selected-windows' controls whether -the `mode-line-inactive' face is used. ++++ +** The default values of paragraph-start and indent-line-function have +been changed to reflect those used in Text mode rather than those used +in Indented-Text mode. ---- -** A menu item "Show/Hide" was added to the top-level menu "Options". -This menu allows you to turn various display features on and off (such -as the fringes, the tool bar, the speedbar, and the menu bar itself). -You can also move the vertical scroll bar to either side here or turn -it off completely. There is also a menu-item to toggle displaying of -current date and time, current line and column number in the -mode-line. ++++ +** M-x setenv now expands environment variable references. ---- -** Speedbar has moved from the "Tools" top level menu to "Show/Hide". +Substrings of the form `$foo' and `${foo}' in the specified new value +now refer to the value of environment variable foo. To include a `$' +in the value, use `$$'. +++ -** Emacs can now indicate in the mode-line the presence of new e-mails -in a directory or in a file. See the documentation of the user option -`display-time-mail-directory'. +** `special-display-buffer-names' and `special-display-regexps' now +understand two new boolean pseudo-frame-parameters `same-frame' and +`same-window'. +++ -** The new option `Info-scroll-prefer-subnodes' causes Info to behave -like the stand-alone Info reader (from the GNU Texinfo package) as far -as motion between nodes and their subnodes is concerned. If it is t -(the default), Emacs behaves as before when you type SPC in a menu: it -visits the subnode pointed to by the first menu entry. If this option -is nil, SPC scrolls to the end of the current node, and only then goes -to the first menu item, like the stand-alone reader does. +** The default for the paper size (variable ps-paper-type) is taken +from the locale. -This change was already in Emacs 21.1, but wasn't advertised in the -NEWS. +** The command `list-faces-display' now accepts a prefix arg. +When passed, the function prompts for a regular expression and lists +only faces matching this regexp. ---- -** LDAP support now defaults to ldapsearch from OpenLDAP version 2. +** Mark command changes: +++ -** You can now disable pc-selection-mode after enabling it. -M-x pc-selection-mode behaves like a proper minor mode, and with no -argument it toggles the mode. +*** A prefix argument is no longer required to repeat a jump to a +previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the +mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. -Turning off PC-Selection mode restores the global key bindings -that were replaced by turning on the mode. ++++ +*** Marking commands extend the region when invoked multiple times. + +If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h +(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region +extends each time, so you can mark the next two sexps with M-C-SPC +M-C-SPC, for example. This feature also works for +mark-end-of-sentence, if you bind that to a key. It also extends the +region when the mark is active in Transient Mark mode, regardless of +the last command. To start a new region with one of marking commands +in Transient Mark mode, you can deactivate the active region with C-g, +or set the new mark with C-SPC. +++ -** Emacs now displays a splash screen by default even if command-line -arguments were given. The new command-line option --no-splash -disables the splash screen; see also the variable -`inhibit-startup-message' (which is also aliased as -`inhibit-splash-screen'). +*** M-h (mark-paragraph) now accepts a prefix arg. -** Changes in support of colors on character terminals +With positive arg, M-h marks the current and the following paragraphs; +if the arg is negative, it marks the current and the preceding +paragraphs. +++ -*** The new command-line option --color=MODE lets you specify a standard -mode for a tty color support. It is meant to be used on character -terminals whose capabilities are not set correctly in the terminal -database, or with terminal emulators which support colors, but don't -set the TERM environment variable to a name of a color-capable -terminal. "emacs --color" uses the same color commands as GNU `ls' -when invoked with "ls --color", so if your terminal can support colors -in "ls --color", it will support "emacs --color" as well. See the -user manual for the possible values of the MODE parameter. +*** Some commands do something special in Transient Mark mode when the +mark is active--for instance, they limit their operation to the +region. Even if you don't normally use Transient Mark mode, you might +want to get this behavior from a particular command. There are two +ways you can enable Transient Mark mode and activate the mark, for one +command only. ---- -*** Emacs now supports several character terminals which provide more -than 8 colors. For example, for `xterm', 16-color, 88-color, and -256-color modes are supported. Emacs automatically notes at startup -the extended number of colors, and defines the appropriate entries for -all of these colors. +One method is to type C-SPC C-SPC; this enables Transient Mark mode +and sets the mark at point. The other method is to type C-u C-x C-x. +This enables Transient Mark mode temporarily but does not alter the +mark or the region. ---- -*** There's a new support for colors on `rxvt' terminal emulator. +After these commands, Transient Mark mode remains enabled until you +deactivate the mark. That typically happens when you type a command +that alters the buffer, but you can also deactivate the mark by typing +C-g. +++ -** Emacs can now be invoked in full-screen mode on a windowed display. - -When Emacs is invoked on a window system, the new command-line options -`--fullwidth', `--fullheight', and `--fullscreen' produce a frame -whose width, height, or both width and height take up the entire -screen size. (For now, this does not work with some window managers.) - ---- -** Info-index offers completion. - ---- -** Emacs now tries to set up buffer coding systems for HTML/XML files -automatically. +*** Movement commands `beginning-of-buffer', `end-of-buffer', +`beginning-of-defun', `end-of-defun' do not set the mark if the mark +is already active in Transient Mark mode. -+++ -** The new command `comint-insert-previous-argument' in comint-derived -modes (shell-mode etc) inserts arguments from previous command lines, -like bash's `ESC .' binding. It is bound by default to `C-c .', but -otherwise behaves quite similarly to the bash version. +** Help command changes: +++ -** Changes in C-h bindings: +*** Changes in C-h bindings: C-h e displays the *Messages* buffer. +C-h d runs apropos-documentation. + C-h followed by a control character is used for displaying files that do not change: @@ -467,886 +427,4179 @@ The info-search bindings on C-h C-f, C-h C-k and C-h C-i have been moved to C-h F, C-h K and C-h S. C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. - - C-h c and C-h k report the actual command (after possible remapping) run by the key sequence. - - C-h w and C-h f on a command which has been remapped now report the command it is remapped to, and the keys which can be used to run that command. For example, if C-k is bound to kill-line, and kill-line is remapped to new-kill-line, these commands now report: - - C-h c and C-h k C-k reports: C-k runs the command new-kill-line - - C-h w and C-h f kill-line reports: kill-line is remapped to new-kill-line which is on C-k, - - C-h w and C-h f new-kill-line reports: new-kill-line is on C-k -+++ -** C-w in incremental search now grabs either a character or a word, -making the decision in a heuristic way. This new job is done by the -command `isearch-yank-word-or-char'. To restore the old behavior, -bind C-w to `isearch-yank-word' in `isearch-mode-map'. +--- +*** Help commands `describe-function' and `describe-key' now show function +arguments in lowercase italics on displays that support it. To change the +default, customize face `help-argument-name' or redefine the function +`help-default-arg-highlight'. +++ -** Yanking text now discards certain text properties that can -be inconvenient when you did not expect them. The variable -`yank-excluded-properties' specifies which ones. Insertion -of register contents and rectangles also discards these properties. +*** C-h v and C-h f commands now include a hyperlink to the C source for +variables and functions defined in C (if the C source is available). +++ -** Occur, Info, and comint-derived modes now support using -M-x font-lock-mode to toggle fontification. The variable -`Info-fontify' is no longer applicable; to disable fontification, -remove `turn-on-font-lock' from `Info-mode-hook'. +*** Help mode now only makes hyperlinks for faces when the face name is +preceded or followed by the word `face'. It no longer makes +hyperlinks for variables without variable documentation, unless +preceded by one of the words `variable' or `option'. It now makes +hyperlinks to Info anchors (or nodes) if the anchor (or node) name is +enclosed in single quotes and preceded by `info anchor' or `Info +anchor' (in addition to earlier `info node' and `Info node'). In +addition, it now makes hyperlinks to URLs as well if the URL is +enclosed in single quotes and preceded by `URL'. +++ -** M-x grep now tries to avoid appending `/dev/null' to the command line -by using GNU grep `-H' option instead. M-x grep will automatically -detect whether this is possible or not the first time it is invoked. -When `-H' is used, the grep command line supplied by the user is passed -unchanged to the system to execute, which allows more complicated -command lines to be used than was possible before. - ---- -** The face-customization widget has been reworked to be less confusing. -In particular, when you enable a face attribute using the corresponding -check-box, there's no longer a redundant `*' option in value selection -for that attribute; the values you can choose are only those which make -sense for the attribute. When an attribute is de-selected by unchecking -its check-box, then the (now ignored, but still present temporarily in -case you re-select the attribute) value is hidden. +*** The new command `describe-char' (C-u C-x =) pops up a buffer with +description various information about a character, including its +encodings and syntax, its text properties, how to input, overlays, and +widgets at point. You can get more information about some of them, by +clicking on mouse-sensitive areas or moving there and pressing RET. +++ -** When you set or reset a variable's value in a Customize buffer, -the previous value becomes the "backup value" of the variable. -You can go back to that backup value by selecting "Use Backup Value" -under the "[State]" button. +*** The command `list-text-properties-at' has been deleted because +C-u C-x = gives the same information and more. -** The new customization type `float' specifies numbers with floating -point (no integers are allowed). ++++ +*** New command `display-local-help' displays any local help at point +in the echo area. It is bound to `C-h .'. It normally displays the +same string that would be displayed on mouse-over using the +`help-echo' property, but, in certain cases, it can display a more +keyboard oriented alternative. +++ -** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program -counter to the specified source line (the one where point is). +*** New user option `help-at-pt-display-when-idle' allows to +automatically show the help provided by `display-local-help' on +point-over, after suitable idle time. The amount of idle time is +determined by the user option `help-at-pt-timer-delay' and defaults +to one second. This feature is turned off by default. ---- -** GUD mode improvements for jdb: ++++ +*** The apropos commands now accept a list of words to match. +When more than one word is specified, at least two of those words must +be present for an item to match. Regular expression matching is still +available. -*** Search for source files using jdb classpath and class - information. Fast startup since there is no need to scan all - source files up front. There is also no need to create and maintain - lists of source directories to scan. Look at `gud-jdb-use-classpath' - and `gud-jdb-classpath' customization variables documentation. ++++ +*** The new option `apropos-sort-by-scores' causes the matching items +to be sorted according to their score. The score for an item is a +number calculated to indicate how well the item matches the words or +regular expression that you entered to the apropos command. The best +match is listed first, and the calculated score is shown for each +matching item. -*** Supports the standard breakpoint (gud-break, gud-clear) - set/clear operations from java source files under the classpath, stack - traversal (gud-up, gud-down), and run until current stack finish - (gud-finish). +** Incremental Search changes: -*** Supports new jdb (Java 1.2 and later) in addition to oldjdb - (Java 1.1 jdb). ++++ +*** Vertical scrolling is now possible within incremental search. +To enable this feature, customize the new user option +`isearch-allow-scroll'. User written commands which satisfy stringent +constraints can be marked as "scrolling commands". See the Emacs manual +for details. -*** The previous method of searching for source files has been - preserved in case someone still wants/needs to use it. - Set gud-jdb-use-classpath to nil. ++++ +*** C-w in incremental search now grabs either a character or a word, +making the decision in a heuristic way. This new job is done by the +command `isearch-yank-word-or-char'. To restore the old behavior, +bind C-w to `isearch-yank-word' in `isearch-mode-map'. - Added Customization Variables ++++ +*** C-y in incremental search now grabs the next line if point is already +at the end of a line. -*** gud-jdb-command-name. What command line to use to invoke jdb. ++++ +*** C-M-w deletes and C-M-y grabs a character in isearch mode. +Another method to grab a character is to enter the minibuffer by `M-e' +and to type `C-f' at the end of the search string in the minibuffer. -*** gud-jdb-use-classpath. Allows selection of java source file searching - method: set to t for new method, nil to scan gud-jdb-directories for - java sources (previous method). ++++ +*** M-% typed in isearch mode invokes `query-replace' or +`query-replace-regexp' (depending on search mode) with the current +search string used as the string to replace. -*** gud-jdb-directories. List of directories to scan and search for java - classes using the original gud-jdb method (if gud-jdb-use-classpath - is nil). ++++ +*** Isearch no longer adds `isearch-resume' commands to the command +history by default. To enable this feature, customize the new +user option `isearch-resume-in-command-history'. - Minor Improvements +** Replace command changes: -*** Do not allow debugger output history variable to grow without bounds. +--- +*** New user option `query-replace-skip-read-only': when non-nil, +`query-replace' and related functions simply ignore +a match if part of it has a read-only property. +++ -** hide-ifdef-mode now uses overlays rather than selective-display -to hide its text. This should be mostly transparent but slightly -changes the behavior of motion commands line C-e and C-p. +*** When used interactively, the commands `query-replace-regexp' and +`replace-regexp' allow \,expr to be used in a replacement string, +where expr is an arbitrary Lisp expression evaluated at replacement +time. In many cases, this will be more convenient than using +`query-replace-regexp-eval'. `\#' in a replacement string now refers +to the count of replacements already made by the replacement command. +All regular expression replacement commands now allow `\?' in the +replacement string to specify a position where the replacement string +can be edited for each replacement. +++ -** In Dired's ! command (dired-do-shell-command), `*' and `?' now -control substitution of the file names only when they are surrounded -by whitespace. This means you can now use them as shell wildcards -too. If you want to use just plain `*' as a wildcard, type `*""'; the -doublequotes make no difference in the shell, but they prevent -special treatment in `dired-do-shell-command'. +*** query-replace uses isearch lazy highlighting when the new user option +`query-replace-lazy-highlight' is non-nil. -+++ -** Dired's v command now runs external viewers to view certain -types of files. The variable `dired-view-command-alist' controls -what external viewers to use and when. +--- +*** The current match in query-replace is highlighted in new face +`query-replace' which by default inherits from isearch face. + +** File operation changes: +++ -** Unquoted `$' in file names do not signal an error any more when +*** Unquoted `$' in file names do not signal an error any more when the corresponding environment variable does not exist. Instead, the `$ENVVAR' text is left as is, so that `$$' quoting is only rarely needed. ++++ +*** In processing a local variables list, Emacs strips the prefix and +suffix from every line before processing all the lines. + ++++ +*** find-file-read-only visits multiple files in read-only mode, +when the file name contains wildcard characters. + ++++ +*** find-alternate-file replaces the current file with multiple files, +when the file name contains wildcard characters. + ++++ +*** Auto Compression mode is now enabled by default. + --- -** jit-lock can now be delayed with `jit-lock-defer-time'. +*** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. -If this variable is non-nil, its value should be the amount of Emacs -idle time in seconds to wait before starting fontification. For -example, if you set `jit-lock-defer-time' to 0.25, fontification will -only happen after 0.25s of idle time. +Since the default input is the current directory, this has the effect +of specifying the current directory. Normally that means to visit the +directory with Dired. +++ -** Marking commands extend the region when invoked multiple times. If -you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or -C-M-h (mark-defun) repeatedly, the marked region will now be extended -each time, so you can mark the next two sexps with M-C-SPC M-C-SPC, -for example. This feature also works for mark-end-of-sentence, if you -bind that to a key. +*** When you are root, and you visit a file whose modes specify +read-only, the Emacs buffer is now read-only too. Type C-x C-q if you +want to make the buffer writable. (As root, you can in fact alter the +file.) +++ -** Some commands do something special in Transient Mark mode when the -mark is active--for instance, they limit their operation to the -region. Even if you don't normally use Transient Mark mode, you might -want to get this behavior from a particular command. There are two -ways you can enable Transient Mark mode and activate the mark, for one -command only. +*** C-x s (save-some-buffers) now offers an option `d' to diff a buffer +against its file, so you can see what changes you would be saving. -One method is to type C-SPC C-SPC; this enables Transient Mark mode -and sets the mark at point. The other method is to type C-u C-x C-x. -This enables Transient Mark mode temporarily but does not alter the -mark or the region. ++++ +*** The commands copy-file, rename-file, make-symbolic-link and +add-name-to-file, when given a directory as the "new name" argument, +convert it to a file name by merging in the within-directory part of +the existing file's name. (This is the same convention that shell +commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET +/tmp RET copies ~/foo to /tmp/foo. -After these commands, Transient Mark mode remains enabled until you -deactivate the mark. That typically happens when you type a command -that alters the buffer, but you can also deactivate the mark by typing -C-g. +--- +*** When used interactively, `format-write-file' now asks for confirmation +before overwriting an existing file, unless a prefix argument is +supplied. This behavior is analogous to `write-file'. + +--- +*** The variable `auto-save-file-name-transforms' now has a third element that +controls whether or not the function `make-auto-save-file-name' will +attempt to construct a unique auto-save name (e.g. for remote files). +++ -** A prefix argument is no longer required to repeat a jump to a -previous mark, i.e. C-u C-SPC C-SPC C-SPC ... will cycle through the -mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. +*** The new option `write-region-inhibit-fsync' disables calls to fsync +in `write-region'. This can be useful on laptops to avoid spinning up +the hard drive upon each file save. Enabling this variable may result +in data loss, use with care. +++ -** In the *Occur* buffer, `o' switches to it in another window, and -C-o displays the current line's occurrence in another window without -switching to it. +*** If the user visits a file larger than `large-file-warning-threshold', +Emacs asks for confirmation. +++ -** When you specify a frame size with --geometry, the size applies to -all frames you create. A position specified with --geometry only -affects the initial frame. +*** require-final-newline now has two new possible values: + +`visit' means add a newline (as an undoable change) if it's needed +when visiting the file. + +`visit-save' means add a newline (as an undoable change) if it's +needed when visiting the file, and also add a newline if it's needed +when saving the file. +++ -** M-h (mark-paragraph) now accepts a prefix arg. -With positive arg, M-h marks the current and the following paragraphs; -if the arg is negative, it marks the current and the preceding -paragraphs. +*** The new option mode-require-final-newline controls how certain +major modes enable require-final-newline. Any major mode that's +designed for a kind of file that should normally end in a newline +sets require-final-newline based on mode-require-final-newline. +So you can customize mode-require-final-newline to control what these +modes do. -** In Dired, the w command now copies the current line's file name -into the kill ring. +** Minibuffer changes: +++ -** The variables dired-free-space-program and dired-free-space-args -have been renamed to directory-free-space-program and -directory-free-space-args, and they now apply whenever Emacs puts a -directory listing into a buffer. +*** The new file-name-shadow-mode is turned ON by default, so that when +entering a file name, any prefix which Emacs will ignore is dimmed. + ++++ +*** There's a new face `minibuffer-prompt'. +Emacs adds this face to the list of text properties stored in the +variable `minibuffer-prompt-properties', which is used to display the +prompt string. --- -** mouse-wheels can now scroll a specific fraction of the window -(rather than a fixed number of lines) and the scrolling is `progressive'. +*** Enhanced visual feedback in `*Completions*' buffer. + +Completions lists use faces to highlight what all completions +have in common and where they begin to differ. + +The common prefix shared by all possible completions uses the face +`completions-common-part', while the first character that isn't the +same uses the face `completions-first-difference'. By default, +`completions-common-part' inherits from `default', and +`completions-first-difference' inherits from `bold'. The idea of +`completions-common-part' is that you can use it to make the common +parts less visible than normal, so that the rest of the differing +parts is, by contrast, slightly highlighted. + +Above fontification is always done when listing completions is +triggered at minibuffer. If you want to fontify completions whose +listing is triggered at the other normal buffer, you have to pass +the common prefix of completions to `display-completion-list' as +its second argument. -** Unexpected yanking of text due to accidental clicking on the mouse -wheel button (typically mouse-2) during wheel scrolling is now avoided. -This behaviour can be customized via the mouse-wheel-click-event and -mouse-wheel-inhibit-click-time variables. ++++ +*** File-name completion can now ignore specified directories. +If an element of the list in `completion-ignored-extensions' ends in a +slash `/', it indicates a subdirectory that should be ignored when +completing file names. Elements of `completion-ignored-extensions' +which do not end in a slash are never considered when a completion +candidate is a directory. +++ -** The keyboard-coding-system is now automatically set based on your -current locale settings if you are not using a window system. This -may mean that the META key doesn't work but generates non-ASCII -characters instead, depending on how the terminal (or terminal -emulator) works. Use `set-keyboard-coding-system' (or customize -keyboard-coding-system) if you prefer META to work (the old default) -or if the locale doesn't describe the character set actually generated -by the keyboard. See Info node `Single-Byte Character Support'. +*** The completion commands TAB, SPC and ? in the minibuffer apply only +to the text before point. If there is text in the buffer after point, +it remains unchanged. +++ -** Emacs now reads the standard abbrevs file ~/.abbrev_defs -automatically at startup, if it exists. When Emacs offers to save -modified buffers, it saves the abbrevs too if they have changed. It -can do this either silently or asking for confirmation first, -according to the value of `save-abbrevs'. +*** New user option `history-delete-duplicates'. +If set to t when adding a new history element, all previous identical +elements are deleted. + +** Redisplay changes: +++ -** Display of hollow cursors now obeys the buffer-local value (if any) -of `cursor-in-non-selected-windows' in the buffer that the cursor -appears in. +*** The mode line position information now comes before the major mode. +When the file is maintained under version control, that information +appears between the position information and the major mode. -** The variable `cursor-in-non-selected-windows' can now be set to any -of the recognized cursor types. ++++ +*** New face `escape-glyph' highlights control characters and escape glyphs. +++ -** The default values of `tooltip-delay' and `tooltip-hide-delay' -were changed. +*** Non-breaking space and hyphens are now displayed with a special +face, either nobreak-space or escape-glyph. You can turn this off or +specify a different mode by setting the variable `nobreak-char-display'. ---- -** On terminals whose erase-char is ^H (Backspace), Emacs -now uses normal-erase-is-backspace-mode. ++++ +*** The parameters of automatic hscrolling can now be customized. +The variable `hscroll-margin' determines how many columns away from +the window edge point is allowed to get before automatic hscrolling +will horizontally scroll the window. The default value is 5. + +The variable `hscroll-step' determines how many columns automatic +hscrolling scrolls the window when point gets too close to the +window edge. If its value is zero, the default, Emacs scrolls the +window so as to center point. If its value is an integer, it says how +many columns to scroll. If the value is a floating-point number, it +gives the fraction of the window's width to scroll the window. + +The variable `automatic-hscrolling' was renamed to +`auto-hscroll-mode'. The old name is still available as an alias. --- -** The variable `auto-save-file-name-transforms' now has a third element that -controls whether or not the function `make-auto-save-file-name' will -attempt to construct a unique auto-save name (e.g. for remote files). +*** Moving or scrolling through images (and other lines) taller than +the window now works sensibly, by automatically adjusting the window's +vscroll property. +++ -** Diary sexp entries can have custom marking in the calendar. -Diary sexp functions which only apply to certain days (such as -`diary-block' or `diary-cyclic' now take an optional parameter MARK, -which is the name of a face or a single-character string indicating -how to highlight the day in the calendar display. Specifying a -single-character string as @var{mark} places the character next to the -day in the calendar. Specifying a face highlights the day with that -face. This lets you have different colors or markings for vacations, -appointments, paydays or anything else using a sexp. +*** The new face `mode-line-inactive' is used to display the mode line +of non-selected windows. The `mode-line' face is now used to display +the mode line of the currently selected window. -** VC Changes +The new variable `mode-line-in-non-selected-windows' controls whether +the `mode-line-inactive' face is used. -*** The key C-x C-q no longer checks files in or out, it only changes -the read-only state of the buffer (toggle-read-only). We made this -change because we held a poll and found that many users were unhappy -with the previous behavior. If you do prefer this behavior, you -can bind `vc-toggle-read-only' to C-x C-q in your .emacs: ++++ +*** You can now customize the use of window fringes. To control this +for all frames, use M-x fringe-mode or the Show/Hide submenu of the +top-level Options menu, or customize the `fringe-mode' variable. To +control this for a specific frame, use the command M-x +set-fringe-style. - (global-set-key "\C-x\C-q" 'vc-toggle-read-only) ++++ +*** Angle icons in the fringes can indicate the buffer boundaries. In +addition, up and down arrow bitmaps in the fringe indicate which ways +the window can be scrolled. -The function `vc-toggle-read-only' will continue to exist. +This behavior is activated by setting the buffer-local variable +`indicate-buffer-boundaries' to a non-nil value. The default value of +this variable is found in `default-indicate-buffer-boundaries'. -+++ -*** There is a new user option `vc-cvs-global-switches' that allows -you to specify switches that are passed to any CVS command invoked -by VC. These switches are used as "global options" for CVS, which -means they are inserted before the command name. For example, this -allows you to specify a compression level using the "-z#" option for -CVS. +If value is `left' or `right', both angle and arrow bitmaps are +displayed in the left or right fringe, resp. -** EDiff changes. +The value can also be an alist which specifies the presence and +position of each bitmap individually. -+++ -*** When comparing directories. -Typing D brings up a buffer that lists the differences between the contents of -directories. Now it is possible to use this buffer to copy the missing files -from one directory to another. +For example, ((top . left) (t . right)) places the top angle bitmap +in left fringe, the bottom angle bitmap in right fringe, and both +arrow bitmaps in right fringe. To show just the angle bitmaps in the +left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). +++ -*** When comparing files or buffers. -Typing the = key now offers to perform the word-by-word comparison of the -currently highlighted regions in an inferior Ediff session. If you answer 'n' -then it reverts to the old behavior and asks the user to select regions for -comparison. +*** On window systems, lines which are exactly as wide as the window +(not counting the final newline character) are no longer broken into +two lines on the display (with just the newline on the second line). +Instead, the newline now "overflows" into the right fringe, and the +cursor will be displayed in the fringe when positioned on that newline. -*** The new command `ediff-backup' compares a file with its most recent -backup using `ediff'. If you specify the name of a backup file, -`ediff-backup' compares it with the file of which it is a backup. +The new user option 'overflow-newline-into-fringe' can be set to nil to +revert to the old behavior of continuing such lines. +++ -** Etags changes. +*** When a window has display margin areas, the fringes are now +displayed between the margins and the buffer's text area, rather than +outside those margins. -*** New regular expressions features ++++ +*** A window can now have individual fringe and scroll-bar settings, +in addition to the individual display margin settings. -**** New syntax for regular expressions, multi-line regular expressions. -The syntax --ignore-case-regexp=/regex/ is now undocumented and retained -only for backward compatibility. The new equivalent syntax is ---regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, -where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or -more characters among `i' (ignore case), `m' (multi-line) and `s' -(single-line). The `m' and `s' modifiers behave as in Perl regular -expressions: `m' allows regexps to match more than one line, while `s' -(which implies `m') means that `.' matches newlines. The ability to -span newlines allows writing of much more powerful regular expressions -and rapid prototyping for tagging new languages. +Such individual settings are now preserved when windows are split +horizontally or vertically, a saved window configuration is restored, +or when the frame is resized. -**** Regular expressions can use char escape sequences as in Gcc. -The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, -respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, -CR, TAB, VT, +** Cursor display changes: -**** Regular expressions can be bound to a given language. -The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags -only for files of language LANGUAGE, and ignored otherwise. This is -particularly useful when storing regexps in a file. - -**** Regular expressions can be read from a file. -The --regex=@regexfile option means read the regexps from a file, one -per line. Lines beginning with space or tab are ignored. ++++ +*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is +now controlled by the variable `blink-cursor-alist'. -*** New language parsing features ++++ +*** The X resource cursorBlink can be used to turn off cursor blinking. -**** The `::' qualifier triggers C++ parsing in C file. -Previously, only the `template' and `class' keywords had this effect. ++++ +*** Emacs can produce an underscore-like (horizontal bar) cursor. +The underscore cursor is set by putting `(cursor-type . hbar)' in +default-frame-alist. It supports variable heights, like the `bar' +cursor does. -**** In Perl, packages are tags. -Subroutine tags are named from their package. You can jump to sub tags -as you did before, by the sub name, or additionally by looking for -package::sub. ++++ +*** Display of hollow cursors now obeys the buffer-local value (if any) +of `cursor-in-non-selected-windows' in the buffer that the cursor +appears in. -**** New language PHP. -Tags are functions, classes and defines. -If the --members option is specified to etags, tags are vars also. ++++ +*** The variable `cursor-in-non-selected-windows' can now be set to any +of the recognized cursor types. -**** New language HTML. -Title and h1, h2, h3 are tagged. Also, tags are generated when name= is -used inside an anchor and whenever id= is used. ++++ +*** On text terminals, the variable `visible-cursor' controls whether Emacs +uses the "very visible" cursor (the default) or the normal cursor. -**** New default keywords for TeX. -The new keywords are def, newcommand, renewcommand, newenvironment and -renewenvironment. +** New faces: -**** In Makefiles, constants are tagged. -If you want the old behavior instead, thus avoiding to increase the -size of the tags file, use the --no-globals option. ++++ +*** `mode-line-highlight' is the standard face indicating mouse sensitive +elements on mode-line (and header-line) like `highlight' face on text +areas. -**** In Prolog, etags creates tags for rules in addition to predicates. ++++ +*** `shadow' face defines the appearance of the "shadowed" text, i.e. +the text which should be less noticeable than the surrounding text. +This can be achieved by using shades of grey in contrast with either +black or white default foreground color. This generic shadow face +allows customization of the appearance of shadowed text in one place, +so package-specific faces can inherit from it. -*** Honour #line directives. -When Etags parses an input file that contains C preprocessor's #line -directives, it creates tags using the file name and line number -specified in those directives. This is useful when dealing with code -created from Cweb source files. When Etags tags the generated file, it -writes tags pointing to the source file. ++++ +*** `vertical-border' face is used for the vertical divider between windows. -*** New option --parse-stdin=FILE. -This option is mostly useful when calling etags from programs. It can -be used (only once) in place of a file name on the command line. Etags -will read from standard input and mark the produced tags as belonging to -the file FILE. +** Font-Lock changes: +++ -** The command line option --no-windows has been changed to ---no-window-system. The old one still works, but is deprecated. +*** M-o now is the prefix key for setting text properties; +M-o M-o requests refontification. +++ -** The command `list-text-properties-at' has been deleted because -C-u C-x = gives the same information and more. +*** All modes now support using M-x font-lock-mode to toggle +fontification, even those such as Occur, Info, and comint-derived +modes that do their own fontification in a special way. -+++ -** `buffer-menu' and `list-buffers' now list buffers whose names begin -with a space, when those buffers are visiting files. Normally buffers -whose names begin with space are omitted. +The variable `Info-fontify' is no longer applicable; to disable +fontification in Info, remove `turn-on-font-lock' from +`Info-mode-hook'. +++ -** You can now customize fill-nobreak-predicate to control where -filling can break lines. We provide two sample predicates, -fill-single-word-nobreak-p and fill-french-nobreak-p. +*** font-lock-lines-before specifies a number of lines before the +current line that should be refontified when you change the buffer. +The default value is 1. +++ -** New user option `add-log-always-start-new-record'. -When this option is enabled, M-x add-change-log-entry will always -start a new record regardless of when the last record is. +*** font-lock: in modes like C and Lisp where the fontification assumes that +an open-paren in column 0 is always outside of any string or comment, +font-lock now highlights any such open-paren-in-column-zero in bold-red +if it is inside a string or a comment, to indicate that it can cause +trouble with fontification and/or indentation. +++ -** SGML mode has indentation and supports XML syntax. -The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. -When this option is enabled, SGML tags are inserted in XML style, -i.e., there is always a closing tag. -By default, its setting is inferred on a buffer-by-buffer basis -from the file name or buffer contents. +*** New standard font-lock face `font-lock-preprocessor-face'. +++ -** `xml-mode' is now an alias for `sgml-mode', which has XML support. +*** New standard font-lock face `font-lock-comment-delimiter-face'. +++ -** New user option `isearch-resume-enabled'. -This option can be disabled, to avoid the normal behavior of isearch -which puts calls to `isearch-resume' in the command history. +*** Easy to overlook single character negation can now be font-locked. +You can use the new variable `font-lock-negation-char-face' and the face of +the same name to customize this. Currently the cc-modes, sh-script-mode, +cperl-mode and make-mode support this. --- -** When the *scratch* buffer is recreated, its mode is set from -initial-major-mode, which normally is lisp-interaction-mode, -instead of using default-major-mode. +*** The default settings for JIT stealth lock parameters are changed. +The default value for the user option jit-lock-stealth-time is now 16 +instead of 3, and the default value of jit-lock-stealth-nice is now +0.5 instead of 0.125. The new defaults should lower the CPU usage +when Emacs is fontifying in the background. + +--- +*** jit-lock can now be delayed with `jit-lock-defer-time'. + +If this variable is non-nil, its value should be the amount of Emacs +idle time in seconds to wait before starting fontification. For +example, if you set `jit-lock-defer-time' to 0.25, fontification will +only happen after 0.25s of idle time. --- -** Lisp mode now uses font-lock-doc-face for the docstrings. +*** contextual refontification is now separate from stealth fontification. + +jit-lock-defer-contextually is renamed jit-lock-contextually and +jit-lock-context-time determines the delay after which contextual +refontification takes place. + +** Menu support: --- -** Perl mode has a new variable `perl-indent-continued-arguments'. +*** A menu item "Show/Hide" was added to the top-level menu "Options". +This menu allows you to turn various display features on and off (such +as the fringes, the tool bar, the speedbar, and the menu bar itself). +You can also move the vertical scroll bar to either side here or turn +it off completely. There is also a menu-item to toggle displaying of +current date and time, current line and column number in the mode-line. + +--- +*** Speedbar has moved from the "Tools" top level menu to "Show/Hide". + +--- +*** You can exit dialog windows and menus by typing C-g. + +--- +*** The menu item "Open File..." has been split into two items, "New File..." +and "Open File...". "Open File..." now opens only existing files. This is +to support existing GUI file selection dialogs better. +++ -** Fortran mode has a new variable `fortran-directive-re'. -Adapt this to match the format of any compiler directives you use. -Lines that match are never indented, and are given distinctive font-locking. +*** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be +disabled by customizing the variable `use-file-dialog'. --- -** F90 mode has new navigation commands `f90-end-of-block', -`f90-beginning-of-block', `f90-next-block', `f90-previous-block'. +*** The pop up menus for Lucid now stay up if you do a fast click and can +be navigated with the arrow keys (like Gtk+, Mac and W32). + ++++ +*** The Lucid menus can display multilingual text in your locale. You have +to explicitly specify a fontSet resource for this to work, for example +`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. --- -** Prolog mode has a new variable `prolog-font-lock-keywords' -to support use of font-lock. +*** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing +ESC, like they do for Gtk+, Mac and W32. +++ -** `special-display-buffer-names' and `special-display-regexps' now -understand two new boolean pseudo-frame-parameters `same-frame' and -`same-window'. +*** For Gtk+ version 2.4, you can make Emacs use the old file dialog +by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use +the new dialog. + +** Mouse changes: +++ -** M-x setenv now expands environment variables of the form `$foo' and -`${foo}' in the specified new value of the environment variable. To -include a `$' in the value, use `$$'. +*** If you set the new variable `mouse-autoselect-window' to a non-nil +value, windows are automatically selected as you move the mouse from +one Emacs window to another, even within a frame. A minibuffer window +can be selected only when it is active. +++ -** File-name completion can now ignore directories. -If an element of the list in `completion-ignored-extensions' ends in a -slash `/', it indicates a subdirectory that should be ignored when -completing file names. Elements of `completion-ignored-extensions' -which do not end in a slash are never considered when a completion -candidate is a directory. +*** On X, when the window manager requires that you click on a frame to +select it (give it focus), the selected window and cursor position +normally changes according to the mouse click position. If you set +the variable x-mouse-click-focus-ignore-position to t, the selected +window and cursor position do not change when you click on a frame +to give it focus. +++ -** The completion commands TAB, SPC and ? in the minibuffer apply only -to the text before point. If there is text in the buffer after point, -it remains unchanged. +*** You can now follow links by clicking Mouse-1 on the link. + +Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 +click to follow a link, whereas most other applications use a Mouse-1 +click for both purposes, depending on whether you click outside or +inside a link. Now the behavior of a Mouse-1 click has been changed +to match this context-sentitive dual behavior. (If you prefer the old +behavior, set the user option `mouse-1-click-follows-link' to nil.) + +Depending on the current mode, a Mouse-2 click in Emacs can do much +more than just follow a link, so the new Mouse-1 behavior is only +activated for modes which explicitly mark a clickable text as a "link" +(see the new function `mouse-on-link-p' for details). The Lisp +packages that are included in release 22.1 have been adapted to do +this, but external packages may not yet support this. However, there +is no risk in using such packages, as the worst thing that could +happen is that you get the original Mouse-1 behavior when you click +on a link, which typically means that you set point where you click. + +If you want to get the original Mouse-1 action also inside a link, you +just need to press the Mouse-1 button a little longer than a normal +click (i.e. press and hold the Mouse-1 button for half a second before +you release it). + +Dragging the Mouse-1 inside a link still performs the original +drag-mouse-1 action, typically copy the text. + +You can customize the new Mouse-1 behavior via the new user options +`mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. +++ -** New user option `inhibit-startup-buffer-menu'. -When loading many files, for instance with `emacs *', Emacs normally -displays a buffer menu. This option turns the buffer menu off. +*** Emacs normally highlights mouse sensitive text whenever the mouse +is over the text. By setting the new variable `mouse-highlight', you +can optionally enable mouse highlighting only after you move the +mouse, so that highlighting disappears when you press a key. You can +also disable mouse highlighting. ---- -** Rmail now displays 5-digit message ids in its summary buffer. ++++ +*** You can now customize if selecting a region by dragging the mouse +shall not copy the selected text to the kill-ring by setting the new +variable mouse-drag-copy-region to nil. --- -** On MS Windows, the "system caret" now follows the cursor. -This enables Emacs to work better with programs that need to track -the cursor, for example screen magnifiers and text to speech programs. +*** mouse-wheels can now scroll a specific fraction of the window +(rather than a fixed number of lines) and the scrolling is `progressive'. --- -** Tooltips now work on MS Windows. -See the Emacs 21.1 NEWS entry for tooltips for details. +*** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. ---- -** Images are now supported on MS Windows. -PBM and XBM images are supported out of the box. Other image formats -depend on external libraries. All of these libraries have been ported -to Windows, and can be found in both source and binary form at -http://gnuwin32.sourceforge.net/. Note that libpng also depends on -zlib, and tiff depends on the version of jpeg that it was compiled -against. +People tend to push the mouse wheel (which counts as a mouse-2 click) +unintentionally while turning the wheel, so these clicks are now +ignored. You can customize this with the mouse-wheel-click-event and +mouse-wheel-inhibit-click-time variables. ---- -** Sound is now supported on MS Windows. -WAV format is supported on all versions of Windows, other formats such -as AU, AIFF and MP3 may be supported in the more recent versions of -Windows, or when other software provides hooks into the system level -sound support for those formats. ++++ +*** Under X, mouse-wheel-mode is turned on by default. ---- -** Different shaped mouse pointers are supported on MS Windows. -The mouse pointer changes shape depending on what is under the pointer. +** Multilingual Environment (Mule) changes: --- -** Pointing devices with more than 3 buttons are now supported on MS Windows. -The new variable `w32-pass-extra-mouse-buttons-to-system' controls -whether Emacs should handle the extra buttons itself (the default), or -pass them to Windows to be handled with system-wide functions. +*** Language environment and various default coding systems are setup +more correctly according to the current locale name. If the locale +name doesn't specify a charset, the default is what glibc defines. +This change can result in using the different coding systems as +default in some locale (e.g. vi_VN). +++ -** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). -The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', -and `x-super-keysym' can be used to choose which keysyms Emacs should -use for the modifiers. For example, the following two lines swap -Meta and Alt: - (setq x-alt-keysym 'meta) - (setq x-meta-keysym 'alt) +*** The keyboard-coding-system is now automatically set based on your +current locale settings if you are not using a window system. This +can mean that the META key doesn't work but generates non-ASCII +characters instead, depending on how the terminal (or terminal +emulator) works. Use `set-keyboard-coding-system' (or customize +keyboard-coding-system) if you prefer META to work (the old default) +or if the locale doesn't describe the character set actually generated +by the keyboard. See Info node `Single-Byte Character Support'. -* New modes and packages in 21.4 ++++ +*** The new command `revert-buffer-with-coding-system' (C-x RET r) +revisits the current file using a coding system that you specify. ---- -** Ido mode is now part of the Emacs distribution. ++++ +*** New command `recode-region' decodes the region again by a specified +coding system. -The ido (interactively do) package is an extension of the iswitchb -package to do interactive opening of files and directories in addition -to interactive buffer switching. Ido is a superset of iswitchb (with -a few exceptions), so don't enable both packages. ++++ +*** The new command `recode-file-name' changes the encoding of the name +of a file. --- -** CUA mode is now part of the Emacs distribution. +*** New command `ucs-insert' inserts a character specified by its +unicode. -The new cua package provides CUA-like keybindings using C-x for -cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo. -With cua, the region can be set and extended using shifted movement -keys (like pc-selection-mode) and typed text replaces the active -region (like delete-selection-mode). Do not enable these modes with -cua-mode. Customize the variable `cua-mode' to enable cua. ++++ +*** The new command `set-file-name-coding-system' (C-x RET F) sets +coding system for encoding and decoding file names. A new menu item +(Options->Mule->Set Coding Systems->For File Name) invokes this +command. -In addition, cua provides unified rectangle support with visible -rectangle highlighting: Use S-return to start a rectangle, extend it -using the movement commands (or mouse-3), and cut or copy it using C-x -or C-c (using C-w and M-w also works). ++++ +*** New command quail-show-key shows what key (or key sequence) to type +in the current input method to input a character at point. -Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to -fill it with blanks or another character, use M-u or M-l to upcase or -downcase the rectangle, use M-i to increment the numbers in the -rectangle, use M-n to fill the rectangle with a numeric sequence (such -as 10 20 30...), use M-r to replace a regexp in the rectangle, and use -M-' or M-/ to restrict command on the rectangle to a subset of the -rows. See the commentary in cua-base.el for more rectangle commands. ++++ +*** Limited support for character `unification' has been added. +Emacs now knows how to translate between different representations of +the same characters in various Emacs charsets according to standard +Unicode mappings. This applies mainly to characters in the ISO 8859 +sets plus some other 8-bit sets, but can be extended. For instance, +translation works amongst the Emacs ...-iso8859-... charsets and the +mule-unicode-... ones. -Cua also provides unified support for registers: Use a numeric -prefix argument between 0 and 9, i.e. M-0 .. M-9, for C-x, C-c, and -C-v to cut or copy into register 0-9, or paste from register 0-9. +By default this translation happens automatically on encoding. +Self-inserting characters are translated to make the input conformant +with the encoding of the buffer in which it's being used, where +possible. -The last text deleted (not killed) is automatically stored in -register 0. This includes text deleted by typing text. +You can force a more complete unification with the user option +unify-8859-on-decoding-mode. That maps all the Latin-N character sets +into Unicode characters (from the latin-iso8859-1 and +mule-unicode-0100-24ff charsets) on decoding. Note that this mode +will often effectively clobber data with an iso-2022 encoding. -Finally, cua provides a global mark which is set using S-C-space. -When the global mark is active, any text which is cut or copied is -automatically inserted at the global mark position. See the -commentary in cua-base.el for more global mark related commands. +--- +*** There is support for decoding Greek and Cyrillic characters into +either Unicode (the mule-unicode charsets) or the iso-8859 charsets, +when possible. The latter are more space-efficient. This is +controlled by user option utf-fragment-on-decoding. -The features of cua also works with the standard emacs bindings for -kill, copy, yank, and undo. If you want to use cua mode, but don't -want the C-x, C-c, C-v, and C-z bindings, you may customize the -`cua-enable-cua-keys' variable. +--- +*** New language environments: French, Ukrainian, Tajik, +Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, +Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, +Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up +automatically according to the locale.) -Note: This version of cua mode is not backwards compatible with older -versions of cua.el and cua-mode.el. To ensure proper operation, you -must remove older versions of cua.el or cua-mode.el as well as the -loading and customization of those packages from the .emacs file. +--- +*** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, +ukrainian-computer, belarusian, bulgarian-bds, russian-computer, +vietnamese-telex, lithuanian-numeric, lithuanian-keyboard, +latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml, +bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript, +tamil-inscript. -** The new keypad setup package provides several common bindings for -the numeric keypad which is available on most keyboards. The numeric -keypad typically has the digits 0 to 9, a decimal point, keys marked -+, -, /, and *, an Enter key, and a NumLock toggle key. The keypad -package only controls the use of the digit and decimal keys. +--- +*** New input method chinese-sisheng for inputting Chinese Pinyin +characters. -By customizing the variables `keypad-setup', `keypad-shifted-setup', -`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by -using the function `keypad-setup', you can rebind all digit keys and -the decimal key of the keypad in one step for each of the four -possible combinations of the Shift key state (not pressed/pressed) and -the NumLock toggle state (off/on). +--- +*** Improved Thai support. A new minor mode `thai-word-mode' (which is +automatically activated if you select Thai as a language +environment) changes key bindings of most word-oriented commands to +versions which recognize Thai words. Affected commands are + M-f (forward-word) + M-b (backward-word) + M-d (kill-word) + M-DEL (backward-kill-word) + M-t (transpose-words) + M-q (fill-paragraph) -The choices for the keypad keys in each of the above states are: -`Plain numeric keypad' where the keys generates plain digits, -`Numeric keypad with decimal key' where the character produced by the -decimal key can be customized individually (for internationalization), -`Numeric Prefix Arg' where the keypad keys produce numeric prefix args -for emacs editing commands, `Cursor keys' and `Shifted Cursor keys' -where the keys work like (shifted) arrow keys, home/end, etc., and -`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.) -are left unspecified and can be bound individually through the global -or local keymaps. +--- +*** Indian support has been updated. +The in-is13194 coding system is now Unicode-based. CDAC fonts are +assumed. There is a framework for supporting various +Indian scripts, but currently only Devanagari, Malayalam and Tamil are +supported. -** The new kmacro package provides a simpler user interface to -emacs' keyboard macro facilities. +--- +*** A UTF-7 coding system is available in the library `utf-7'. -Basically, it uses two function keys (default F3 and F4) like this: -F3 starts a macro, F4 ends the macro, and pressing F4 again executes -the last macro. While defining the macro, F3 inserts a counter value -which automatically increments every time the macro is executed. +--- +*** The utf-8/16 coding systems have been enhanced. +By default, untranslatable utf-8 sequences are simply composed into +single quasi-characters. User option `utf-translate-cjk-mode' (it is +turned on by default) arranges to translate many utf-8 CJK character +sequences into real Emacs characters in a similar way to the Mule-UCS +system. As this loads a fairly big data on demand, people who are not +interested in CJK characters may want to customize it to nil. +You can augment/amend the CJK translation via hash tables +`ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 +coding system now also encodes characters from most of Emacs's +one-dimensional internal charsets, specifically the ISO-8859 ones. +The utf-16 coding system is affected similarly. -There is now a keyboard macro ring which stores the most recently -defined macros. +--- +*** A new coding system `euc-tw' has been added for traditional Chinese +in CNS encoding; it accepts both Big 5 and CNS as input; on saving, +Big 5 is then converted to CNS. -The C-x C-k sequence is now a prefix for the kmacro keymap which -defines bindings for moving through the keyboard macro ring, -C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e, -manipulating the macro counter and format via C-x C-k C-c, -C-x C-k C-a, and C-x C-k C-f. See the commentary in kmacro.el -for more commands. +--- +*** Many new coding systems are available in the `code-pages' library. +These include complete versions of most of those in codepage.el, based +on Unicode mappings. `codepage-setup' is now obsolete and is used +only in the MS-DOS port of Emacs. All coding systems defined in +`code-pages' are auto-loaded. -The normal macro bindings C-x (, C-x ), and C-x e now interfaces to -the keyboard macro ring. +--- +*** New variable `utf-translate-cjk-unicode-range' controls which +Unicode characters to translate in `utf-translate-cjk-mode'. -The C-x e command now automatically terminates the current macro -before calling it, if used while defining a macro. +--- +*** iso-10646-1 (`Unicode') fonts can be used to display any range of +characters encodable by the utf-8 coding system. Just specify the +fontset appropriately. -In addition, when ending or calling a macro with C-x e, the macro can -be repeated immediately by typing just the `e'. You can customize -this behaviour via the variable kmacro-call-repeat-key and -kmacro-call-repeat-with-arg. +** Customize changes: -Keyboard macros can now be debugged and edited interactively. -C-x C-k SPC will step through the last keyboard macro one key sequence -at a time, prompting for the actions to take. ++++ +*** Custom themes are collections of customize options. Create a +custom theme with M-x customize-create-theme. Use M-x load-theme to +load and enable a theme, and M-x disable-theme to disable it. Use M-x +enable-theme to renable a disabled theme. + ++++ +*** The commands M-x customize-face and M-x customize-face-other-window +now look at the character after point. If a face or faces are +specified for that character, the commands by default customize those +faces. --- -** The old Octave mode bindings C-c f and C-c i have been changed -to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate -bindings on control characters--thus, C-c C-i C-b is the same as -C-c C-i b, and so on. +*** The face-customization widget has been reworked to be less confusing. +In particular, when you enable a face attribute using the corresponding +check-box, there's no longer a redundant `*' option in value selection +for that attribute; the values you can choose are only those which make +sense for the attribute. When an attribute is de-selected by unchecking +its check-box, then the (now ignored, but still present temporarily in +case you re-select the attribute) value is hidden. -** The printing package is now part of the Emacs distribution. ++++ +*** When you set or reset a variable's value in a Customize buffer, +the previous value becomes the "backup value" of the variable. +You can go back to that backup value by selecting "Use Backup Value" +under the "[State]" button. -If you enable the printing package by including (require 'printing) in -the .emacs file, the normal Print item on the File menu is replaced -with a Print sub-menu which allows you to preview output through -ghostview, use ghostscript to print (if you don't have a PostScript -printer) or send directly to printer a PostScript code generated by -`ps-print' package. Use M-x pr-help for more information. +** Buffer Menu changes: +++ -** Calc is now part of the Emacs distribution. +*** New command `Buffer-menu-toggle-files-only' toggles display of file +buffers only in the Buffer Menu. It is bound to T in Buffer Menu +mode. -Calc is an advanced desk calculator and mathematical tool written in -Emacs Lisp. Its documentation is in a separate manual; within Emacs, -type "C-h i m calc RET" to read that manual. A reference card is -available in `etc/calccard.tex' and `etc/calccard.ps'. ++++ +*** `buffer-menu' and `list-buffers' now list buffers whose names begin +with a space, when those buffers are visiting files. Normally buffers +whose names begin with space are omitted. + +--- +*** The new options `buffers-menu-show-directories' and +`buffers-menu-show-status' let you control how buffers are displayed +in the menu dropped down when you click "Buffers" from the menu bar. + +`buffers-menu-show-directories' controls whether the menu displays +leading directories as part of the file name visited by the buffer. +If its value is `unless-uniquify', the default, directories are +shown unless uniquify-buffer-name-style' is non-nil. The value of nil +and t turn the display of directories off and on, respectively. + +`buffers-menu-show-status' controls whether the Buffers menu includes +the modified and read-only status of the buffers. By default it is +t, and the status is shown. + +Setting these variables directly does not take effect until next time +the Buffers menu is regenerated. + +** Dired mode: + +--- +*** New faces dired-header, dired-mark, dired-marked, dired-flagged, +dired-ignored, dired-directory, dired-symlink, dired-warning +introduced for Dired mode instead of font-lock faces. +++ -** Tramp is now part of the distribution. +*** New Dired command `dired-compare-directories' marks files +with different file attributes in two dired buffers. -This package is similar to Ange-FTP: it allows you to edit remote -files. But whereas Ange-FTP uses FTP to access the remote host, -Tramp uses a shell connection. The shell connection is always used -for filename completion and directory listings and suchlike, but for -the actual file transfer, you can choose between the so-called -`inline' methods (which transfer the files through the shell -connection using base64 or uu encoding) and the `out-of-band' methods -(which invoke an external copying program such as `rcp' or `scp' or -`rsync' to do the copying). ++++ +*** New Dired command `dired-do-touch' (bound to T) changes timestamps +of marked files with the value entered in the minibuffer. -Shell connections can be acquired via `rsh', `ssh', `telnet' and also -`su' and `sudo'. ++++ +*** In Dired's ! command (dired-do-shell-command), `*' and `?' now +control substitution of the file names only when they are surrounded +by whitespace. This means you can now use them as shell wildcards +too. If you want to use just plain `*' as a wildcard, type `*""'; the +doublequotes make no difference in the shell, but they prevent +special treatment in `dired-do-shell-command'. + ++++ +*** In Dired, the w command now copies the current line's file name +into the kill ring. With a zero prefix arg, copies absolute file names. + ++++ +*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode. + +The mode toggling command is bound to M-o. A new command +dired-mark-omitted, bound to * O, marks omitted files. The variable +dired-omit-files-p is obsoleted, use the mode toggling function +instead. + ++++ +*** The variables dired-free-space-program and dired-free-space-args +have been renamed to directory-free-space-program and +directory-free-space-args, and they now apply whenever Emacs puts a +directory listing into a buffer. + +** Comint changes: --- -** The new global minor mode `file-name-shadow-mode' modifies the way -filenames being entered by the user in the minibuffer are displayed, so -that it's clear when part of the entered filename will be ignored due to -emacs' filename parsing rules. The ignored portion can be made dim, -invisible, or otherwise less visually noticable. The display method may -be displayed by customizing the variable `file-name-shadow-properties'. +*** The comint prompt can now be made read-only, using the new user +option `comint-prompt-read-only'. This is not enabled by default, +except in IELM buffers. The read-only status of IELM prompts can be +controlled with the new user option `ielm-prompt-read-only', which +overrides `comint-prompt-read-only'. + +The new commands `comint-kill-whole-line' and `comint-kill-region' +support editing comint buffers with read-only prompts. + +`comint-kill-whole-line' is like `kill-whole-line', but ignores both +read-only and field properties. Hence, it always kill entire +lines, including any prompts. + +`comint-kill-region' is like `kill-region', except that it ignores +read-only properties, if it is safe to do so. This means that if any +part of a prompt is deleted, then the entire prompt must be deleted +and that all prompts must stay at the beginning of a line. If this is +not the case, then `comint-kill-region' behaves just like +`kill-region' if read-only properties are involved: it copies the text +to the kill-ring, but does not delete it. + ++++ +*** The new command `comint-insert-previous-argument' in comint-derived +modes (shell-mode, etc.) inserts arguments from previous command lines, +like bash's `ESC .' binding. It is bound by default to `C-c .', but +otherwise behaves quite similarly to the bash version. + ++++ +*** `comint-use-prompt-regexp-instead-of-fields' has been renamed +`comint-use-prompt-regexp'. The old name has been kept as an alias, +but declared obsolete. + +** M-x Compile changes: --- -** The ruler-mode.el library provides a minor mode for displaying an -"active" ruler in the header line. You can use the mouse to visually -change the `fill-column', `window-margins' and `tab-stop-list' -settings. +*** M-x compile has become more robust and reliable + +Quite a few more kinds of messages are recognized. Messages that are +recognized as warnings or informational come in orange or green, instead of +red. Informational messages are by default skipped with `next-error' +(controlled by `compilation-skip-threshold'). + +Location data is collected on the fly as the *compilation* buffer changes. +This means you could modify messages to make them point to different files. +This also means you can not go to locations of messages you may have deleted. + +The variable `compilation-error-regexp-alist' has now become customizable. If +you had added your own regexps to this, you'll probably need to include a +leading `^', otherwise they'll match anywhere on a line. There is now also a +`compilation-mode-font-lock-keywords' and it nicely handles all the checks +that configure outputs and -o options so you see at a glance where you are. + +The new file etc/compilation.txt gives examples of each type of message. + ++++ +*** New user option `compilation-environment'. +This option allows you to specify environment variables for inferior +compilation processes without affecting the environment that all +subprocesses inherit. + ++++ +*** New user option `compilation-disable-input'. +If this is non-nil, send end-of-file as compilation process input. + ++++ +*** New options `next-error-highlight' and `next-error-highlight-no-select' +specify the method of highlighting of the corresponding source line +in new face `next-error'. + ++++ +*** A new minor mode `next-error-follow-minor-mode' can be used in +compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the +modes that can use `next-error'). In this mode, cursor motion in the +buffer causes automatic display in another window of the corresponding +matches, compilation errors, etc. This minor mode can be toggled with +C-c C-f. + ++++ +*** When the left fringe is displayed, an arrow points to current message in +the compilation buffer. + ++++ +*** The new variable `compilation-context-lines' controls lines of leading +context before the current message. If nil and the left fringe is displayed, +it doesn't scroll the compilation output window. If there is no left fringe, +no arrow is displayed and a value of nil means display the message at the top +of the window. + +** Occur mode changes: + ++++ +*** In the *Occur* buffer, `o' switches to it in another window, and +C-o displays the current line's occurrence in another window without +switching to it. + ++++ +*** You can now use next-error (C-x `) and previous-error to advance to +the next/previous matching line found by M-x occur. + ++++ +*** The new command `multi-occur' is just like `occur', except it can +search multiple buffers. There is also a new command +`multi-occur-by-filename-regexp' which allows you to specify the +buffers to search by their filename. Internally, Occur mode has been +rewritten, and now uses font-lock, among other changes. + +** Grep changes: + ++++ +*** Grep has been decoupled from compilation mode setup. + +There's a new separate package grep.el, with its own submenu and +customization group. --- -** The minor mode Reveal mode makes text visible on the fly as you -move your cursor into hidden region of the buffer. -It should work with any package that uses overlays to hide parts -of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... +*** M-x grep provides highlighting support. -There is also Global Reveal mode which affects all buffers. +Hits are fontified in green, and hits in binary files in orange. Grep buffers +can be saved and automatically revisited. + ++++ +*** `grep-find' is now also available under the name `find-grep' where +people knowing `find-grep-dired' would probably expect it. --- -** The new package ibuffer provides a powerful, completely -customizable replacement for buff-menu.el. +*** The new variables `grep-window-height', `grep-auto-highlight', and +`grep-scroll-output' override the corresponding compilation mode +settings, for grep commands only. -** The new package table.el implements editable, WYSIWYG, embedded -`text tables' in Emacs buffers. It simulates the effect of putting -these tables in a special major mode. The package emulates WYSIWYG -table editing available in modern word processors. The package also -can generate a table source in typesetting and markup languages such -as latex and html from the visually laid out text table. ++++ +*** New option `grep-highlight-matches' highlightes matches in *grep* +buffer. It uses a special feature of some grep programs which accept +--color option to output markers around matches. When going to the next +match with `next-error' the exact match is highlighted in the source +buffer. Otherwise, if `grep-highlight-matches' is nil, the whole +source line is highlighted. +++ -** SES mode (ses-mode) is a new major mode for creating and editing -spreadsheet files. Besides the usual Emacs features (intuitive command -letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers -viral immunity and import/export of tab-separated values. +*** New key bindings in grep output window: +SPC and DEL scrolls window up and down. C-n and C-p moves to next and +previous match in the grep window. RET jumps to the source line of +the current match. `n' and `p' shows next and previous match in +other window, but does not switch buffer. `{' and `}' jumps to the +previous or next file in the grep output. TAB also jumps to the next +file. + ++++ +*** M-x grep now tries to avoid appending `/dev/null' to the command line +by using GNU grep `-H' option instead. M-x grep automatically +detects whether this is possible or not the first time it is invoked. +When `-H' is used, the grep command line supplied by the user is passed +unchanged to the system to execute, which allows more complicated +command lines to be used than was possible before. + +** X Windows Support: + ++++ +*** Emacs now supports drag and drop for X. Dropping a file on a window + opens it, dropping text inserts the text. Dropping a file on a dired + buffer copies or moves the file to that directory. + ++++ +*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). +The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', +and `x-super-keysym' can be used to choose which keysyms Emacs should +use for the modifiers. For example, the following two lines swap +Meta and Alt: + (setq x-alt-keysym 'meta) + (setq x-meta-keysym 'alt) + ++++ +*** The X resource useXIM can be used to turn off use of XIM, which can +speed up Emacs with slow networking to the X server. + +If the configure option `--without-xim' was used to turn off use of +XIM by default, the X resource useXIM can be used to turn it on. --- -** Support for `magic cookie' standout modes has been removed. -Emacs will still work on terminals that require magic cookies in order -to use standout mode, however they will not be able to display -mode-lines in inverse-video. +*** The new variable `x-select-request-type' controls how Emacs +requests X selection. The default value is nil, which means that +Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, +and use the more appropriately result. --- -** The obsolete C mode (c-mode.el) has been removed to avoid problems -with Custom. +*** The scrollbar under LessTif or Motif has a smoother drag-scrolling. +On the other hand, the size of the thumb does not represent the actual +amount of text shown any more (only a crude approximation of it). -** New package benchmark.el contains simple support for convenient -timing measurements of code (including the garbage collection component). +** Xterm support: - -* Lisp Changes in Emacs 21.4 +--- +*** Emacs now responds to mouse-clicks on the mode-line, header-line and +display margin, when run in an xterm. -** The escape sequence \s is now interpreted as a SPACE character, -unless it is followed by a `-' in a character constant (e.g. ?\s-A), -in which case it is still interpreted as the super modifier. -In strings, \s is always interpreted as a space. +--- +*** Improved key bindings support when running in an xterm. +When emacs is running in an xterm more key bindings are available. The +following should work: +{C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}. +These key bindings work on xterm from X.org 6.8, they might not work on +some older versions of xterm, or on some proprietary versions. + +** Character terminal color support changes: -** New function `set-process-filter-multibyte' sets the multibyteness -of a string given to a process's filter. ++++ +*** The new command-line option --color=MODE lets you specify a standard +mode for a tty color support. It is meant to be used on character +terminals whose capabilities are not set correctly in the terminal +database, or with terminal emulators which support colors, but don't +set the TERM environment variable to a name of a color-capable +terminal. "emacs --color" uses the same color commands as GNU `ls' +when invoked with "ls --color", so if your terminal can support colors +in "ls --color", it will support "emacs --color" as well. See the +user manual for the possible values of the MODE parameter. -** New function `process-filter-multibyte-p' returns t if -a string given to a process's filter is multibyte. +--- +*** Emacs now supports several character terminals which provide more +than 8 colors. For example, for `xterm', 16-color, 88-color, and +256-color modes are supported. Emacs automatically notes at startup +the extended number of colors, and defines the appropriate entries for +all of these colors. -** A filter function of a process is called with a multibyte string if -the filter's multibyteness is t. That multibyteness is decided by the -value of `default-enable-multibyte-characters' when the process is -created and can be changed later by `set-process-filter-multibyte'. ++++ +*** Emacs now uses the full range of available colors for the default +faces when running on a color terminal, including 16-, 88-, and +256-color xterms. This means that when you run "emacs -nw" on an +88-color or 256-color xterm, you will see essentially the same face +colors as on X. -** If a process's coding system is raw-text or no-conversion and its -buffer is multibyte, the output of the process is at first converted -to multibyte by `string-to-multibyte' then inserted in the buffer. -Previously, it was converted to multibyte by `string-as-multibyte', -which was not compatible with the behaviour of file reading. +--- +*** There's a new support for colors on `rxvt' terminal emulator. + +* New Modes and Packages in Emacs 22.1 -** New function `string-to-multibyte' converts a unibyte string to a -multibyte string with the same individual character codes. +** Rcirc is now part of the Emacs distribution. -** New variables `gc-elapsed' and `gcs-done' provide extra information -on garbage collection. +Rcirc is an Internet relay chat (IRC) client. It supports +simultaneous connections to multiple IRC servers. Each discussion +takes place in its own buffer. For each connection you can join +several channels (many-to-many) and participate in private +(one-to-one) chats. Both channel and private chats are contained in +separate buffers. -** New function `decode-coding-inserted-region' decodes a region as if -it is read from a file without decoding. +To start an IRC session, type M-x irc, and follow the prompts for +server, port, nick and initial channels. -** New function `optimize-char-coding-system-table' can be called -after making changes to `char-coding-system-table'. +--- +** Newsticker is now part of the Emacs distribution. -** New function `langinfo' accesses locale information. +Newsticker asynchronously retrieves headlines (RSS) from a list of news +sites, prepares these headlines for reading, and allows for loading the +corresponding articles in a web browser. Its documentation is in a +separate manual. -** `save-selected-window' now saves and restores the selected window -of every frame. This way, it restores everything that can be changed -by calling `select-window'. ++++ +** savehist saves minibuffer histories between sessions. +To use this feature, turn on savehist-mode in your `.emacs' file. -** `easy-menu-define' now allows you to use nil for the symbol name -if you don't need to give the menu a name. If you install the menu -into other keymaps right away (MAPS is non-nil), it usually doesn't -need to have a name. ++++ +** Filesets are collections of files. You can define a fileset in +various ways, such as based on a directory tree or based on +program files that include other program files. -** Byte compiler changes: +Once you have defined a fileset, you can perform various operations on +all the files in it, such as visiting them or searching and replacing +in them. -*** `(featurep 'xemacs)' is treated by the compiler as nil. This -helps to avoid noisy compiler warnings in code meant to run under both -Emacs and XEmacs and may sometimes make the result significantly more -efficient. Since byte code from recent versions of XEmacs won't -generally run in Emacs and vice versa, this optimization doesn't lose -you anything. ++++ +** Calc is now part of the Emacs distribution. + +Calc is an advanced desk calculator and mathematical tool written in +Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc +can be started with `C-x * *'. The Calc manual is separate from the +Emacs manual; within Emacs, type "C-h i m calc RET" to read the +manual. A reference card is available in `etc/calccard.tex' and +`etc/calccard.ps'. + +--- +** The new package ibuffer provides a powerful, completely +customizable replacement for buff-menu.el. + +--- +** Ido mode is now part of the Emacs distribution. + +The ido (interactively do) package is an extension of the iswitchb +package to do interactive opening of files and directories in addition +to interactive buffer switching. Ido is a superset of iswitchb (with +a few exceptions), so don't enable both packages. + ++++ +** Image files are normally visited in Image mode, which lets you toggle +between viewing the image and viewing the text using C-c C-c. + +--- +** CUA mode is now part of the Emacs distribution. + +The new cua package provides CUA-like keybindings using C-x for +cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo. +With cua, the region can be set and extended using shifted movement +keys (like pc-selection-mode) and typed text replaces the active +region (like delete-selection-mode). Do not enable these modes with +cua-mode. Customize the variable `cua-mode' to enable cua. + +In addition, cua provides unified rectangle support with visible +rectangle highlighting: Use C-return to start a rectangle, extend it +using the movement commands (or mouse-3), and cut or copy it using C-x +or C-c (using C-w and M-w also works). + +Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to +fill it with blanks or another character, use M-u or M-l to upcase or +downcase the rectangle, use M-i to increment the numbers in the +rectangle, use M-n to fill the rectangle with a numeric sequence (such +as 10 20 30...), use M-r to replace a regexp in the rectangle, and use +M-' or M-/ to restrict command on the rectangle to a subset of the +rows. See the commentary in cua-base.el for more rectangle commands. + +Cua also provides unified support for registers: Use a numeric +prefix argument between 0 and 9, i.e. M-0 .. M-9, for C-x, C-c, and +C-v to cut or copy into register 0-9, or paste from register 0-9. + +The last text deleted (not killed) is automatically stored in +register 0. This includes text deleted by typing text. + +Finally, cua provides a global mark which is set using S-C-space. +When the global mark is active, any text which is cut or copied is +automatically inserted at the global mark position. See the +commentary in cua-base.el for more global mark related commands. + +The features of cua also works with the standard emacs bindings for +kill, copy, yank, and undo. If you want to use cua mode, but don't +want the C-x, C-c, C-v, and C-z bindings, you can customize the +`cua-enable-cua-keys' variable. + +Note: This version of cua mode is not backwards compatible with older +versions of cua.el and cua-mode.el. To ensure proper operation, you +must remove older versions of cua.el or cua-mode.el as well as the +loading and customization of those packages from the .emacs file. + ++++ +** Org mode is now part of the Emacs distribution + +Org mode is a mode for keeping notes, maintaining ToDo lists, and +doing project planning with a fast and effective plain-text system. +It also contains a plain-text table editor with spreadsheet-like +capabilities. + +The Org mode table editor can be integrated into any major mode by +activating the minor Orgtbl-mode. + +The documentation for org-mode is in a separate manual; within Emacs, +type "C-h i m org RET" to read that manual. A reference card is +available in `etc/orgcard.tex' and `etc/orgcard.ps'. + ++++ +** The new package dns-mode.el add syntax highlight of DNS master files. +The key binding C-c C-s (`dns-mode-soa-increment-serial') can be used +to increment the SOA serial. + +--- +** The new global minor mode `file-name-shadow-mode' modifies the way +filenames being entered by the user in the minibuffer are displayed, so +that it's clear when part of the entered filename will be ignored due to +emacs' filename parsing rules. The ignored portion can be made dim, +invisible, or otherwise less visually noticable. The display method can +be displayed by customizing the variable `file-name-shadow-properties'. + ++++ +** The new package flymake.el does on-the-fly syntax checking of program +source files. See the Flymake's Info manual for more details. + ++++ +** The new keypad setup package provides several common bindings for +the numeric keypad which is available on most keyboards. The numeric +keypad typically has the digits 0 to 9, a decimal point, keys marked ++, -, /, and *, an Enter key, and a NumLock toggle key. The keypad +package only controls the use of the digit and decimal keys. + +By customizing the variables `keypad-setup', `keypad-shifted-setup', +`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by +using the function `keypad-setup', you can rebind all digit keys and +the decimal key of the keypad in one step for each of the four +possible combinations of the Shift key state (not pressed/pressed) and +the NumLock toggle state (off/on). + +The choices for the keypad keys in each of the above states are: +`Plain numeric keypad' where the keys generates plain digits, +`Numeric keypad with decimal key' where the character produced by the +decimal key can be customized individually (for internationalization), +`Numeric Prefix Arg' where the keypad keys produce numeric prefix args +for emacs editing commands, `Cursor keys' and `Shifted Cursor keys' +where the keys work like (shifted) arrow keys, home/end, etc., and +`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.) +are left unspecified and can be bound individually through the global +or local keymaps. + ++++ +** The new kmacro package provides a simpler user interface to +emacs' keyboard macro facilities. + +Basically, it uses two function keys (default F3 and F4) like this: +F3 starts a macro, F4 ends the macro, and pressing F4 again executes +the last macro. While defining the macro, F3 inserts a counter value +which automatically increments every time the macro is executed. + +There is now a keyboard macro ring which stores the most recently +defined macros. + +The C-x C-k sequence is now a prefix for the kmacro keymap which +defines bindings for moving through the keyboard macro ring, +C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e, +manipulating the macro counter and format via C-x C-k C-c, +C-x C-k C-a, and C-x C-k C-f. See the commentary in kmacro.el +for more commands. + +The normal macro bindings C-x (, C-x ), and C-x e now interfaces to +the keyboard macro ring. + +The C-x e command now automatically terminates the current macro +before calling it, if used while defining a macro. + +In addition, when ending or calling a macro with C-x e, the macro can +be repeated immediately by typing just the `e'. You can customize +this behavior via the variables kmacro-call-repeat-key and +kmacro-call-repeat-with-arg. + +Keyboard macros can now be debugged and edited interactively. +C-x C-k SPC steps through the last keyboard macro one key sequence +at a time, prompting for the actions to take. + +--- +** New minor mode, Visible mode, toggles invisibility in the current buffer. +When enabled, it makes all invisible text visible. When disabled, it +restores the previous value of `buffer-invisibility-spec'. + ++++ +** The wdired.el package allows you to use normal editing commands on Dired +buffers to change filenames, permissions, etc... + ++++ +** The new package longlines.el provides a minor mode for editing text +files composed of long lines, based on the `use-hard-newlines' +mechanism. The long lines are broken up by inserting soft newlines, +which are automatically removed when saving the file to disk or +copying into the kill ring, clipboard, etc. By default, Longlines +mode inserts soft newlines automatically during editing, a behavior +referred to as "soft word wrap" in other text editors. This is +similar to Refill mode, but more reliable. To turn the word wrap +feature off, set `longlines-auto-wrap' to nil. + ++++ +** The printing package is now part of the Emacs distribution. + +If you enable the printing package by including (require 'printing) in +the .emacs file, the normal Print item on the File menu is replaced +with a Print sub-menu which allows you to preview output through +ghostview, use ghostscript to print (if you don't have a PostScript +printer) or send directly to printer a PostScript code generated by +`ps-print' package. Use M-x pr-help for more information. + +--- +** The minor mode Reveal mode makes text visible on the fly as you +move your cursor into hidden regions of the buffer. +It should work with any package that uses overlays to hide parts +of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... + +There is also Global Reveal mode which affects all buffers. + +--- +** The ruler-mode.el library provides a minor mode for displaying an +"active" ruler in the header line. You can use the mouse to visually +change the `fill-column', `window-margins' and `tab-stop-list' +settings. + ++++ +** SES mode (ses-mode) is a new major mode for creating and editing +spreadsheet files. Besides the usual Emacs features (intuitive command +letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers +viral immunity and import/export of tab-separated values. + ++++ +** The new global minor mode `size-indication-mode' (off by default) +shows the size of accessible part of the buffer on the mode line. + ++++ +** The new package table.el implements editable, WYSIWYG, embedded +`text tables' in Emacs buffers. It simulates the effect of putting +these tables in a special major mode. The package emulates WYSIWYG +table editing available in modern word processors. The package also +can generate a table source in typesetting and markup languages such +as latex and html from the visually laid out text table. + +** The tumme.el package allows you to easily view, tag and in other ways +manipulate image files and their thumbnails, using dired as the main interface. +Tumme provides functionality to generate simple image galleries. + ++++ +** Tramp is now part of the distribution. + +This package is similar to Ange-FTP: it allows you to edit remote +files. But whereas Ange-FTP uses FTP to access the remote host, +Tramp uses a shell connection. The shell connection is always used +for filename completion and directory listings and suchlike, but for +the actual file transfer, you can choose between the so-called +`inline' methods (which transfer the files through the shell +connection using base64 or uu encoding) and the `out-of-band' methods +(which invoke an external copying program such as `rcp' or `scp' or +`rsync' to do the copying). + +Shell connections can be acquired via `rsh', `ssh', `telnet' and also +`su' and `sudo'. Ange-FTP is still supported via the `ftp' method. + +If you want to disable Tramp you should set + + (setq tramp-default-method "ftp") + +--- +** The URL package (which had been part of W3) is now part of Emacs. + +--- +** `cfengine-mode' is a major mode for editing GNU Cfengine +configuration files. + ++++ +** The new package conf-mode.el handles thousands of configuration files, with +varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, +var : value, var value or keyword var value) and sections ([section] or +section { }). Many files under /etc/, or with suffixes like .cf through +.config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are +recognized. + +--- +** GDB-Script-mode is used for files like .gdbinit. + ++++ +** The new python.el package is used to edit Python and Jython programs. + +--- +** The TCL package tcl-mode.el was replaced by tcl.el. +This was actually done in Emacs-21.1, and was not documented. + +** The new package scroll-lock.el provides the Scroll Lock minor mode +for pager-like scrolling. Keys which normally move point by line or +paragraph will scroll the buffer by the respective amount of lines +instead and point will be kept vertically fixed relative to window +boundaries during scrolling. + +* Changes in Specialized Modes and Packages in Emacs 22.1: + +** Changes in Hi Lock: + ++++ +*** hi-lock-mode now only affects a single buffer, and a new function +`global-hi-lock-mode' enables Hi Lock in all buffers. By default, if +hi-lock-mode is used in what appears to be the initialization file, a +warning message suggests to use global-hi-lock-mode instead. However, +if the new variable `hi-lock-archaic-interface-deduce' is non-nil, +using hi-lock-mode in an initialization file will turn on Hi Lock in all +buffers and no warning will be issued (for compatibility with the +behavior in older versions of Emacs). + +** Changes in Allout + +*** Topic cryptography added, enabling easy gpg topic encryption and +decryption. Per-topic basis enables interspersing encrypted-text and +clear-text within a single file to your hearts content, using symmetric +and/or public key modes. Time-limited key caching, user-provided +symmetric key hinting and consistency verification, auto-encryption of +pending topics on save, and more, make it easy to use encryption in +powerful ways. + +*** many substantial fixes and refinements, including: + + - repaired inhibition of inadvertent edits to concealed text + - repaired retention of topic body hanging indent upon topic depth shifts + - prevent "containment discontinuities" where a topic is shifted deeper + than the offspring-depth of its container + - easy to adopt the distinctive bullet of a topic in a topic created + relative to it, or select a new one, or use the common topic bullet + - plain bullets, by default, now alternate between only two characters + ('.' and ','), yielding less cluttered outlines + - many internal fixes + - version number incremented to 2.1 + +** The variable `woman-topic-at-point' was renamed +to `woman-use-topic-at-point' and behaves differently: if this +variable is non-nil, the `woman' command uses the word at point +automatically, without asking for a confirmation. Otherwise, the word +at point is suggested as default, but not inserted at the prompt. + +--- +** Changes to cmuscheme + +*** Emacs now offers to start Scheme if the user tries to +evaluate a Scheme expression but no Scheme subprocess is running. + +*** If a file `.emacs_NAME' (where NAME is the name of the Scheme interpreter) +exists in the user's home directory or in ~/.emacs.d, its +contents are sent to the Scheme subprocess upon startup. + +*** There are new commands to instruct the Scheme interpreter to trace +procedure calls (`scheme-trace-procedure') and to expand syntactic forms +(`scheme-expand-current-form'). The commands actually sent to the Scheme +subprocess are controlled by the user options `scheme-trace-command', +`scheme-untrace-command' and `scheme-expand-current-form'. + +--- +** Makefile mode has submodes for automake, gmake, makepp and BSD make. + +The former two couldn't be differentiated before, and the latter two +are new. Font-locking is robust now and offers new customizable +faces. + ++++ +** In Outline mode, `hide-body' no longer hides lines at the top +of the file that precede the first header line. + ++++ +** Telnet now prompts you for a port number with C-u M-x telnet. + +--- +** The terminal emulation code in term.el has been improved; it can +run most curses applications now. + ++++ +** M-x diff uses Diff mode instead of Compilation mode. + ++++ +** You can now customize `fill-nobreak-predicate' to control where +filling can break lines. The value is now normally a list of +functions, but it can also be a single function, for compatibility. + +Emacs provide two predicates, `fill-single-word-nobreak-p' and +`fill-french-nobreak-p', for use as the value of +`fill-nobreak-predicate'. + +--- +** M-x view-file and commands that use it now avoid interfering +with special modes such as Tar mode. + +--- +** Commands `winner-redo' and `winner-undo', from winner.el, are now +bound to C-c and C-c , respectively. This is an +incompatible change. + +--- +** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. + ++++ +** M-x compare-windows now can automatically skip non-matching text to +resync points in both windows. + ++++ +** New user option `add-log-always-start-new-record'. + +When this option is enabled, M-x add-change-log-entry always +starts a new record regardless of when the last record is. + +--- +** PO translation files are decoded according to their MIME headers +when Emacs visits them. + +** Info mode changes: + ++++ +*** A numeric prefix argument of `info' selects an Info buffer +with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). + ++++ +*** isearch in Info uses Info-search and searches through multiple nodes. + +Before leaving the initial Info node isearch fails once with the error +message [initial node], and with subsequent C-s/C-r continues through +other nodes. When isearch fails for the rest of the manual, it wraps +aroung the whole manual to the top/final node. The user option +`Info-isearch-search' controls whether to use Info-search for isearch, +or the default isearch search function that wraps around the current +Info node. + +--- +*** New search commands: `Info-search-case-sensitively' (bound to S), +`Info-search-backward', and `Info-search-next' which repeats the last +search without prompting for a new search string. + ++++ +*** New command `Info-history-forward' (bound to r and new toolbar icon) +moves forward in history to the node you returned from after using +`Info-history-back' (renamed from `Info-last'). + +--- +*** New command `Info-history' (bound to L) displays a menu of visited nodes. + +--- +*** New command `Info-toc' (bound to T) creates a node with table of contents +from the tree structure of menus of the current Info file. + ++++ +*** New command `info-apropos' searches the indices of the known +Info files on your system for a string, and builds a menu of the +possible matches. + +--- +*** New command `Info-copy-current-node-name' (bound to w) copies +the current Info node name into the kill ring. With a zero prefix +arg, puts the node name inside the `info' function call. + ++++ +*** New face `info-xref-visited' distinguishes visited nodes from unvisited +and a new option `Info-fontify-visited-nodes' to control this. + +--- +*** http and ftp links in Info are now operational: they look like cross +references and following them calls `browse-url'. + ++++ +*** Info now hides node names in menus and cross references by default. + +If you prefer the old behavior, you can set the new user option +`Info-hide-note-references' to nil. + +--- +*** Images in Info pages are supported. + +Info pages show embedded images, in Emacs frames with image support. +Info documentation that includes images, processed with makeinfo +version 4.7 or newer, compiles to Info pages with embedded images. + ++++ +*** The default value for `Info-scroll-prefer-subnodes' is now nil. + +--- +*** `Info-index' offers completion. + +** Lisp mode changes: + +--- +*** Lisp mode now uses `font-lock-doc-face' for doc strings. + ++++ +*** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point. + +*** New features in evaluation commands + ++++ +**** The function `eval-defun' (C-M-x) called on defface reinitializes +the face to the value specified in the defface expression. + ++++ +**** Typing C-x C-e twice prints the value of the integer result +in additional formats (octal, hexadecimal, character) specified +by the new function `eval-expression-print-format'. The same +function also defines the result format for `eval-expression' (M-:), +`eval-print-last-sexp' (C-j) and some edebug evaluation functions. + ++++ +** CC mode changes. + +*** The CC Mode manual has been extensively revised. +The information about using CC Mode has been separated from the larger +and more difficult chapters about configuration. + +*** Changes in Key Sequences +**** c-toggle-auto-hungry-state is no longer bound to C-c C-t. + +**** c-toggle-hungry-state is no longer bound to C-c C-d. +This binding has been taken over by c-hungry-delete-forwards. + +**** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline. +c-toggle-auto-state remains as an alias. + +**** The new commands c-hungry-backspace and c-hungry-delete-forwards +have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and +C-c C-d (or C-c C- or C-c ) respectively. These +commands delete entire blocks of whitespace with a single +key-sequence. [N.B. "DEL" is the key.] + +**** The new command c-toggle-electric-mode is bound to C-c C-l. + +**** The new command c-subword-mode is bound to C-c C-w. + +*** C-c C-s (`c-show-syntactic-information') now highlights the anchor +position(s). + +*** New Minor Modes +**** Electric Minor Mode toggles the electric action of non-alphabetic keys. +The new command c-toggle-electric-mode is bound to C-c C-l. Turning the +mode off can be helpful for editing chaotically indented code and for +users new to CC Mode, who sometimes find electric indentation +disconcerting. Its current state is displayed in the mode line with an +'l', e.g. "C/al". + +**** Subword Minor Mode makes Emacs recognize word boundaries at upper case +letters in StudlyCapsIdentifiers. You enable this feature by C-c C-w. It can +also be used in non-CC Mode buffers. :-) Contributed by Masatake YAMATO. + +*** New clean-ups + +**** `comment-close-slash'. +With this clean-up, a block (i.e. c-style) comment can be terminated by +typing a slash at the start of a line. + +**** `c-one-liner-defun' +This clean-up compresses a short enough defun (for example, an AWK +pattern/action pair) onto a single line. "Short enough" is configurable. + +*** Font lock support. +CC Mode now provides font lock support for all its languages. This +supersedes the font lock patterns that have been in the core font lock +package for C, C++, Java and Objective-C. Like indentation, font +locking is done in a uniform way across all languages (except the new +AWK mode - see below). That means that the new font locking will be +different from the old patterns in various details for most languages. + +The main goal of the font locking in CC Mode is accuracy, to provide a +dependable aid in recognizing the various constructs. Some, like +strings and comments, are easy to recognize while others like +declarations and types can be very tricky. CC Mode can go to great +lengths to recognize declarations and casts correctly, especially when +the types aren't recognized by standard patterns. This is a fairly +demanding analysis which can be slow on older hardware, and it can +therefore be disabled by choosing a lower decoration level with the +variable font-lock-maximum-decoration. + +Note that the most demanding font lock level has been tuned with lazy +fontification in mind; Just-In-Time-Lock mode should be enabled for +the highest font lock level (by default, it is). Fontifying a file +with several thousand lines in one go can take the better part of a +minute. + +**** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables +are now used by CC Mode to recognize identifiers that are certain to +be types. (They are also used in cases that aren't related to font +locking.) At the maximum decoration level, types are often recognized +properly anyway, so these variables should be fairly restrictive and +not contain patterns for uncertain types. + +**** Support for documentation comments. +There is a "plugin" system to fontify documentation comments like +Javadoc and the markup within them. It's independent of the host +language, so it's possible to e.g. turn on Javadoc font locking in C +buffers. See the variable c-doc-comment-style for details. + +Currently three kinds of doc comment styles are recognized: Sun's +Javadoc, Autodoc (which is used in Pike) and GtkDoc (used in C). (The +last was contributed by Masatake YAMATO). This is by no means a +complete list of the most common tools; if your doc comment extractor +of choice is missing then please drop a note to bug-cc-mode@gnu.org. + +**** Better handling of C++ templates. +As a side effect of the more accurate font locking, C++ templates are +now handled much better. The angle brackets that delimit them are +given parenthesis syntax so that they can be navigated like other +parens. + +This also improves indentation of templates, although there still is +work to be done in that area. E.g. it's required that multiline +template clauses are written in full and then refontified to be +recognized, and the indentation of nested templates is a bit odd and +not as configurable as it ought to be. + +**** Improved handling of Objective-C and CORBA IDL. +Especially the support for Objective-C and IDL has gotten an overhaul. +The special "@" declarations in Objective-C are handled correctly. +All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and +handled correctly, also wrt indentation. + +*** Support for the AWK language. +Support for the AWK language has been introduced. The implementation is +based around GNU AWK version 3.1, but it should work pretty well with +any AWK. As yet, not all features of CC Mode have been adapted for AWK. +Here is a summary: + +**** Indentation Engine +The CC Mode indentation engine fully supports AWK mode. + +AWK mode handles code formatted in the conventional AWK fashion: `{'s +which start actions, user-defined functions, or compound statements are +placed on the same line as the associated construct; the matching `}'s +are normally placed under the start of the respective pattern, function +definition, or structured statement. + +The predefined line-up functions haven't yet been adapted for AWK +mode, though some of them may work serendipitously. There shouldn't +be any problems writing custom indentation functions for AWK mode. + +**** Font Locking +There is a single level of font locking in AWK mode, rather than the +three distinct levels the other modes have. There are several +idiosyncrasies in AWK mode's font-locking due to the peculiarities of +the AWK language itself. + +**** Comment and Movement Commands +These commands all work for AWK buffers. The notion of "defun" has +been augmented to include AWK pattern-action pairs - the standard +"defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this +extended definition. + +**** "awk" style, Auto-newline Insertion and Clean-ups +A new style, "awk" has been introduced, and this is now the default +style for AWK code. With auto-newline enabled, the clean-up +c-one-liner-defun (see above) is useful. + +*** New syntactic symbols in IDL mode. +The top level constructs "module" and "composition" (from CIDL) are +now handled like "namespace" in C++: They are given syntactic symbols +module-open, module-close, inmodule, composition-open, +composition-close, and incomposition. + +*** New functions to do hungry delete without enabling hungry delete mode. +The new functions `c-hungry-backspace' and `c-hungry-delete-forward' +provide hungry deletion without having to toggle a mode. They are +bound to C-c C-DEL and C-c C-d (and several variants, for the benefit +of different keyboard setups. See "Changes in key sequences" above). + +*** Better control over `require-final-newline'. + +The variable `c-require-final-newline' specifies which of the modes +implemented by CC mode should insert final newlines. Its value is a +list of modes, and only those modes should do it. By default the list +includes C, C++ and Objective-C modes. + +Whichever modes are in this list will set `require-final-newline' +based on `mode-require-final-newline'. + +*** Format change for syntactic context elements. + +The elements in the syntactic context returned by `c-guess-basic-syntax' +and stored in `c-syntactic-context' has been changed somewhat to allow +attaching more information. They are now lists instead of single cons +cells. E.g. a line that previously had the syntactic analysis + +((inclass . 11) (topmost-intro . 13)) + +is now analyzed as + +((inclass 11) (topmost-intro 13)) + +In some cases there are more than one position given for a syntactic +symbol. + +This change might affect code that calls `c-guess-basic-syntax' +directly, and custom lineup functions if they use +`c-syntactic-context'. However, the argument given to lineup +functions is still a single cons cell with nil or an integer in the +cdr. + +*** API changes for derived modes. + +There have been extensive changes "under the hood" which can affect +derived mode writers. Some of these changes are likely to cause +incompatibilities with existing derived modes, but on the other hand +care has now been taken to make it possible to extend and modify CC +Mode with less risk of such problems in the future. + +**** New language variable system. +These are variables whose values vary between CC Mode's different +languages. See the comment blurb near the top of cc-langs.el. + +**** New initialization functions. +The initialization procedure has been split up into more functions to +give better control: `c-basic-common-init', `c-font-lock-init', and +`c-init-language-vars'. + +*** Changes in analysis of nested syntactic constructs. +The syntactic analysis engine has better handling of cases where +several syntactic constructs appear nested on the same line. They are +now handled as if each construct started on a line of its own. + +This means that CC Mode now indents some cases differently, and +although it's more consistent there might be cases where the old way +gave results that's more to one's liking. So if you find a situation +where you think that the indentation has become worse, please report +it to bug-cc-mode@gnu.org. + +**** New syntactic symbol substatement-label. +This symbol is used when a label is inserted between a statement and +its substatement. E.g: + + if (x) + x_is_true: + do_stuff(); + +*** Better handling of multiline macros. + +**** Syntactic indentation inside macros. +The contents of multiline #define's are now analyzed and indented +syntactically just like other code. This can be disabled by the new +variable `c-syntactic-indentation-in-macros'. A new syntactic symbol +`cpp-define-intro' has been added to control the initial indentation +inside `#define's. + +**** New lineup function `c-lineup-cpp-define'. + +Now used by default to line up macro continuation lines. The behavior +of this function closely mimics the indentation one gets if the macro +is indented while the line continuation backslashes are temporarily +removed. If syntactic indentation in macros is turned off, it works +much line `c-lineup-dont-change', which was used earlier, but handles +empty lines within the macro better. + +**** Automatically inserted newlines continues the macro if used within one. +This applies to the newlines inserted by the auto-newline mode, and to +`c-context-line-break' and `c-context-open-line'. + +**** Better alignment of line continuation backslashes. +`c-backslash-region' tries to adapt to surrounding backslashes. New +variable `c-backslash-max-column' puts a limit on how far out +backslashes can be moved. + +**** Automatic alignment of line continuation backslashes. +This is controlled by the new variable `c-auto-align-backslashes'. It +affects `c-context-line-break', `c-context-open-line' and newlines +inserted in Auto-Newline mode. + +**** Line indentation works better inside macros. +Regardless whether syntactic indentation and syntactic indentation +inside macros are enabled or not, line indentation now ignores the +line continuation backslashes. This is most noticeable when syntactic +indentation is turned off and there are empty lines (save for the +backslash) in the macro. + +*** indent-for-comment is more customizable. +The behavior of M-; (indent-for-comment) is now configurable through +the variable `c-indent-comment-alist'. The indentation behavior is +based on the preceding code on the line, e.g. to get two spaces after +#else and #endif but indentation to `comment-column' in most other +cases (something which was hardcoded earlier). + +*** New function `c-context-open-line'. +It's the open-line equivalent of `c-context-line-break'. + +*** New lineup functions + +**** `c-lineup-string-cont' +This lineup function lines up a continued string under the one it +continues. E.g: + +result = prefix + "A message " + "string."; <- c-lineup-string-cont + +**** `c-lineup-cascaded-calls' +Lines up series of calls separated by "->" or ".". + +**** `c-lineup-knr-region-comment' +Gives (what most people think is) better indentation of comments in +the "K&R region" between the function header and its body. + +**** `c-lineup-gcc-asm-reg' +Provides better indentation inside asm blocks. + +**** `c-lineup-argcont' +Lines up continued function arguments after the preceding comma. + +*** Better caching of the syntactic context. +CC Mode caches the positions of the opening parentheses (of any kind) +of the lists surrounding the point. Those positions are used in many +places as anchor points for various searches. The cache is now +improved so that it can be reused to a large extent when the point is +moved. The less it moves, the less needs to be recalculated. + +The effect is that CC Mode should be fast most of the time even when +opening parens are hung (i.e. aren't in column zero). It's typically +only the first time after the point is moved far down in a complex +file that it'll take noticeable time to find out the syntactic +context. + +*** Statements are recognized in a more robust way. +Statements are recognized most of the time even when they occur in an +"invalid" context, e.g. in a function argument. In practice that can +happen when macros are involved. + +*** Improved the way `c-indent-exp' chooses the block to indent. +It now indents the block for the closest sexp following the point +whose closing paren ends on a different line. This means that the +point doesn't have to be immediately before the block to indent. +Also, only the block and the closing line is indented; the current +line is left untouched. + +*** Added toggle for syntactic indentation. +The function `c-toggle-syntactic-indentation' can be used to toggle +syntactic indentation. + +** In sh-script, a continuation line is only indented if the backslash was +preceded by a SPC or a TAB. + +--- +** Perl mode has a new variable `perl-indent-continued-arguments'. + +--- +** The old Octave mode bindings C-c f and C-c i have been changed +to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate +bindings on control characters--thus, C-c C-i C-b is the same as +C-c C-i b, and so on. + +** Fortran mode changes: + +--- +*** Fortran mode does more font-locking by default. Use level 3 +highlighting for the old default. + ++++ +*** Fortran mode has a new variable `fortran-directive-re'. +Adapt this to match the format of any compiler directives you use. +Lines that match are never indented, and are given distinctive font-locking. + ++++ +*** F90 mode and Fortran mode have new navigation commands +`f90-end-of-block', `f90-beginning-of-block', `f90-next-block', +`f90-previous-block', `fortran-end-of-block', +`fortran-beginning-of-block'. + +--- +*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow). +It cannot deal with every code format, but ought to handle a sizeable +majority. + +--- +*** The new function `f90-backslash-not-special' can be used to change +the syntax of backslashes in F90 buffers. + +--- +** Reftex mode changes + ++++ +*** Changes to RefTeX's table of contents + +The new command keys "<" and ">" in the TOC buffer promote/demote the +section at point or all sections in the current region, with full +support for multifile documents. + +The new command `reftex-toc-recenter' (`C-c -') shows the current +section in the TOC buffer without selecting the TOC window. +Recentering can happen automatically in idle time when the option +`reftex-auto-recenter-toc' is turned on. The highlight in the TOC +buffer stays when the focus moves to a different window. A dedicated +frame can show the TOC with the current section always automatically +highlighted. The frame is created and deleted from the toc buffer +with the `d' key. + +The toc window can be split off horizontally instead of vertically. +See new option `reftex-toc-split-windows-horizontally'. + +Labels can be renamed globally from the table of contents using the +key `M-%'. + +The new command `reftex-goto-label' jumps directly to a label +location. + ++++ +*** Changes related to citations and BibTeX database files + +Commands that insert a citation now prompt for optional arguments when +called with a prefix argument. Related new options are +`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'. + +The new command `reftex-create-bibtex-file' creates a BibTeX database +with all entries referenced in the current document. The keys "e" and +"E" allow to produce a BibTeX database file from entries marked in a +citation selection buffer. + +The command `reftex-citation' uses the word in the buffer before the +cursor as a default search string. + +The support for chapterbib has been improved. Different chapters can +now use BibTeX or an explicit `thebibliography' environment. + +The macros which specify the bibliography file (like \bibliography) +can be configured with the new option `reftex-bibliography-commands'. + +Support for jurabib has been added. + ++++ +*** Global index matched may be verified with a user function + +During global indexing, a user function can verify an index match. +See new option `reftex-index-verify-function'. + ++++ +*** Parsing documents with many labels can be sped up. + +Operating in a document with thousands of labels can be sped up +considerably by allowing RefTeX to derive the type of a label directly +from the label prefix like `eq:' or `fig:'. The option +`reftex-trust-label-prefix' needs to be configured in order to enable +this feature. While the speed-up is significant, this may reduce the +quality of the context offered by RefTeX to describe a label. + ++++ +*** Miscellaneous changes + +The macros which input a file in LaTeX (like \input, \include) can be +configured in the new option `reftex-include-file-commands'. + +RefTeX supports global incremental search. + ++++ +** Prolog mode has a new variable `prolog-font-lock-keywords' +to support use of font-lock. + +** HTML/SGML changes: + +--- +*** Emacs now tries to set up buffer coding systems for HTML/XML files +automatically. + ++++ +*** SGML mode has indentation and supports XML syntax. +The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. +When this option is enabled, SGML tags are inserted in XML style, +i.e., there is always a closing tag. +By default, its setting is inferred on a buffer-by-buffer basis +from the file name or buffer contents. + ++++ +*** `xml-mode' is now an alias for `sgml-mode', which has XML support. + +** TeX modes: + ++++ +*** C-c C-c prompts for a command to run, and tries to offer a good default. + ++++ +*** The user option `tex-start-options-string' has been replaced +by two new user options: `tex-start-options', which should hold +command-line options to feed to TeX, and `tex-start-commands' which should hold +TeX commands to use at startup. + +--- +*** verbatim environments are now highlighted in courier by font-lock +and super/sub-scripts are made into super/sub-scripts. + ++++ +*** New major mode Doctex mode, for *.dtx files. + +** BibTeX mode: + +*** The new command `bibtex-url' browses a URL for the BibTeX entry at +point (bound to C-c C-l and mouse-2, RET on clickable fields). + +*** The new command `bibtex-entry-update' (bound to C-c C-u) updates +an existing BibTeX entry by inserting fields that may occur but are not +present. + +*** New `bibtex-entry-format' option `required-fields', enabled by default. + +*** `bibtex-maintain-sorted-entries' can take values `plain', +`crossref', and `entry-class' which control the sorting scheme used +for BibTeX entries. `bibtex-sort-entry-class' controls the sorting +scheme `entry-class'. TAB completion for reference keys and +automatic detection of duplicates does not require anymore that +`bibtex-maintain-sorted-entries' is non-nil. + +*** If the new variable `bibtex-parse-keys-fast' is non-nil, +use fast but simplified algorithm for parsing BibTeX keys. + +*** If the new variable `bibtex-autoadd-commas' is non-nil, +automatically add missing commas at end of BibTeX fields. + +*** The new variable `bibtex-autofill-types' contains a list of entry +types for which fields are filled automatically (if possible). + +*** The new command `bibtex-complete' completes word fragment before +point according to context (bound to M-tab). + +*** The new commands `bibtex-find-entry' and `bibtex-find-crossref' +locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). +Crossref fields are clickable (bound to mouse-2, RET). + +*** In BibTeX mode the command `fill-paragraph' (M-q) fills +individual fields of a BibTeX entry. + +*** The new variables `bibtex-files' and `bibtex-file-path' define a set +of BibTeX files that are searched for entry keys. + +*** The new command `bibtex-validate-globally' checks for duplicate keys +in multiple BibTeX files. + +*** The new command `bibtex-copy-summary-as-kill' pushes summary +of BibTeX entry to kill ring (bound to C-c C-t). + +*** The new variables bibtex-expand-strings and +bibtex-autokey-expand-strings control the expansion of strings when +extracting the content of a BibTeX field. + ++++ +** In Enriched mode, `set-left-margin' and `set-right-margin' are now +by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' +and `C-c C-r'. + +** GUD changes: + ++++ +*** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program +counter to the specified source line (the one where point is). + +--- +*** GUD mode has its own tool bar for controlling execution of the inferior +and other common debugger commands. + ++++ +*** The new package gdb-ui.el provides an enhanced graphical interface to +GDB. You can interact with GDB through the GUD buffer in the usual way, but +there are also further buffers which control the execution and describe the +state of your program. It can separate the input/output of your program from +that of GDB and watches expressions in the speedbar. It also uses features of +Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate +breakpoints. + +Use M-x gdb to start GDB-UI. + +*** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be +toggled independently of normal tooltips with the minor mode +`gud-tooltip-mode'. + ++++ +*** In graphical mode, with a C program, GUD Tooltips have been extended to +display the #define directive associated with an identifier when program is +not executing. + +--- +** GUD mode improvements for jdb: + +*** Search for source files using jdb classpath and class information. +Fast startup since there is no need to scan all source files up front. +There is also no need to create and maintain lists of source +directories to scan. Look at `gud-jdb-use-classpath' and +`gud-jdb-classpath' customization variables documentation. + +*** Supports the standard breakpoint (gud-break, gud-clear) +set/clear operations from Java source files under the classpath, stack +traversal (gud-up, gud-down), and run until current stack finish +(gud-finish). + +*** Supports new jdb (Java 1.2 and later) in addition to oldjdb +(Java 1.1 jdb). + +*** The previous method of searching for source files has been +preserved in case someone still wants/needs to use it. +Set `gud-jdb-use-classpath' to nil. + +*** Added Customization Variables + +**** `gud-jdb-command-name'. What command line to use to invoke jdb. + +**** `gud-jdb-use-classpath'. Allows selection of java source file searching +method: set to t for new method, nil to scan `gud-jdb-directories' for +java sources (previous method). + +**** `gud-jdb-directories'. List of directories to scan and search for Java +classes using the original gud-jdb method (if `gud-jdb-use-classpath' +is nil). + +*** Minor Improvements + +**** The STARTTLS wrapper (starttls.el) can now use GNUTLS +instead of the OpenSSL based `starttls' tool. For backwards +compatibility, it prefers `starttls', but you can toggle +`starttls-use-gnutls' to switch to GNUTLS (or simply remove the +`starttls' tool). + +**** Do not allow debugger output history variable to grow without bounds. + +** Auto-Revert changes: + ++++ +*** You can now use Auto Revert mode to `tail' a file. + +If point is at the end of a file buffer before reverting, Auto Revert +mode keeps it at the end after reverting. Similarly if point is +displayed at the end of a file buffer in any window, it stays at +the end of the buffer in that window. This allows to tail a file: +just put point at the end of the buffer and it stays there. This +rule applies to file buffers. For non-file buffers, the behavior can +be mode dependent. + +If you are sure that the file will only change by growing at the end, +then you can tail the file more efficiently by using the new minor +mode Auto Revert Tail mode. The function `auto-revert-tail-mode' +toggles this mode. + ++++ +*** Auto Revert mode is now more careful to avoid excessive reverts and +other potential problems when deciding which non-file buffers to +revert. This matters especially if Global Auto Revert mode is enabled +and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert +mode only reverts a non-file buffer if the buffer has a non-nil +`revert-buffer-function' and a non-nil `buffer-stale-function', which +decides whether the buffer should be reverted. Currently, this means +that auto reverting works for Dired buffers (although this may not +work properly on all operating systems) and for the Buffer Menu. + ++++ +*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto +Revert mode reliably updates version control info (such as the version +control number in the mode line), in all version controlled buffers in +which it is active. If the option is nil, the default, then this info +only gets updated whenever the buffer gets reverted. + +--- +** recentf changes. + +The recent file list is now automatically cleaned up when recentf mode is +enabled. The new option `recentf-auto-cleanup' controls when to do +automatic cleanup. + +The ten most recent files can be quickly opened by using the shortcut +keys 1 to 9, and 0, when the recent list is displayed in a buffer via +the `recentf-open-files', or `recentf-open-more-files' commands. + +The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' +and provides a more general mechanism to customize which file names to +keep in the recent list. + +With the more advanced option `recentf-filename-handlers', you can +specify functions that successively transform recent file names. For +example, if set to `file-truename' plus `abbreviate-file-name', the +same file will not be in the recent list with different symbolic +links, and the file name will be abbreviated. + +To follow naming convention, `recentf-menu-append-commands-flag' +replaces the misnamed option `recentf-menu-append-commands-p'. The +old name remains available as alias, but has been marked obsolete. + ++++ +** Desktop package + ++++ +*** Desktop saving is now a minor mode, `desktop-save-mode'. + ++++ +*** The variable `desktop-enable' is obsolete. + +Customize `desktop-save-mode' to enable desktop saving. + +--- +*** Buffers are saved in the desktop file in the same order as that in the +buffer list. + ++++ +*** The desktop package can be customized to restore only some buffers +immediately, remaining buffers are restored lazily (when Emacs is +idle). + ++++ +*** New commands: + - desktop-revert reverts to the last loaded desktop. + - desktop-change-dir kills current desktop and loads a new. + - desktop-save-in-desktop-dir saves desktop in the directory from which + it was loaded. + - desktop-lazy-complete runs the desktop load to completion. + - desktop-lazy-abort aborts lazy loading of the desktop. + +--- +*** New customizable variables: + - desktop-save. Determins whether the desktop should be saved when it is + killed. + - desktop-file-name-format. Format in which desktop file names should be saved. + - desktop-path. List of directories in which to lookup the desktop file. + - desktop-locals-to-save. List of local variables to save. + - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear. + - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear' + should not delete. + - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are + restored lazily (when Emacs is idle). + - desktop-lazy-verbose. Verbose reporting of lazily created buffers. + - desktop-lazy-idle-delay. Idle delay before starting to create buffers. + ++++ +*** New command line option --no-desktop + +--- +*** New hooks: + - desktop-after-read-hook run after a desktop is loaded. + - desktop-no-desktop-file-hook run when no desktop file is found. + +--- +** The saveplace.el package now filters out unreadable files. + +When you exit Emacs, the saved positions in visited files no longer +include files that aren't readable, e.g. files that don't exist. +Customize the new option `save-place-forget-unreadable-files' to nil +to get the old behavior. The new options `save-place-save-skipped' +and `save-place-skip-check-regexp' allow further fine-tuning of this +feature. + +** EDiff changes. + ++++ +*** When comparing directories. +Typing D brings up a buffer that lists the differences between the contents of +directories. Now it is possible to use this buffer to copy the missing files +from one directory to another. + ++++ +*** When comparing files or buffers. +Typing the = key now offers to perform the word-by-word comparison of the +currently highlighted regions in an inferior Ediff session. If you answer 'n' +then it reverts to the old behavior and asks the user to select regions for +comparison. + ++++ +*** The new command `ediff-backup' compares a file with its most recent +backup using `ediff'. If you specify the name of a backup file, +`ediff-backup' compares it with the file of which it is a backup. + ++++ +** Etags changes. + +*** New regular expressions features + +**** New syntax for regular expressions, multi-line regular expressions. + +The syntax --ignore-case-regexp=/regex/ is now undocumented and retained +only for backward compatibility. The new equivalent syntax is +--regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, +where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or +more characters among `i' (ignore case), `m' (multi-line) and `s' +(single-line). The `m' and `s' modifiers behave as in Perl regular +expressions: `m' allows regexps to match more than one line, while `s' +(which implies `m') means that `.' matches newlines. The ability to +span newlines allows writing of much more powerful regular expressions +and rapid prototyping for tagging new languages. + +**** Regular expressions can use char escape sequences as in GCC. + +The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, +respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, +CR, TAB, VT. + +**** Regular expressions can be bound to a given language. + +The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags +only for files of language LANGUAGE, and ignored otherwise. This is +particularly useful when storing regexps in a file. + +**** Regular expressions can be read from a file. + +The --regex=@regexfile option means read the regexps from a file, one +per line. Lines beginning with space or tab are ignored. + +*** New language parsing features + +**** The `::' qualifier triggers C++ parsing in C file. + +Previously, only the `template' and `class' keywords had this effect. + +**** The GCC __attribute__ keyword is now recognized and ignored. + +**** New language HTML. + +Tags are generated for `title' as well as `h1', `h2', and `h3'. Also, +when `name=' is used inside an anchor and whenever `id=' is used. + +**** In Makefiles, constants are tagged. + +If you want the old behavior instead, thus avoiding to increase the +size of the tags file, use the --no-globals option. + +**** New language Lua. + +All functions are tagged. + +**** In Perl, packages are tags. + +Subroutine tags are named from their package. You can jump to sub tags +as you did before, by the sub name, or additionally by looking for +package::sub. + +**** In Prolog, etags creates tags for rules in addition to predicates. + +**** New language PHP. + +Functions, classes and defines are tags. If the --members option is +specified to etags, variables are tags also. + +**** New default keywords for TeX. + +The new keywords are def, newcommand, renewcommand, newenvironment and +renewenvironment. + +*** Honour #line directives. + +When Etags parses an input file that contains C preprocessor's #line +directives, it creates tags using the file name and line number +specified in those directives. This is useful when dealing with code +created from Cweb source files. When Etags tags the generated file, it +writes tags pointing to the source file. + +*** New option --parse-stdin=FILE. + +This option is mostly useful when calling etags from programs. It can +be used (only once) in place of a file name on the command line. Etags +reads from standard input and marks the produced tags as belonging to +the file FILE. + +** VC Changes + ++++ +*** The key C-x C-q only changes the read-only state of the buffer +(toggle-read-only). It no longer checks files in or out. + +We made this change because we held a poll and found that many users +were unhappy with the previous behavior. If you do prefer this +behavior, you can bind `vc-toggle-read-only' to C-x C-q in your +`.emacs' file: + + (global-set-key "\C-x\C-q" 'vc-toggle-read-only) + +The function `vc-toggle-read-only' will continue to exist. + ++++ +*** The new variable `vc-cvs-global-switches' specifies switches that +are passed to any CVS command invoked by VC. + +These switches are used as "global options" for CVS, which means they +are inserted before the command name. For example, this allows you to +specify a compression level using the `-z#' option for CVS. + ++++ +*** New backends for Subversion and Meta-CVS. + ++++ +*** VC-Annotate mode enhancements + +In VC-Annotate mode, you can now use the following key bindings for +enhanced functionality to browse the annotations of past revisions, or +to view diffs or log entries directly from vc-annotate-mode: + + P: annotates the previous revision + N: annotates the next revision + J: annotates the revision at line + A: annotates the revision previous to line + D: shows the diff of the revision at line with its previous revision + L: shows the log of the revision at line + W: annotates the workfile (most up to date) version + +** pcl-cvs changes: + ++++ +*** In pcl-cvs mode, there is a new `d y' command to view the diffs +between the local version of the file and yesterday's head revision +in the repository. + ++++ +*** In pcl-cvs mode, there is a new `d r' command to view the changes +anyone has committed to the repository since you last executed +`checkout', `update' or `commit'. That means using cvs diff options +-rBASE -rHEAD. + ++++ +** The new variable `mail-default-directory' specifies +`default-directory' for mail buffers. This directory is used for +auto-save files of mail buffers. It defaults to "~/". + ++++ +** The mode line can indicate new mail in a directory or file. + +See the documentation of the user option +`display-time-mail-directory'. + +** Rmail changes: + +--- +*** Rmail now displays 5-digit message ids in its summary buffer. + +*** The new commands rmail-end-of-message and rmail-summary end-of-message, +by default bound to `/', go to the end of the current mail message in +Rmail and Rmail summary buffers. + ++++ +*** Support for `movemail' from GNU mailutils was added to Rmail. + +This version of `movemail' allows to read mail from a wide range of +mailbox formats, including remote POP3 and IMAP4 mailboxes with or +without TLS encryption. If GNU mailutils is installed on the system +and its version of `movemail' can be found in exec-path, it will be +used instead of the native one. + +** Gnus package + +--- +*** Gnus now includes Sieve and PGG + +Sieve is a library for managing Sieve scripts. PGG is a library to handle +PGP/MIME. + +--- +*** There are many news features, bug fixes and improvements. + +See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. + +--- +** MH-E changes. + +Upgraded to MH-E version 7.85. There have been major changes since +version 5.0.2; see MH-E-NEWS for details. + +** Calendar changes: + ++++ +*** You can now use < and >, instead of C-x < and C-x >, to scroll +the calendar left or right. (The old key bindings still work too.) + ++++ +*** There is a new calendar package, icalendar.el, that can be used to +convert Emacs diary entries to/from the iCalendar format. + ++++ +*** Diary sexp entries can have custom marking in the calendar. +Diary sexp functions which only apply to certain days (such as +`diary-block' or `diary-cyclic') now take an optional parameter MARK, +which is the name of a face or a single-character string indicating +how to highlight the day in the calendar display. Specifying a +single-character string as @var{mark} places the character next to the +day in the calendar. Specifying a face highlights the day with that +face. This lets you have different colors or markings for vacations, +appointments, paydays or anything else using a sexp. + ++++ +*** The new function `calendar-goto-day-of-year' (g D) prompts for a +year and day number, and moves to that date. Negative day numbers +count backward from the end of the year. + ++++ +*** The new Calendar function `calendar-goto-iso-week' (g w) +prompts for a year and a week number, and moves to the first +day of that ISO week. + +--- +*** The new variable `calendar-minimum-window-height' affects the +window generated by the function `generate-calendar-window'. + +--- +*** The functions `holiday-easter-etc' and `holiday-advent' now take +optional arguments, in order to only report on the specified holiday +rather than all. This makes customization of variables such as +`christian-holidays' simpler. + +--- +*** The function `simple-diary-display' now by default sets a header line. +This can be controlled through the variables `diary-header-line-flag' +and `diary-header-line-format'. + ++++ +*** The procedure for activating appointment reminders has changed: +use the new function `appt-activate'. The new variable +`appt-display-format' controls how reminders are displayed, replacing +`appt-issue-message', `appt-visible', and `appt-msg-window'. + ++++ +*** The new functions `diary-from-outlook', `diary-from-outlook-gnus', +and `diary-from-outlook-rmail' can be used to import diary entries +from Outlook-format appointments in mail messages. The variable +`diary-outlook-formats' can be customized to recognize additional +formats. + ++++ +** Speedbar changes: + +*** Speedbar items can now be selected by clicking mouse-1, based on +the `mouse-1-click-follows-link' mechanism. + +*** SPC and DEL are no longer bound to scroll up/down in the speedbar +keymap. + +*** The new command `speedbar-toggle-line-expansion', bound to SPC, +contracts or expands the line under the cursor. + +*** New command `speedbar-create-directory', bound to `M'. + +*** The new commands `speedbar-expand-line-descendants' and +`speedbar-contract-line-descendants', bound to `[' and `]' +respectively, expand and contract the line under cursor with all of +its descendents. + +*** The new user option `speedbar-query-confirmation-method' controls +how querying is performed for file operations. A value of 'always +means to always query before file operations; 'none-but-delete means +to not query before any file operations, except before a file +deletion. + +*** The new user option `speedbar-select-frame-method' specifies how +to select a frame for displaying a file opened with the speedbar. A +value of 'attached means to use the attached frame (the frame that +speedbar was started from.) A number such as 1 or -1 means to pass +that number to `other-frame'. + +*** The new user option `speedbar-use-tool-tips-flag', if non-nil, +means to display tool-tips for speedbar items. + +*** The frame management code in speedbar.el has been split into a new +`dframe' library. Emacs Lisp code that makes use of the speedbar +should use `dframe-attached-frame' instead of +`speedbar-attached-frame', `dframe-timer' instead of `speedbar-timer', +`dframe-close-frame' instead of `speedbar-close-frame', and +`dframe-activity-change-focus-flag' instead of +`speedbar-activity-change-focus-flag'. The variables +`speedbar-update-speed' and `speedbar-navigating-speed' are also +obsolete; use `dframe-update-speed' instead. + +--- +** sql changes. + +*** The variable `sql-product' controls the highlightng of different +SQL dialects. This variable can be set globally via Customize, on a +buffer-specific basis via local variable settings, or for the current +session using the new SQL->Product submenu. (This menu replaces the +SQL->Highlighting submenu.) + +The following values are supported: + + ansi ANSI Standard (default) + db2 DB2 + informix Informix + ingres Ingres + interbase Interbase + linter Linter + ms Microsoft + mysql MySQL + oracle Oracle + postgres Postgres + solid Solid + sqlite SQLite + sybase Sybase + +The current product name will be shown on the mode line following the +SQL mode indicator. + +The technique of setting `sql-mode-font-lock-defaults' directly in +your `.emacs' will no longer establish the default highlighting -- Use +`sql-product' to accomplish this. + +ANSI keywords are always highlighted. + +*** The function `sql-add-product-keywords' can be used to add +font-lock rules to the product specific rules. For example, to have +all identifiers ending in `_t' under MS SQLServer treated as a type, +you would use the following line in your .emacs file: + + (sql-add-product-keywords 'ms + '(("\\<\\w+_t\\>" . font-lock-type-face))) + +*** Oracle support includes keyword highlighting for Oracle 9i. + +Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are +highlighted in `font-lock-doc-face'. + +*** Microsoft SQLServer support has been significantly improved. + +Keyword highlighting for SqlServer 2000 is implemented. +sql-interactive-mode defaults to use osql, rather than isql, because +osql flushes its error stream more frequently. Thus error messages +are displayed when they occur rather than when the session is +terminated. + +If the username and password are not provided to `sql-ms', osql is +called with the `-E' command line argument to use the operating system +credentials to authenticate the user. + +*** Postgres support is enhanced. +Keyword highlighting of Postgres 7.3 is implemented. Prompting for +the username and the pgsql `-U' option is added. + +*** MySQL support is enhanced. +Keyword higlighting of MySql 4.0 is implemented. + +*** Imenu support has been enhanced to locate tables, views, indexes, +packages, procedures, functions, triggers, sequences, rules, and +defaults. + +*** Added SQL->Start SQLi Session menu entry which calls the +appropriate `sql-interactive-mode' wrapper for the current setting of +`sql-product'. + +--- +*** sql.el supports the SQLite interpreter--call 'sql-sqlite'. + +** FFAP changes: + ++++ +*** New ffap commands and keybindings: + +C-x C-r (`ffap-read-only'), +C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), +C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), +C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). + +--- +*** FFAP accepts wildcards in a file name by default. + +C-x C-f passes the file name to `find-file' with non-nil WILDCARDS +argument, which visits multiple files, and C-x d passes it to `dired'. + +--- +** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. + +`@' has reverted to only setting `skeleton-positions' and no longer +sets `skeleton-point'. Skeletons which used @ to mark +`skeleton-point' independent of `_' should now use `-' instead. The +updated `skeleton-insert' docstring explains these new features along +with other details of skeleton construction. + +--- +** Hideshow mode changes + +*** New variable `hs-set-up-overlay' allows customization of the overlay +used to effect hiding for hideshow minor mode. Integration with isearch +handles the overlay property `display' specially, preserving it during +temporary overlay showing in the course of an isearch operation. + +*** New variable `hs-allow-nesting' non-nil means that hiding a block does +not discard the hidden state of any "internal" blocks; when the parent +block is later shown, the internal blocks remain hidden. Default is nil. + ++++ +** `hide-ifdef-mode' now uses overlays rather than selective-display +to hide its text. This should be mostly transparent but slightly +changes the behavior of motion commands like C-e and C-p. + +--- +** `partial-completion-mode' now handles partial completion on directory names. + +--- +** The type-break package now allows `type-break-file-name' to be nil +and if so, doesn't store any data across sessions. This is handy if +you don't want the `.type-break' file in your home directory or are +annoyed by the need for interaction when you kill Emacs. + +--- +** `ps-print' can now print characters from the mule-unicode charsets. + +Printing text with characters from the mule-unicode-* sets works with +`ps-print', provided that you have installed the appropriate BDF +fonts. See the file INSTALL for URLs where you can find these fonts. + +--- +** New command `strokes-global-set-stroke-string'. +This is like `strokes-global-set-stroke', but it allows you to bind +the stroke directly to a string to insert. This is convenient for +using strokes as an input method. + +** Emacs server changes: + ++++ +*** You can have several Emacs servers on the same machine. + + % emacs --eval '(setq server-name "foo")' -f server-start & + % emacs --eval '(setq server-name "bar")' -f server-start & + % emacsclient -s foo file1 + % emacsclient -s bar file2 + ++++ +*** The `emacsclient' command understands the options `--eval' and +`--display' which tell Emacs respectively to evaluate the given Lisp +expression and to use the given display when visiting files. + ++++ +*** User option `server-mode' can be used to start a server process. + +--- +** LDAP support now defaults to ldapsearch from OpenLDAP version 2. + ++++ +** You can now disable pc-selection-mode after enabling it. + +M-x pc-selection-mode behaves like a proper minor mode, and with no +argument it toggles the mode. Turning off PC-Selection mode restores +the global key bindings that were replaced by turning on the mode. + +--- +** `uniquify-strip-common-suffix' tells uniquify to prefer +`file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. + +--- +** Support for `magic cookie' standout modes has been removed. + +Emacs still works on terminals that require magic cookies in order to +use standout mode, but they can no longer display mode-lines in +inverse-video. + +--- +** The game `mpuz' is enhanced. + +`mpuz' now allows the 2nd factor not to have two identical digits. By +default, all trivial operations involving whole lines are performed +automatically. The game uses faces for better visual feedback. + +** battery.el changes: + +--- +*** display-battery-mode replaces display-battery. + +--- +*** battery.el now works on recent versions of OS X. + +--- +** calculator.el now has radix grouping mode. + +To enable this, set `calculator-output-radix' non-nil. In this mode a +separator character is used every few digits, making it easier to see +byte boundries etc. For more info, see the documentation of the +variable `calculator-radix-grouping-mode'. + +--- +** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. + +--- +** iso-acc.el is now obsolete. Use one of the latin input methods instead. + +--- +** cplus-md.el has been deleted. + +* Changes in Emacs 22.1 on non-free operating systems + ++++ +** The HOME directory defaults to Application Data under the user profile. + +If you used a previous version of Emacs without setting the HOME +environment variable and a `.emacs' was saved, then Emacs will continue +using C:/ as the default HOME. But if you are installing Emacs afresh, +the default location will be the "Application Data" (or similar +localized name) subdirectory of your user profile. A typical location +of this directory is "C:\Documents and Settings\USERNAME\Application Data", +where USERNAME is your user name. + +This change means that users can now have their own `.emacs' files on +shared computers, and the default HOME directory is less likely to be +read-only on computers that are administered by someone else. + ++++ +** Passing resources on the command line now works on MS Windows. + +You can use --xrm to pass resource settings to Emacs, overriding any +existing values. For example: + + emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" + +will start up Emacs on an initial frame of 100x20 with red background, +irrespective of geometry or background setting on the Windows registry. + +--- +** On MS Windows, the "system caret" now follows the cursor. + +This enables Emacs to work better with programs that need to track +the cursor, for example screen magnifiers and text to speech programs. + +--- +** Tooltips now work on MS Windows. + +See the Emacs 21.1 NEWS entry for tooltips for details. + +--- +** Images are now supported on MS Windows. + +PBM and XBM images are supported out of the box. Other image formats +depend on external libraries. All of these libraries have been ported +to Windows, and can be found in both source and binary form at +http://gnuwin32.sourceforge.net/. Note that libpng also depends on +zlib, and tiff depends on the version of jpeg that it was compiled +against. For additional information, see nt/INSTALL. + +--- +** Sound is now supported on MS Windows. + +WAV format is supported on all versions of Windows, other formats such +as AU, AIFF and MP3 may be supported in the more recent versions of +Windows, or when other software provides hooks into the system level +sound support for those formats. + +--- +** Different shaped mouse pointers are supported on MS Windows. + +The mouse pointer changes shape depending on what is under the pointer. + +--- +** Pointing devices with more than 3 buttons are now supported on MS Windows. + +The new variable `w32-pass-extra-mouse-buttons-to-system' controls +whether Emacs should handle the extra buttons itself (the default), or +pass them to Windows to be handled with system-wide functions. + +--- +** Emacs takes note of colors defined in Control Panel on MS-Windows. + +The Control Panel defines some default colors for applications in much +the same way as wildcard X Resources do on X. Emacs now adds these +colors to the colormap prefixed by System (eg SystemMenu for the +default Menu background, SystemMenuText for the foreground), and uses +some of them to initialize some of the default faces. +`list-colors-display' shows the list of System color names, in case +you wish to use them in other faces. + +--- +** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. + +Those systems use Unicode internally, so this allows Emacs to share +multilingual text with other applications. On other versions of +MS Windows, Emacs now uses the appropriate locale coding-system, so +the clipboard should work correctly for your local language without +any customizations. + +--- +** Running in a console window in Windows now uses the console size. + +Previous versions of Emacs erred on the side of having a usable Emacs +through telnet, even though that was inconvenient if you use Emacs in +a local console window with a scrollback buffer. The default value of +w32-use-full-screen-buffer is now nil, which favours local console +windows. Recent versions of Windows telnet also work well with this +setting. If you are using an older telnet server then Emacs detects +that the console window dimensions that are reported are not sane, and +defaults to 80x25. If you use such a telnet server regularly at a size +other than 80x25, you can still manually set +w32-use-full-screen-buffer to t. + +--- +** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. + +--- +** The variable `mac-keyboard-text-encoding' and the constants +`kTextEncodingMacRoman', `kTextEncodingISOLatin1', and +`kTextEncodingISOLatin2' are obsolete. + +** The variable `mac-command-key-is-meta' is obsolete. Use +`mac-command-modifier' and `mac-option-modifier' instead. + +* Incompatible Lisp Changes in Emacs 22.1 + +--- +** The variables post-command-idle-hook and post-command-idle-delay have + been removed. Use run-with-idle-timer instead. + ++++ +** `suppress-keymap' now works by remapping `self-insert-command' to +the command `undefined'. (In earlier Emacs versions, it used +`substitute-key-definition' to rebind self inserting characters to +`undefined'.) + ++++ +** Mode line display ignores text properties as well as the +:propertize and :eval forms in the value of a variable whose +`risky-local-variable' property is nil. + +--- +** Support for Mocklisp has been removed. + ++++ +** The variable `memory-full' now remains t until +there is no longer a shortage of memory. + +* Lisp Changes in Emacs 22.1 + +** General Lisp changes: + +*** The function `expt' handles negative exponents differently. +The value for `(expt A B)', if both A and B are integers and B is +negative, is now a float. For example: (expt 2 -2) => 0.25. + ++++ +*** The function `eql' is now available without requiring the CL package. + ++++ +*** `makehash' is now obsolete. Use `make-hash-table' instead. + ++++ +*** `add-to-list' takes an optional third argument, APPEND. + +If APPEND is non-nil, the new element gets added at the end of the +list instead of at the beginning. This change actually occurred in +Emacs 21.1, but was not documented then. + ++++ +*** New function `add-to-ordered-list' is like `add-to-list' but +associates a numeric ordering of each element added to the list. + ++++ +*** New function `copy-tree' makes a copy of a tree. + +It recursively copyies through both CARs and CDRs. + ++++ +*** New function `delete-dups' deletes `equal' duplicate elements from a list. + +It modifies the list destructively, like `delete'. Of several `equal' +occurrences of an element in the list, the one that's kept is the +first one. + ++++ +*** New function `rassq-delete-all'. + +(rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose +CDR is `eq' to the specified value. + ++++ +*** The function `number-sequence' makes a list of equally-separated numbers. + +For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By +default, the separation is 1, but you can specify a different +separation as the third argument. (number-sequence 1.5 6 2) returns +(1.5 3.5 5.5). + ++++ +*** New variables `most-positive-fixnum' and `most-negative-fixnum'. + +They hold the largest and smallest possible integer values. + ++++ +*** Minor change in the function `format'. + +Some flags that were accepted but not implemented (such as "*") are no +longer accepted. + ++++ +*** Functions `get' and `plist-get' no longer give errors for bad plists. + +They return nil for a malformed property list or if the list is +cyclic. + ++++ +*** New functions `lax-plist-get' and `lax-plist-put'. + +They are like `plist-get' and `plist-put', except that they compare +the property name using `equal' rather than `eq'. + ++++ +*** New variable `print-continuous-numbering'. + +When this is non-nil, successive calls to print functions use a single +numbering scheme for circular structure references. This is only +relevant when `print-circle' is non-nil. + +When you bind `print-continuous-numbering' to t, you should +also bind `print-number-table' to nil. + ++++ +*** New function `macroexpand-all' expands all macros in a form. + +It is similar to the Common-Lisp function of the same name. +One difference is that it guarantees to return the original argument +if no expansion is done, which can be tested using `eq'. + ++++ +*** The function `atan' now accepts an optional second argument. + +When called with 2 arguments, as in `(atan Y X)', `atan' returns the +angle in radians between the vector [X, Y] and the X axis. (This is +equivalent to the standard C library function `atan2'.) + ++++ +*** A function or macro's doc string can now specify the calling pattern. + +You put this info in the doc string's last line. It should be +formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't +specify this explicitly, Emacs determines it from the actual argument +names. Usually that default is right, but not always. + ++++ +*** New macro `with-local-quit' temporarily allows quitting. + +A quit inside the body of `with-local-quit' is caught by the +`with-local-quit' form itself, but another quit will happen later once +the code that has inhibitted quitting exits. + +This is for use around potentially blocking or long-running code +inside timer functions and `post-command-hook' functions. + ++++ +*** New macro `define-obsolete-function-alias'. + +This combines `defalias' and `make-obsolete'. + ++++ +*** New function `unsafep' determines whether a Lisp form is safe. + +It returns nil if the given Lisp form can't possibly do anything +dangerous; otherwise it returns a reason why the form might be unsafe +(calls unknown function, alters global variable, etc.). + ++++ +*** New macro `eval-at-startup' specifies expressions to +evaluate when Emacs starts up. If this is done after startup, +it evaluates those expressions immediately. + +This is useful in packages that can be preloaded. + +*** `list-faces-display' takes an optional argument, REGEXP. + +If it is non-nil, the function lists only faces matching this regexp. + +** Lisp code indentation features: + ++++ +*** The `defmacro' form can contain indentation and edebug declarations. + +These declarations specify how to indent the macro calls in Lisp mode +and how to debug them with Edebug. You write them like this: + + (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) + +DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The +possible declaration specifiers are: + +(indent INDENT) + Set NAME's `lisp-indent-function' property to INDENT. + +(edebug DEBUG) + Set NAME's `edebug-form-spec' property to DEBUG. (This is + equivalent to writing a `def-edebug-spec' for the macro, + but this is cleaner.) + +--- +*** cl-indent now allows customization of Indentation of backquoted forms. + +See the new user option `lisp-backquote-indentation'. + +--- +*** cl-indent now handles indentation of simple and extended `loop' forms. + +The new user options `lisp-loop-keyword-indentation', +`lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can +be used to customize the indentation of keywords and forms in loop +forms. + ++++ +** Variable aliases: + +*** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] + +This function defines the symbol ALIAS-VAR as a variable alias for +symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR +returns the value of BASE-VAR, and changing the value of ALIAS-VAR +changes the value of BASE-VAR. + +DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has +the same documentation as BASE-VAR. + +*** New function: indirect-variable VARIABLE + +This function returns the variable at the end of the chain of aliases +of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not +defined as an alias, the function returns VARIABLE. + +It might be noteworthy that variables aliases work for all kinds of +variables, including buffer-local and frame-local variables. + ++++ +*** The macro `define-obsolete-variable-alias' combines `defvaralias' and +`make-obsolete-variable'. + +** defcustom changes: + ++++ +*** The new customization type `float' requires a floating point number. + +** String changes: + ++++ +*** The escape sequence \s is now interpreted as a SPACE character. + +Exception: In a character constant, if it is followed by a `-' in a +character constant (e.g. ?\s-A), it is still interpreted as the super +modifier. In strings, \s is always interpreted as a space. + ++++ +*** A hex escape in a string constant forces the string to be multibyte. + ++++ +*** An octal escape in a string constant forces the string to be unibyte. + ++++ +*** `split-string' now includes null substrings in the returned list if +the optional argument SEPARATORS is non-nil and there are matches for +SEPARATORS at the beginning or end of the string. If SEPARATORS is +nil, or if the new optional third argument OMIT-NULLS is non-nil, all +empty matches are omitted from the returned list. + ++++ +*** New function `string-to-multibyte' converts a unibyte string to a +multibyte string with the same individual character codes. + ++++ +*** New function `substring-no-properties' returns a substring without +text properties. + ++++ +*** The new function `assoc-string' replaces `assoc-ignore-case' and +`assoc-ignore-representation', which are still available, but have +been declared obsolete. + ++++ +** Displaying warnings to the user. + +See the functions `warn' and `display-warning', or the Lisp Manual. +If you want to be sure the warning will not be overlooked, this +facility is much better than using `message', since it displays +warnings in a separate window. + ++++ +** Progress reporters. + +These provide a simple and uniform way for commands to present +progress messages for the user. + +See the new functions `make-progress-reporter', +`progress-reporter-update', `progress-reporter-force-update', +`progress-reporter-done', and `dotimes-with-progress-reporter'. + +** Buffer positions: + ++++ +*** Function `compute-motion' now calculates the usable window +width if the WIDTH argument is nil. If the TOPOS argument is nil, +the usable window height and width is used. + ++++ +*** The `line-move', `scroll-up', and `scroll-down' functions will now +modify the window vscroll to scroll through display rows that are +taller that the height of the window, for example in the presence of +large images. To disable this feature, bind the new variable +`auto-window-vscroll' to nil. + ++++ +*** The argument to `forward-word', `backward-word' is optional. + +It defaults to 1. + ++++ +*** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. + +It defaults to 1. + ++++ +*** New function `mouse-on-link-p' tests if a position is in a clickable link. + +This is the function used by the new `mouse-1-click-follows-link' +functionality. + ++++ +*** New function `line-number-at-pos' returns the line number of a position. + +It an optional buffer position argument that defaults to point. + ++++ +*** `field-beginning' and `field-end' take new optional argument, LIMIT. + +This argument tells them not to search beyond LIMIT. Instead they +give up and return LIMIT. + ++++ +*** Function `pos-visible-in-window-p' now returns the pixel coordinates +and partial visiblity state of the corresponding row, if the PARTIALLY +arg is non-nil. + ++++ +*** New functions `posn-at-point' and `posn-at-x-y' return +click-event-style position information for a given visible buffer +position or for a given window pixel coordinate. + +** Text modification: + ++++ +*** The new function `insert-for-yank' normally works like `insert', but +removes the text properties in the `yank-excluded-properties' list +and handles the `yank-handler' text property. + ++++ +*** The new function `insert-buffer-substring-as-yank' is like +`insert-for-yank' except that it gets the text from another buffer as +in `insert-buffer-substring'. + ++++ +*** The new function `insert-buffer-substring-no-properties' is like +`insert-buffer-substring', but removes all text properties from the +inserted substring. + ++++ +*** The new function `filter-buffer-substring' extracts a buffer +substring, passes it through a set of filter functions, and returns +the filtered substring. Use it instead of `buffer-substring' or +`delete-and-extract-region' when copying text into a user-accessible +data structure, such as the kill-ring, X clipboard, or a register. + +The list of filter function is specified by the new variable +`buffer-substring-filters'. For example, Longlines mode adds to +`buffer-substring-filters' to remove soft newlines from the copied +text. + ++++ +*** Function `translate-region' accepts also a char-table as TABLE +argument. + ++++ +*** The new translation table `translation-table-for-input' +is used for customizing self-insertion. The character to +be inserted is translated through it. + +--- +*** Text clones. + +The new function `text-clone-create'. Text clones are chunks of text +that are kept identical by transparently propagating changes from one +clone to the other. + +--- +*** The function `insert-string' is now obsolete. + +** Filling changes. + ++++ +*** In determining an adaptive fill prefix, Emacs now tries the function in +`adaptive-fill-function' _before_ matching the buffer line against +`adaptive-fill-regexp' rather than _after_ it. + ++++ +** Atomic change groups. + +To perform some changes in the current buffer "atomically" so that +they either all succeed or are all undone, use `atomic-change-group' +around the code that makes changes. For instance: + + (atomic-change-group + (insert foo) + (delete-region x y)) + +If an error (or other nonlocal exit) occurs inside the body of +`atomic-change-group', it unmakes all the changes in that buffer that +were during the execution of the body. The change group has no effect +on any other buffers--any such changes remain. + +If you need something more sophisticated, you can directly call the +lower-level functions that `atomic-change-group' uses. Here is how. + +To set up a change group for one buffer, call `prepare-change-group'. +Specify the buffer as argument; it defaults to the current buffer. +This function returns a "handle" for the change group. You must save +the handle to activate the change group and then finish it. + +Before you change the buffer again, you must activate the change +group. Pass the handle to `activate-change-group' afterward to +do this. + +After you make the changes, you must finish the change group. You can +either accept the changes or cancel them all. Call +`accept-change-group' to accept the changes in the group as final; +call `cancel-change-group' to undo them all. + +You should use `unwind-protect' to make sure the group is always +finished. The call to `activate-change-group' should be inside the +`unwind-protect', in case the user types C-g just after it runs. +(This is one reason why `prepare-change-group' and +`activate-change-group' are separate functions.) Once you finish the +group, don't use the handle again--don't try to finish the same group +twice. + +To make a multibuffer change group, call `prepare-change-group' once +for each buffer you want to cover, then use `nconc' to combine the +returned values, like this: + + (nconc (prepare-change-group buffer-1) + (prepare-change-group buffer-2)) + +You can then activate the multibuffer change group with a single call +to `activate-change-group', and finish it with a single call to +`accept-change-group' or `cancel-change-group'. + +Nested use of several change groups for the same buffer works as you +would expect. Non-nested use of change groups for the same buffer +will lead to undesirable results, so don't let it happen; the first +change group you start for any given buffer should be the last one +finished. + +** Buffer-related changes: + +--- +*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. + +If it is non-nil, it specifies which buffers to list. + ++++ +*** `kill-buffer-hook' is now a permanent local. + ++++ +*** The new function `buffer-local-value' returns the buffer-local +binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not +have a buffer-local binding in buffer BUFFER, it returns the default +value of VARIABLE instead. + +*** The function `frame-or-buffer-changed-p' now lets you maintain +various status records in parallel. + +It takes a variable (a symbol) as argument. If the variable is non-nil, +then its value should be a vector installed previously by +`frame-or-buffer-changed-p'. If the frame names, buffer names, buffer +order, or their read-only or modified flags have changed, since the +time the vector's contents were recorded by a previous call to +`frame-or-buffer-changed-p', then the function returns t. Otherwise +it returns nil. + +On the first call to `frame-or-buffer-changed-p', the variable's +value should be nil. `frame-or-buffer-changed-p' stores a suitable +vector into the variable and returns t. + +If the variable is itself nil, then `frame-or-buffer-changed-p' uses, +for compatibility, an internal variable which exists only for this +purpose. + ++++ +*** The function `read-buffer' follows the convention for reading from +the minibuffer with a default value: if DEF is non-nil, the minibuffer +prompt provided in PROMPT is edited to show the default value provided +in DEF before the terminal colon and space. + +** Local variables lists: + ++++ +*** Text properties in local variables. + +A file local variables list cannot specify a string with text +properties--any specified text properties are discarded. + ++++ +*** The variable `safe-local-eval-forms' specifies a list of forms that +are ok to evaluate when they appear in an `eval' local variables +specification. Normally Emacs asks for confirmation before evaluating +such a form, but if the form appears in this list, no confirmation is +needed. + +--- +*** If a function has a non-nil `safe-local-eval-function' property, +that means it is ok to evaluate some calls to that function when it +appears in an `eval' local variables specification. If the property +is t, then any form calling that function with constant arguments is +ok. If the property is a function or list of functions, they are called +with the form as argument, and if any returns t, the form is ok to call. + +If the form is not "ok to call", that means Emacs asks for +confirmation as before. + +** Searching and matching changes: + ++++ +*** New function `looking-back' checks whether a regular expression matches +the text before point. Specifying the LIMIT argument bounds how far +back the match can start; this is a way to keep it from taking too long. + ++++ +*** The new variable `search-spaces-regexp' controls how to search +for spaces in a regular expression. If it is non-nil, it should be a +regular expression, and any series of spaces stands for that regular +expression. If it is nil, spaces stand for themselves. + +Spaces inside of constructs such as `[..]' and inside loops such as +`*', `+', and `?' are never replaced with `search-spaces-regexp'. + ++++ +*** New regular expression operators, `\_<' and `\_>'. + +These match the beginning and end of a symbol. A symbol is a +non-empty sequence of either word or symbol constituent characters, as +specified by the syntax table. + +--- +*** rx.el has new corresponding `symbol-end' and `symbol-start' elements. + ++++ +*** `skip-chars-forward' and `skip-chars-backward' now handle +character classes such as `[:alpha:]', along with individual +characters and ranges. + +--- +*** In `replace-match', the replacement text no longer inherits +properties from surrounding text. + ++++ +*** The list returned by `(match-data t)' now has the buffer as a final +element, if the last match was on a buffer. `set-match-data' +accepts such a list for restoring the match state. + ++++ +*** Functions `match-data' and `set-match-data' now have an optional +argument `reseat'. When non-nil, all markers in the match data list +passed to these functions will be reseated to point to nowhere. + ++++ +*** The default value of `sentence-end' is now defined using the new +variable `sentence-end-without-space', which contains such characters +that end a sentence without following spaces. + +The function `sentence-end' should be used to obtain the value of the +variable `sentence-end'. If the variable `sentence-end' is nil, then +this function returns the regexp constructed from the variables +`sentence-end-without-period', `sentence-end-double-space' and +`sentence-end-without-space'. + +** Undo changes: + ++++ +*** `buffer-undo-list' can allows programmable elements. + +These elements have the form (apply FUNNAME . ARGS), where FUNNAME is +a symbol other than t or nil. That stands for a high-level change +that should be undone by evaluating (apply FUNNAME ARGS). + +These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) +which indicates that the change which took place was limited to the +range BEG...END and increased the buffer size by DELTA. + ++++ +*** If the buffer's undo list for the current command gets longer than +`undo-outer-limit', garbage collection empties it. This is to prevent +it from using up the available memory and choking Emacs. + ++++ +** New `yank-handler' text property can be used to control how +previously killed text on the kill ring is reinserted. + +The value of the `yank-handler' property must be a list with one to four +elements with the following format: + (FUNCTION PARAM NOEXCLUDE UNDO). + +The `insert-for-yank' function looks for a yank-handler property on +the first character on its string argument (typically the first +element on the kill-ring). If a `yank-handler' property is found, +the normal behavior of `insert-for-yank' is modified in various ways: + + When FUNCTION is present and non-nil, it is called instead of `insert' +to insert the string. FUNCTION takes one argument--the object to insert. + If PARAM is present and non-nil, it replaces STRING as the object +passed to FUNCTION (or `insert'); for example, if FUNCTION is +`yank-rectangle', PARAM should be a list of strings to insert as a +rectangle. + If NOEXCLUDE is present and non-nil, the normal removal of the +`yank-excluded-properties' is not performed; instead FUNCTION is +responsible for removing those properties. This may be necessary +if FUNCTION adjusts point before or after inserting the object. + If UNDO is present and non-nil, it is a function that will be called +by `yank-pop' to undo the insertion of the current object. It is +called with two arguments, the start and end of the current region. +FUNCTION can set `yank-undo-function' to override the UNDO value. + +*** The functions `kill-new', `kill-append', and `kill-region' now have an +optional argument to specify the `yank-handler' text property to put on +the killed text. + +*** The function `yank-pop' will now use a non-nil value of the variable +`yank-undo-function' (instead of `delete-region') to undo the previous +`yank' or `yank-pop' command (or a call to `insert-for-yank'). The function +`insert-for-yank' automatically sets that variable according to the UNDO +element of the string argument's `yank-handler' text property if present. + +*** The function `insert-for-yank' now supports strings where the +`yank-handler' property does not span the first character of the +string. The old behavior is available if you call +`insert-for-yank-1' instead. + +** Syntax table changes: + ++++ +*** The macro `with-syntax-table' no longer copies the syntax table. + ++++ +*** The new function `syntax-after' returns the syntax code +of the character after a specified buffer position, taking account +of text properties as well as the character code. + ++++ +*** `syntax-class' extracts the class of a syntax code (as returned +by `syntax-after'). + ++++ +*** The new function `syntax-ppss' rovides an efficient way to find the +current syntactic context at point. + +** File operation changes: + ++++ +*** New vars `exec-suffixes' and `load-suffixes' used when +searching for an executable or an Emacs Lisp file. + ++++ +*** The new primitive `set-file-times' sets a file's access and +modification times. Magic file name handlers can handle this +operation. + ++++ +*** The new function `file-remote-p' tests a file name and returns +non-nil if it specifies a remote file (one that Emacs accesses using +its own special methods and not directly through the file system). +The value in that case is an identifier for the remote file system. + ++++ +*** `buffer-auto-save-file-format' is the new name for what was +formerly called `auto-save-file-format'. It is now a permanent local. + ++++ +*** Functions `file-name-sans-extension' and `file-name-extension' now +ignore the leading dots in file names, so that file names such as +`.emacs' are treated as extensionless. + ++++ +*** `copy-file' now takes an additional option arg MUSTBENEW. + +This argument works like the MUSTBENEW argument of write-file. + ++++ +*** `visited-file-modtime' and `calendar-time-from-absolute' now return +a list of two integers, instead of a cons. + ++++ +*** `file-chase-links' now takes an optional second argument LIMIT which +specifies the maximum number of links to chase through. If after that +many iterations the file name obtained is still a symbolic link, +`file-chase-links' returns it anyway. + ++++ +*** The new hook `before-save-hook' is invoked by `basic-save-buffer' +before saving buffers. This allows packages to perform various final +tasks. For example, it can be used by the copyright package to make +sure saved files have the current year in any copyright headers. + ++++ +*** If `buffer-save-without-query' is non-nil in some buffer, +`save-some-buffers' will always save that buffer without asking (if +it's modified). + ++++ +*** New function `locate-file' searches for a file in a list of directories. +`locate-file' accepts a name of a file to search (a string), and two +lists: a list of directories to search in and a list of suffixes to +try; typical usage might use `exec-path' and `load-path' for the list +of directories, and `exec-suffixes' and `load-suffixes' for the list +of suffixes. The function also accepts a predicate argument to +further filter candidate files. + +One advantage of using this function is that the list of suffixes in +`exec-suffixes' is OS-dependant, so this function will find +executables without polluting Lisp code with OS dependencies. + +--- +*** The precedence of file name handlers has been changed. + +Instead of choosing the first handler that matches, +`find-file-name-handler' now gives precedence to a file name handler +that matches nearest the end of the file name. More precisely, the +handler whose (match-beginning 0) is the largest is chosen. In case +of ties, the old "first matched" rule applies. + ++++ +*** A file name handler can declare which operations it handles. + +You do this by putting an `operation' property on the handler name +symbol. The property value should be a list of the operations that +the handler really handles. It won't be called for any other +operations. + +This is useful for autoloaded handlers, to prevent them from being +autoloaded when not really necessary. + ++++ +*** The function `make-auto-save-file-name' is now handled by file +name handlers. This will be exploited for remote files mainly. + +** Input changes: + ++++ +*** An interactive specification can now use the code letter 'U' to get +the up-event that was discarded in case the last key sequence read for a +previous `k' or `K' argument was a down-event; otherwise nil is used. + ++++ +*** The new interactive-specification `G' reads a file name +much like `F', but if the input is a directory name (even defaulted), +it returns just the directory name. + +--- +*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that +display a prompt but don't use the minibuffer, now display the prompt +using the text properties (esp. the face) of the prompt string. + ++++ +*** (while-no-input BODY...) runs BODY, but only so long as no input +arrives. If the user types or clicks anything, BODY stops as if a +quit had occurred. `while-no-input' returns the value of BODY, if BODY +finishes. It returns nil if BODY was aborted by a quit, and t if +BODY was aborted by arrival of input. + +** Minibuffer changes: + ++++ +*** The new function `minibufferp' returns non-nil if its optional +buffer argument is a minibuffer. If the argument is omitted, it +defaults to the current buffer. + ++++ +*** New function `minibuffer-selected-window' returns the window which +was selected when entering the minibuffer. + ++++ +*** `read-from-minibuffer' now accepts an additional argument KEEP-ALL +saying to put all inputs in the history list, even empty ones. + ++++ +*** The `read-file-name' function now takes an additional argument which +specifies a predicate which the file name read must satify. The +new variable `read-file-name-predicate' contains the predicate argument +while reading the file name from the minibuffer; the predicate in this +variable is used by read-file-name-internal to filter the completion list. + +--- +*** The new variable `read-file-name-function' can be used by Lisp code +to override the built-in `read-file-name' function. + ++++ +*** The new variable `read-file-name-completion-ignore-case' specifies +whether completion ignores case when reading a file name with the +`read-file-name' function. + ++++ +*** The new function `read-directory-name' is for reading a directory name. + +It is like `read-file-name' except that the defaulting works better +for directories, and completion inside it shows only directories. + +** Completion changes: + ++++ +*** The new function `minibuffer-completion-contents' returns the contents +of the minibuffer just before point. That is what completion commands +operate on. + ++++ +*** The functions `all-completions' and `try-completion' now accept lists +of strings as well as hash-tables additionally to alists, obarrays +and functions. Furthermore, the function `test-completion' is now +exported to Lisp. The keys in alists and hash tables can be either +strings or symbols, which are automatically converted with to strings. + ++++ +*** The new macro `dynamic-completion-table' supports using functions +as a dynamic completion table. + + (dynamic-completion-table FUN) + +FUN is called with one argument, the string for which completion is required, +and it should return an alist containing all the intended possible +completions. This alist can be a full list of possible completions so that FUN +can ignore the value of its argument. If completion is performed in the +minibuffer, FUN will be called in the buffer from which the minibuffer was +entered. `dynamic-completion-table' then computes the completion. + ++++ +*** The new macro `lazy-completion-table' initializes a variable +as a lazy completion table. + + (lazy-completion-table VAR FUN) + +If the completion table VAR is used for the first time (e.g., by passing VAR +as an argument to `try-completion'), the function FUN is called with no +arguments. FUN must return the completion table that will be stored in VAR. +If completion is requested in the minibuffer, FUN will be called in the buffer +from which the minibuffer was entered. The return value of +`lazy-completion-table' must be used to initialize the value of VAR. + ++++ +** Enhancements to keymaps. + +*** New keymaps for typing file names + +Two new keymaps, `minibuffer-local-filename-completion-map' and +`minibuffer-local-must-match-filename-map', apply whenever +Emacs reads a file name in the minibuffer. These key maps override +the usual binding of SPC to `minibuffer-complete-word' (so that file +names with embedded spaces could be typed without the need to quote +the spaces). + +*** Cleaner way to enter key sequences. + +You can enter a constant key sequence in a more natural format, the +same one used for saving keyboard macros, using the macro `kbd'. For +example, + +(kbd "C-x C-f") => "\^x\^f" + +*** Interactive commands can be remapped through keymaps. + +This is an alternative to using `defadvice' or `substitute-key-definition' +to modify the behavior of a key binding using the normal keymap +binding and lookup functionality. + +When a key sequence is bound to a command, and that command is +remapped to another command, that command is run instead of the +original command. + +Example: +Suppose that minor mode `my-mode' has defined the commands +`my-kill-line' and `my-kill-word', and it wants C-k (and any other key +bound to `kill-line') to run the command `my-kill-line' instead of +`kill-line', and likewise it wants to run `my-kill-word' instead of +`kill-word'. + +Instead of rebinding C-k and the other keys in the minor mode map, +command remapping allows you to directly map `kill-line' into +`my-kill-line' and `kill-word' into `my-kill-word' using `define-key': + + (define-key my-mode-map [remap kill-line] 'my-kill-line) + (define-key my-mode-map [remap kill-word] 'my-kill-word) + +When `my-mode' is enabled, its minor mode keymap is enabled too. So +when the user types C-k, that runs the command `my-kill-line'. + +Only one level of remapping is supported. In the above example, this +means that if `my-kill-line' is remapped to `other-kill', then C-k still +runs `my-kill-line'. + +The following changes have been made to provide command remapping: + +- Command remappings are defined using `define-key' with a prefix-key + `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD + to definition DEF in keymap MAP. The definition is not limited to + another command; it can be anything accepted for a normal binding. + +- The new function `command-remapping' returns the binding for a + remapped command in the current keymaps, or nil if not remapped. + +- `key-binding' now remaps interactive commands unless the optional + third argument NO-REMAP is non-nil. + +- `where-is-internal' now returns nil for a remapped command (e.g. + `kill-line', when `my-mode' is enabled), and the actual key binding for + the command it is remapped to (e.g. C-k for my-kill-line). + It also has a new optional fifth argument, NO-REMAP, which inhibits + remapping if non-nil (e.g. it returns "C-k" for `kill-line', and + "" for `my-kill-line'). + +- The new variable `this-original-command' contains the original + command before remapping. It is equal to `this-command' when the + command was not remapped. + +*** If text has a `keymap' property, that keymap takes precedence +over minor mode keymaps. + +*** The `keymap' property now also works at the ends of overlays and +text properties, according to their stickiness. This also means that it +works with empty overlays. The same hold for the `local-map' property. + +*** Dense keymaps now handle inheritance correctly. + +Previously a dense keymap would hide all of the simple-char key +bindings of the parent keymap. + +*** `define-key-after' now accepts keys longer than 1. + +*** New function `current-active-maps' returns a list of currently +active keymaps. + +*** New function `describe-buffer-bindings' inserts the list of all +defined keys and their definitions. + +*** New function `keymap-prompt' returns the prompt string of a keymap. + +*** (map-keymap FUNCTION KEYMAP) applies the function to each binding +in the keymap. + +*** New variable `emulation-mode-map-alists'. + +Lisp packages using many minor mode keymaps can now maintain their own +keymap alist separate from `minor-mode-map-alist' by adding their +keymap alist to this list. + +** Abbrev changes: + ++++ +*** The new function `copy-abbrev-table' copies an abbrev table. + +It returns a new abbrev table that is a copy of a given abbrev table. + ++++ +*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. + +If non-nil, this marks the abbrev as a "system" abbrev, which means +that it won't be stored in the user's abbrevs file if he saves the +abbrevs. Major modes that predefine some abbrevs should always +specify this flag. + ++++ +** Enhancements to process support + +*** Function `list-processes' now has an optional argument; if non-nil, +it lists only the processes whose query-on-exit flag is set. + +*** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'. + +These replace the old function `process-kill-without-query'. That +function is still supported, but new code should use the new +functions. + +*** Function `signal-process' now accepts a process object or process +name in addition to a process id to identify the signaled process. + +*** Processes now have an associated property list where programs can +maintain process state and other per-process related information. + +Use the new functions `process-get' and `process-put' to access, add, +and modify elements on this property list. Use the new functions +`process-plist' and `set-process-plist' to access and replace the +entire property list of a process. + +*** Function `accept-process-output' has a new optional fourth arg +JUST-THIS-ONE. If non-nil, only output from the specified process +is handled, suspending output from other processes. If value is an +integer, also inhibit running timers. This feature is generally not +recommended, but may be necessary for specific applications, such as +speech synthesis. + +*** Adaptive read buffering of subprocess output. + +On some systems, when emacs reads the output from a subprocess, the +output data is read in very small blocks, potentially resulting in +very poor performance. This behavior can be remedied to some extent +by setting the new variable `process-adaptive-read-buffering' to a +non-nil value (the default), as it will automatically delay reading +from such processes, allowing them to produce more output before +emacs tries to read it. + +*** The new function `call-process-shell-command'. + +This executes a shell command synchronously in a separate process. + +*** The new function `process-file' is similar to `call-process', but +obeys file handlers. The file handler is chosen based on +`default-directory'. + +*** A process filter function gets the output as multibyte string +if the process specifies t for its filter's multibyteness. + +That multibyteness is decided by the value of +`default-enable-multibyte-characters' when the process is created, and +you can change it later with `set-process-filter-multibyte'. + +*** The new function `set-process-filter-multibyte' sets the +multibyteness of the strings passed to the process's filter. + +*** The new function `process-filter-multibyte-p' returns the +multibyteness of the strings passed to the process's filter. + +*** If a process's coding system is `raw-text' or `no-conversion' and its +buffer is multibyte, the output of the process is at first converted +to multibyte by `string-to-multibyte' then inserted in the buffer. +Previously, it was converted to multibyte by `string-as-multibyte', +which was not compatible with the behavior of file reading. + ++++ +** Enhanced networking support. + +*** The new `make-network-process' function makes network connections. +It allows opening of stream and datagram connections to a server, as well as +create a stream or datagram server inside emacs. + +- A server is started using :server t arg. +- Datagram connection is selected using :type 'datagram arg. +- A server can open on a random port using :service t arg. +- Local sockets are supported using :family 'local arg. +- IPv6 is supported (when available). You may explicitly select IPv6 + using :family 'ipv6 arg. +- Non-blocking connect is supported using :nowait t arg. +- The process' property list can be initialized using :plist PLIST arg; + a copy of the server process' property list is automatically inherited + by new client processes created to handle incoming connections. + +To test for the availability of a given feature, use featurep like this: + (featurep 'make-network-process '(:type datagram)) + (featurep 'make-network-process '(:family ipv6)) + +*** The old `open-network-stream' now uses `make-network-process'. + +*** New functions `process-datagram-address', `set-process-datagram-address'. + +These functions are used with datagram-based network processes to get +and set the current address of the remote partner. + +*** New function `format-network-address'. + +This function reformats the Lisp representation of a network address +to a printable string. For example, an IP address A.B.C.D and port +number P is represented as a five element vector [A B C D P], and the +printable string returned for this vector is "A.B.C.D:P". See the doc +string for other formatting options. + +*** `process-contact' has an optional KEY argument. + +Depending on this argument, you can get the complete list of network +process properties or a specific property. Using :local or :remote as +the KEY, you get the address of the local or remote end-point. + +An Inet address is represented as a 5 element vector, where the first +4 elements contain the IP address and the fifth is the port number. + +*** New functions `stop-process' and `continue-process'. + +These functions stop and restart communication through a network +connection. For a server process, no connections are accepted in the +stopped state. For a client process, no input is received in the +stopped state. + +*** New function `network-interface-list'. + +This function returns a list of network interface names and their +current network addresses. + +*** New function `network-interface-info'. -*** You can avoid warnings for possibly-undefined symbols with a -simple convention that the compiler understands. (This is mostly -useful in code meant to be portable to different Emacs versions.) -Write forms like the following, or code that macroexpands into such -forms: +This function returns the network address, hardware address, current +status, and other information about a specific network interface. - (if (fboundp 'foo) ) - (if (boundp 'foo) form -won't produce a warning if it's not defined as a function, and in the -second case, using `foo' as a variable won't produce a warning if it's -unbound. The test must be in exactly one of the above forms (after -macro expansion), but such tests may be nested. Note that `when' and -`unless' expand to `if', but `cond' doesn't. +The status message passed to the sentinel for a deleted network +process is "deleted". The message passed to the sentinel when the +connection is closed by the remote peer has been changed to +"connection broken by remote peer". -** New translation table `translation-table-for-input'. +** Using window objects: +++ -** `load-history' can now have elements of the form (t . FUNNAME), -which means FUNNAME was previously defined as an autoload (before the -current file redefined it). +*** New function `window-body-height'. -** New Lisp library testcover.el works with edebug to help you determine -whether you've tested all your Lisp code. Function testcover-start -instruments all functions in a given file. Then test your code. Function -testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to -show where coverage is lacking. Command testcover-next-mark (bind it to -a key!) will move point forward to the next spot that has a splotch. +This is like `window-height' but does not count the mode line or the +header line. -*** Normally, a red splotch indicates the form was never completely evaluated; -a brown splotch means it always evaluated to the same value. The red -splotches are skipped for forms that can't possibly complete their evaluation, -such as `error'. The brown splotches are skipped for forms that are expected -to always evaluate to the same value, such as (setq x 14). ++++ +*** New function `window-body-height'. -*** For difficult cases, you can add do-nothing macros to your code to help -out the test coverage tool. The macro 1value suppresses a brown splotch for -its argument. The macro noreturn suppresses a red splotch. +This is like `window-height' but does not count the mode line +or the header line. +++ -** New function unsafep returns nil if the given Lisp form can't possibly -do anything dangerous; otherwise it returns a reason why the form might be -unsafe (calls dangerous function, alters global variable, etc). +*** You can now make a window as short as one line. -** When you are printing using print-continuous-numbering, -if no objects have had to be recorded in print-number-table, -all elements of print-number-table are nil. +A window that is just one line tall does not display either a mode +line or a header line, even if the variables `mode-line-format' and +`header-line-format' call for them. A window that is two lines tall +cannot display both a mode line and a header line at once; if the +variables call for both, only the mode line actually appears. -** When using non-toolkit scroll bars with the default width, -the scroll-bar-width frame parameter value is nil. ++++ +*** The new function `window-inside-edges' returns the edges of the +actual text portion of the window, not including the scroll bar or +divider line, the fringes, the display margins, the header line and +the mode line. -** The new function copy-abbrev-table returns a new abbrev table that -is a copy of a given abbrev table. ++++ +*** The new functions `window-pixel-edges' and `window-inside-pixel-edges' +return window edges in units of pixels, rather than columns and lines. +++ -** The option --script FILE runs Emacs in batch mode and loads FILE. -It is useful for writing Emacs Lisp shell script files, because they -can start with this line: +*** The new macro `with-selected-window' temporarily switches the +selected window without impacting the order of `buffer-list'. +It saves and restores the current buffer, too. - #!/usr/bin/emacs --script ++++ +*** `select-window' takes an optional second argument NORECORD. -** A function's docstring can now hold the function's usage info on -its last line. It should match the regexp "\n\n(fn.*)\\'". +This is like `switch-to-buffer'. -** New CCL functions `lookup-character' and `lookup-integer' access -hash tables defined by the Lisp function `define-translation-hash-table'. ++++ +*** `save-selected-window' now saves and restores the selected window +of every frame. This way, it restores everything that can be changed +by calling `select-window'. It also saves and restores the current +buffer. -** The new function `minibufferp' returns non-nil if its optional buffer -argument is a minibuffer. If the argument is omitted it defaults to -the current buffer. ++++ +*** `set-window-buffer' has an optional argument KEEP-MARGINS. -** There is a new Warnings facility; see the functions `warn' -and `display-warning'. +If non-nil, that says to preserve the window's current margin, fringe, +and scroll-bar settings. -** The functions all-completions and try-completion now accept lists -of strings as well as hash-tables additionally to alists, obarrays -and functions. Furthermore, the function `test-completion' is now -exported to Lisp. ++++ +*** The new function `window-tree' returns a frame's window tree. -** When pure storage overflows while dumping, Emacs now prints how -much pure storage it will approximately need. ++++ +*** The functions `get-lru-window' and `get-largest-window' take an optional +argument `dedicated'. If non-nil, those functions do not ignore +dedicated windows. -** The new variable `auto-coding-functions' lets you specify functions -to examine a file being visited and deduce the proper coding system -for it. (If the coding system is detected incorrectly for a specific -file, you can put a `coding:' tags to override it.) ++++ +*** The new function `adjust-window-trailing-edge' moves the right +or bottom edge of a window. It does not move other window edges. -** The new function `merge-coding-systems' fills in unspecified aspects -of one coding system from another coding system. ++++ +** Customizable fringe bitmaps -** The variable `safe-local-eval-forms' specifies a list of forms that -are ok to evaluate when they appear in an `eval' local variables -specification. Normally Emacs asks for confirmation before evaluating -such a form, but if the form appears in this list, no confirmation is -needed. +*** New function `define-fringe-bitmap' can now be used to create new +fringe bitmaps, as well as change the built-in fringe bitmaps. -** If a function has a non-nil `safe-local-eval-function' property, -that means it is ok to evaluate some calls to that function when it -appears in an `eval' local variables specification. If the property -is t, then any form calling that function with constant arguments is -ok. If the property is a function or list of functions, they are called -with the form as argument, and if any returns t, the form is ok to call. +To change a built-in bitmap, do (require 'fringe) and use the symbol +identifing the bitmap such as `left-truncation' or `continued-line'. -If the form is not "ok to call", that means Emacs asks for -confirmation as before. +*** New function `destroy-fringe-bitmap' deletes a fringe bitmap +or restores a built-in one to its default value. -** Controlling the left and right fringe widths. +*** New function `set-fringe-bitmap-face' specifies the face to be +used for a specific fringe bitmap. The face is automatically merged +with the `fringe' face, so normally, the face should only specify the +foreground color of the bitmap. -The left and right fringe widths can now be controlled by setting the -`left-fringe' and `right-fringe' frame parameters to an integer value -specifying the width in pixels. Setting the width to 0 effectively -removes the corresponding fringe. +*** There are new display properties, `left-fringe' and `right-fringe', +that can be used to show a specific bitmap in the left or right fringe +bitmap of the display line. -The actual fringe widths may deviate from the specified widths, since -the combined fringe widths must match an integral number of columns. -The extra width is distributed evenly between the left and right fringe. -For force a specific fringe width, specify the width as a negative -integer (if both widths are negative, only the left fringe gets the -specified width). +Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a +symbol identifying a fringe bitmap, either built-in or defined with +`define-fringe-bitmap', and FACE is an optional face name to be used +for displaying the bitmap instead of the default `fringe' face. +When specified, FACE is automatically merged with the `fringe' face. + +*** New function `fringe-bitmaps-at-pos' returns the current fringe +bitmaps in the display line at a given buffer position. + +** Other window fringe features: + ++++ +*** Controlling the default left and right fringe widths. + +The default left and right fringe widths for all windows of a frame +can now be controlled by setting the `left-fringe' and `right-fringe' +frame parameters to an integer value specifying the width in pixels. +Setting the width to 0 effectively removes the corresponding fringe. + +The actual default fringe widths for the frame may deviate from the +specified widths, since the combined fringe widths must match an +integral number of columns. The extra width is distributed evenly +between the left and right fringe. To force a specific fringe width, +specify the width as a negative integer (if both widths are negative, +only the left fringe gets the specified width). Setting the width to nil (the default), restores the default fringe width which is the minimum number of pixels necessary to display any @@ -1354,460 +4607,626 @@ of the currently defined fringe bitmaps. The width of the built-in fringe bitmaps is 8 pixels. +++ -** Renamed file hooks to follow the convention: -find-file-hooks to find-file-hook, -find-file-not-found-hooks to find-file-not-found-functions, -write-file-hooks to write-file-functions, -write-contents-hooks to write-contents-functions. -Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). +*** Per-window fringe and scrollbar settings + +**** Windows can now have their own individual fringe widths and +position settings. + +To control the fringe widths of a window, either set the buffer-local +variables `left-fringe-width', `right-fringe-width', or call +`set-window-fringes'. + +To control the fringe position in a window, that is, whether fringes +are positioned between the display margins and the window's text area, +or at the edges of the window, either set the buffer-local variable +`fringes-outside-margins' or call `set-window-fringes'. + +The function `window-fringes' can be used to obtain the current +settings. To make `left-fringe-width', `right-fringe-width', and +`fringes-outside-margins' take effect, you must set them before +displaying the buffer in a window, or use `set-window-buffer' to force +an update of the display margins. + +**** Windows can now have their own individual scroll-bar settings +controlling the width and position of scroll-bars. + +To control the scroll-bar of a window, either set the buffer-local +variables `scroll-bar-mode' and `scroll-bar-width', or call +`set-window-scroll-bars'. The function `window-scroll-bars' can be +used to obtain the current settings. To make `scroll-bar-mode' and +`scroll-bar-width' take effect, you must set them before displaying +the buffer in a window, or use `set-window-buffer' to force an update +of the display margins. -** The new variable `delete-frame-functions' replaces `delete-frame-hook'. -It was renamed to follow the naming conventions for abnormal hooks. The old -name remains available as an alias, but has been marked obsolete. +** Redisplay features: -** The `read-file-name' function now takes an additional argument which -specifies a predicate which the file name read must satify. The -new variable `read-file-name-predicate' contains the predicate argument -while reading the file name from the minibuffer; the predicate in this -variable is used by read-file-name-internal to filter the completion list. ++++ +*** `sit-for' can now be called with args (SECONDS &optional NODISP). -** The new variable `read-file-name-function' can be used by lisp code -to override the internal read-file-name function. ++++ +*** New function `force-window-update' can initiate a full redisplay of +one or all windows. Normally, this is not needed as changes in window +contents are detected automatically. However, certain implicit +changes to mode lines, header lines, or display properties may require +forcing an explicit window update. -** The new function `read-directory-name' can be used instead of -`read-file-name' to read a directory name; when used, completion -will only show directories. ++++ +*** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able +to display CHAR. More precisely, if the selected frame's fontset has +a font to display the character set that CHAR belongs to. -** The new function `file-remote-p' tests a file name and returns -non-nil if it specifies a remote file (one that Emacs accesses using -its own special methods and not directly through the file system). +Fontsets can specify a font on a per-character basis; when the fontset +does that, this value cannot be accurate. -** When a Lisp file uses CL functions at run-time, compiling the file -now issues warnings about these calls, unless the file performs -(require 'cl) when loaded. ++++ +*** You can define multiple overlay arrows via the new +variable `overlay-arrow-variable-list'. -** The new Lisp library fringe.el controls the apperance of fringes. +It contains a list of varibles which contain overlay arrow position +markers, including the original `overlay-arrow-position' variable. -** The `defmacro' form may contain declarations specifying how to -indent the macro in Lisp mode and how to debug it with Edebug. The -syntax of defmacro has been extended to +Each variable on this list can have individual `overlay-arrow-string' +and `overlay-arrow-bitmap' properties that specify an overlay arrow +string (for non-window terminals) or fringe bitmap (for window +systems) to display at the corresponding overlay arrow position. +If either property is not set, the default `overlay-arrow-string' or +'overlay-arrow-fringe-bitmap' will be used. - (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) ++++ +*** New `line-height' and `line-spacing' properties for newline characters -DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The -declaration specifiers supported are: +A newline can now have `line-height' and `line-spacing' text or overlay +properties that control the height of the corresponding display row. -(indent INDENT) - Set NAME's `lisp-indent-function' property to INDENT. +If the `line-height' property value is t, the newline does not +contribute to the height of the display row; instead the height of the +newline glyph is reduced. Also, a `line-spacing' property on this +newline is ignored. This can be used to tile small images or image +slices without adding blank areas between the images. -(edebug DEBUG) - Set NAME's `edebug-form-spec' property to DEBUG. (This is - equivalent to writing a `def-edebug-spec' for the macro. +If the `line-height' property value is a positive integer, the value +specifies the minimum line height in pixels. If necessary, the line +height it increased by increasing the line's ascent. -** Interactive commands can be remapped through keymaps. +If the `line-height' property value is a float, the minimum line +height is calculated by multiplying the default frame line height by +the given value. -This is an alternative to using defadvice or substitute-key-definition -to modify the behavior of a key binding using the normal keymap -binding and lookup functionality. +If the `line-height' property value is a cons (FACE . RATIO), the +minimum line height is calculated as RATIO * height of named FACE. +RATIO is int or float. If FACE is t, it specifies the current face. -When a key sequence is bound to a command, and that command is -remapped to another command, that command is run instead of the -original command. +If the `line-height' property value is a cons (nil . RATIO), the line +height is calculated as RATIO * actual height of the line's contents. -Example: -Suppose that minor mode my-mode has defined the commands -my-kill-line and my-kill-word, and it wants C-k (and any other key -bound to kill-line) to run the command my-kill-line instead of -kill-line, and likewise it wants to run my-kill-word instead of -kill-word. +If the `line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies +the line height as described above, while TOTAL is any of the forms +described above and specifies the total height of the line, causing a +varying number of pixels to be inserted after the line to make it line +exactly that many pixels high. -Instead of rebinding C-k and the other keys in the minor mode map, -command remapping allows you to directly map kill-line into -my-kill-line and kill-word into my-kill-word through the minor mode -map using define-key: +If the `line-spacing' property value is an positive integer, the value +is used as additional pixels to insert after the display line; this +overrides the default frame `line-spacing' and any buffer local value of +the `line-spacing' variable. - (define-key my-mode-map [remap kill-line] 'my-kill-line) - (define-key my-mode-map [remap kill-word] 'my-kill-word) +If the `line-spacing' property is a float or cons, the line spacing +is calculated as specified above for the `line-height' property. -Now, when my-mode is enabled, and the user enters C-k or M-d, -the commands my-kill-line and my-kill-word are run. ++++ +*** The buffer local `line-spacing' variable can now have a float value, +which is used as a height relative to the default frame line height. -Notice that only one level of remapping is supported. In the above -example, this means that if my-kill-line is remapped to other-kill, -then C-k still runs my-kill-line. ++++ +*** Enhancements to stretch display properties + +The display property stretch specification form `(space PROPS)', where +PROPS is a property list, now allows pixel based width and height +specifications, as well as enhanced horizontal text alignment. + +The value of these properties can now be a (primitive) expression +which is evaluated during redisplay. The following expressions +are supported: + +EXPR ::= NUM | (NUM) | UNIT | ELEM | POS | IMAGE | FORM +NUM ::= INTEGER | FLOAT | SYMBOL +UNIT ::= in | mm | cm | width | height +ELEM ::= left-fringe | right-fringe | left-margin | right-margin + | scroll-bar | text +POS ::= left | center | right +FORM ::= (NUM . EXPR) | (OP EXPR ...) +OP ::= + | - + +The form `NUM' specifies a fractional width or height of the default +frame font size. The form `(NUM)' specifies an absolute number of +pixels. If a symbol is specified, its buffer-local variable binding +is used. The `in', `mm', and `cm' units specifies the number of +pixels per inch, milli-meter, and centi-meter, resp. The `width' and +`height' units correspond to the width and height of the current face +font. An image specification corresponds to the width or height of +the image. + +The `left-fringe', `right-fringe', `left-margin', `right-margin', +`scroll-bar', and `text' elements specify to the width of the +corresponding area of the window. + +The `left', `center', and `right' positions can be used with :align-to +to specify a position relative to the left edge, center, or right edge +of the text area. One of the above window elements (except `text') +can also be used with :align-to to specify that the position is +relative to the left edge of the given area. Once the base offset for +a relative position has been set (by the first occurrence of one of +these symbols), further occurences of these symbols are interpreted as +the width of the area. + +For example, to align to the center of the left-margin, use + :align-to (+ left-margin (0.5 . left-margin)) + +If no specific base offset is set for alignment, it is always relative +to the left edge of the text area. For example, :align-to 0 in a +header line aligns with the first text column in the text area. + +The value of the form `(NUM . EXPR)' is the value of NUM multiplied by +the value of the expression EXPR. For example, (2 . in) specifies a +width of 2 inches, while (0.5 . IMAGE) specifies half the width (or +height) of the specified image. + +The form `(+ EXPR ...)' adds up the value of the expressions. +The form `(- EXPR ...)' negates or subtracts the value of the expressions. -The following changes have been made to provide command remapping: ++++ +*** Normally, the cursor is displayed at the end of any overlay and +text property string that may be present at the current window +position. The cursor can now be placed on any character of such +strings by giving that character a non-nil `cursor' text property. -- Command remappings are defined using `define-key' with a prefix-key - `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD - to definition DEF in keymap MAP. The definition is not limited to - another command; it can be anything accepted for a normal binding. ++++ +*** The display space :width and :align-to text properties are now +supported on text terminals. -- The new function `command-remapping' returns the binding for a - remapped command in the current keymaps, or nil if not remapped. ++++ +*** Support for displaying image slices -- key-binding now remaps interactive commands unless the optional - third argument NO-REMAP is non-nil. +**** New display property (slice X Y WIDTH HEIGHT) can be used with +an image property to display only a specific slice of the image. -- where-is-internal now returns nil for a remapped command (e.g. - kill-line if my-mode is enabled), and the actual key binding for - the command it is remapped to (e.g. C-k for my-kill-line). - It also has a new optional fifth argument, NO-REMAP, which inhibits - remapping if non-nil (e.g. it returns C-k for kill-line and - for my-kill-line). +**** Function `insert-image' has new optional fourth arg to +specify image slice (X Y WIDTH HEIGHT). -- The new variable `this-original-command' contains the original - command before remapping. It is equal to `this-command' when the - command was not remapped. +**** New function `insert-sliced-image' inserts a given image as a +specified number of evenly sized slices (rows x columns). -** New variable emulation-mode-map-alists. ++++ +*** Images can now have an associated image map via the :map property. + +An image map is an alist where each element has the format (AREA ID PLIST). +An AREA is specified as either a rectangle, a circle, or a polygon: +A rectangle is a cons (rect . ((X0 . Y0) . (X1 . Y1))) specifying the +pixel coordinates of the upper left and bottom right corners. +A circle is a cons (circle . ((X0 . Y0) . R)) specifying the center +and the radius of the circle; R can be a float or integer. +A polygon is a cons (poly . [X0 Y0 X1 Y1 ...]) where each pair in the +vector describes one corner in the polygon. + +When the mouse pointer is above a hot-spot area of an image, the +PLIST of that hot-spot is consulted; if it contains a `help-echo' +property it defines a tool-tip for the hot-spot, and if it contains +a `pointer' property, it defines the shape of the mouse cursor when +it is over the hot-spot. See the variable `void-area-text-pointer' +for possible pointer shapes. + +When you click the mouse when the mouse pointer is over a hot-spot, +an event is composed by combining the ID of the hot-spot with the +mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. -Lisp packages using many minor mode keymaps can now maintain their own -keymap alist separate from minor-mode-map-alist by adding their keymap -alist to this list. ++++ +*** The function `find-image' now searches in etc/images/ and etc/. +The new variable `image-load-path' is a list of locations in which to +search for image files. The default is to search in etc/images, then +in etc/, and finally in the directories specified by `load-path'. +Subdirectories of etc/ and etc/images are not recursively searched; if +you put an image file in a subdirectory, you have to specify it +explicitly; for example, if an image is put in etc/images/foo/bar.xpm: -** Atomic change groups. + (defimage foo-image '((:type xpm :file "foo/bar.xpm"))) -To perform some changes in the current buffer "atomically" so that -they either all succeed or are all undone, use `atomic-change-group' -around the code that makes changes. For instance: ++++ +*** The new variable `max-image-size' defines the maximum size of +images that Emacs will load and display. - (atomic-change-group - (insert foo) - (delete-region x y)) +** Mouse pointer features: -If an error (or other nonlocal exit) occurs inside the body of -`atomic-change-group', it unmakes all the changes in that buffer that -were during the execution of the body. The change group has no effect -on any other buffers--any such changes remain. ++++ (lispref) +??? (man) +*** The mouse pointer shape in void text areas (i.e. after the end of a +line or below the last line in the buffer) of the text window is now +controlled by the new variable `void-text-area-pointer'. The default +is to use the `arrow' (non-text) pointer. Other choices are `text' +(or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. -If you need something more sophisticated, you can directly call the -lower-level functions that `atomic-change-group' uses. Here is how. ++++ +*** The mouse pointer shape over an image can now be controlled by the +:pointer image property. -To set up a change group for one buffer, call `prepare-change-group'. -Specify the buffer as argument; it defaults to the current buffer. -This function returns a "handle" for the change group. You must save -the handle to activate the change group and then finish it. ++++ +*** The mouse pointer shape over ordinary text or images can now be +controlled/overriden via the `pointer' text property. -Before you change the buffer again, you must activate the change -group. Pass the handle to `activate-change-group' afterward to -do this. +** Mouse event enhancements: -After you make the changes, you must finish the change group. You can -either accept the changes or cancel them all. Call -`accept-change-group' to accept the changes in the group as final; -call `cancel-change-group' to undo them all. ++++ +*** Mouse events for clicks on window fringes now specify `left-fringe' +or `right-fringe' as the area. -You should use `unwind-protect' to make sure the group is always -finished. The call to `activate-change-group' should be inside the -`unwind-protect', in case the user types C-g just after it runs. -(This is one reason why `prepare-change-group' and -`activate-change-group' are separate functions.) Once you finish the -group, don't use the handle again--don't try to finish the same group -twice. ++++ +*** All mouse events now include a buffer position regardless of where +you clicked. For mouse clicks in window margins and fringes, this is +a sensible buffer position corresponding to the surrounding text. -To make a multibuffer change group, call `prepare-change-group' once -for each buffer you want to cover, then use `nconc' to combine the -returned values, like this: ++++ +*** `posn-point' now returns buffer position for non-text area events. - (nconc (prepare-change-group buffer-1) - (prepare-change-group buffer-2)) ++++ +*** Function `mouse-set-point' now works for events outside text area. -You can then activate the multibuffer change group with a single call -to `activate-change-group', and finish it with a single call to -`accept-change-group' or `cancel-change-group'. ++++ +*** New function `posn-area' returns window area clicked on (nil means +text area). -Nested use of several change groups for the same buffer works as you -would expect. Non-nested use of change groups for the same buffer -will lead to undesirable results, so don't let it happen; the first -change group you start for any given buffer should be the last one -finished. ++++ +*** Mouse events include actual glyph column and row for all event types +and all areas. + ++++ +*** New function `posn-actual-col-row' returns the actual glyph coordinates +of the mouse event position. + ++++ +*** Mouse events can now indicate an image object clicked on. + ++++ +*** Mouse events include relative X and Y pixel coordinates relative to +the top left corner of the object (image or character) clicked on. + ++++ +*** Mouse events include the pixel width and height of the object +(image or character) clicked on. + ++++ +*** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. + +These return the image or string object of a mouse click, the X and Y +pixel coordinates relative to the top left corner of that object, and +the total width and height of that object. + +** Text property and overlay changes: + ++++ +*** Arguments for `remove-overlays' are now optional, so that you can +remove all overlays in the buffer with just (remove-overlays). +++ -** New variable char-property-alias-alist. +*** New variable `char-property-alias-alist'. This variable allows you to create alternative names for text properties. It works at the same level as `default-text-properties', although it applies to overlays as well. This variable was introduced to implement the `font-lock-face' property. -** New special text property `font-lock-face'. - -This property acts like the `face' property, but it is controlled by -M-x font-lock-mode. It is not, strictly speaking, a builtin text -property. Instead, it is implemented inside font-core.el, using the -new variable `char-property-alias-alist'. - -** New function remove-list-of-text-properties. ++++ +*** New function `get-char-property-and-overlay' accepts the same +arguments as `get-char-property' and returns a cons whose car is the +return value of `get-char-property' called with those arguments and +whose cdr is the overlay in which the property was found, or nil if +it was found as a text property or not found at all. -The new function `remove-list-of-text-properties' is almost the same -as `remove-text-properties'. The only difference is that it takes -a list of property names as argument rather than a property list. ++++ +*** The new function `remove-list-of-text-properties'. -** New function insert-for-yank. +It is like `remove-text-properties' except that it takes a list of +property names as argument rather than a property list. -This function normally works like `insert' but removes the text -properties in the `yank-excluded-properties' list. However, if the -inserted text has a `yank-handler' text property on the first -character of the string, the insertion of the text may be modified in -a number of ways. See the description of `yank-handler' below. +** Face changes -** New function insert-buffer-substring-as-yank. ++++ +*** The new face attribute condition `min-colors' can be used to tailor +the face color to the number of colors supported by a display, and +define the foreground and background colors accordingly so that they +look best on a terminal that supports at least this many colors. This +is now the preferred method for defining default faces in a way that +makes a good use of the capabilities of the display. -This function works like `insert-buffer-substring', but removes the -text properties in the `yank-excluded-properties' list. ++++ +*** New function `display-supports-face-attributes-p' can be used to test +whether a given set of face attributes is actually displayable. -** New function insert-buffer-substring-no-properties. +A new predicate `supports' has also been added to the `defface' face +specification language, which can be used to do this test for faces +defined with `defface'. -This function is like insert-buffer-substring, but removes all -text properties from the inserted substring. +--- +*** The special treatment of faces whose names are of the form `fg:COLOR' +or `bg:COLOR' has been removed. Lisp programs should use the +`defface' facility for defining faces with specific colors, or use +the feature of specifying the face attributes :foreground and :background +directly in the `face' property instead of using a named face. -** New `yank-handler' text property may be used to control how -previously killed text on the kill-ring is reinserted. ++++ +*** The first face specification element in a defface can specify +`default' instead of frame classification. Then its attributes act as +defaults that apply to all the subsequent cases (and can be overridden +by them). -The value of the yank-handler property must be a list with one to five -elements with the following format: - (FUNCTION PARAM NOEXCLUDE UNDO). ++++ +*** The variable `face-font-rescale-alist' specifies how much larger +(or smaller) font we should use. For instance, if the value is +'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 +point, we actually use a font of 13 point if the font matches +SOME-FONTNAME-PATTERN. -The `insert-for-yank' function looks for a yank-handler property on -the first character on its string argument (typically the first -element on the kill-ring). If a yank-handler property is found, -the normal behaviour of `insert-for-yank' is modified in various ways: +--- +*** The function `face-differs-from-default-p' now truly checks +whether the given face displays differently from the default face or +not (previously it did only a very cursory check). - When FUNCTION is present and non-nil, it is called instead of `insert' -to insert the string. FUNCTION takes one argument--the object to insert. - If PARAM is present and non-nil, it replaces STRING as the object -passed to FUNCTION (or `insert'); for example, if FUNCTION is -`yank-rectangle', PARAM should be a list of strings to insert as a -rectangle. - If NOEXCLUDE is present and non-nil, the normal removal of the -yank-excluded-properties is not performed; instead FUNCTION is -responsible for removing those properties. This may be necessary -if FUNCTION adjusts point before or after inserting the object. - If UNDO is present and non-nil, it is a function that will be called -by `yank-pop' to undo the insertion of the current object. It is -called with two arguments, the start and end of the current region. -FUNCTION may set `yank-undo-function' to override the UNDO value. ++++ +*** `face-attribute', `face-foreground', `face-background', `face-stipple'. -*** The functions kill-new, kill-append, and kill-region now has an -optional third argument to specify the yank-handler text property -to put on the killed text. +These now accept a new optional argument, INHERIT, which controls how +face inheritance is used when determining the value of a face +attribute. -*** The function yank-pop will now use a non-nil value of the variable -`yank-undo-function' (instead of delete-region) to undo the previous -yank or yank-pop command (or a call to insert-for-yank). The function -insert-for-yank automatically sets that variable according to the UNDO -element of the string argument's yank-handler text property if present. ++++ +*** New functions `face-attribute-relative-p' and `merge-face-attribute' +help with handling relative face attributes. -** New function display-supports-face-attributes-p may be used to test -whether a given set of face attributes is actually displayable. ++++ +*** The priority of faces in an :inherit attribute face list is reversed. -A new predicate `supports' has also been added to the `defface' face -specification language, which can be used to do this test for faces -defined with defface. +If a face contains an :inherit attribute with a list of faces, earlier +faces in the list override later faces in the list; in previous +releases of Emacs, the order was the opposite. This change was made +so that :inherit face lists operate identically to face lists in text +`face' properties. -** face-attribute, face-foreground, face-background, and face-stipple now -accept a new optional argument, INHERIT, which controls how face -inheritance is used when determining the value of a face attribute. +--- +*** On terminals, faces with the :inverse-video attribute are displayed +with swapped foreground and background colors even when one of them is +not specified. In previous releases of Emacs, if either foreground +or background color was unspecified, colors were not swapped. This +was inconsistent with the face behavior under X. -** New functions face-attribute-relative-p and merge-face-attribute -help with handling relative face attributes. +--- +*** `set-fontset-font', `fontset-info', `fontset-font' now operate on +the default fontset if the argument NAME is nil.. -** Enhancements to process support +** Font-Lock changes: -*** Function list-processes now has an optional argument; if non-nil, -only the processes whose query-on-exit flag is set are listed. ++++ +*** New special text property `font-lock-face'. -*** New set-process-query-on-exit-flag and process-query-on-exit-flag -functions. The existing process-kill-without-query function is still -supported, but new code should use the new functions. +This property acts like the `face' property, but it is controlled by +M-x font-lock-mode. It is not, strictly speaking, a builtin text +property. Instead, it is implemented inside font-core.el, using the +new variable `char-property-alias-alist'. -*** Function signal-process now accepts a process object or process -name in addition to a process id to identify the signalled process. ++++ +*** font-lock can manage arbitrary text-properties beside `face'. -*** Processes now have an associated property list where programs can -maintain process state and other per-process related information. +**** the FACENAME returned in `font-lock-keywords' can be a list of the +form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other +properties than `face'. -The new functions process-get and process-put are used to access, add, -and modify elements on this property list. +**** `font-lock-extra-managed-props' can be set to make sure those +extra properties are automatically cleaned up by font-lock. -The new low-level functions process-plist and set-process-plist are -used to access and replace the entire property list of a process. +--- +*** jit-lock obeys a new text-property `jit-lock-defer-multiline'. +If a piece of text with that property gets contextually refontified +(see `jit-lock-defer-contextually'), then all of that text will +be refontified. This is useful when the syntax of a textual element +depends on text several lines further down (and when `font-lock-multiline' +is not appropriate to solve that problem). For example in Perl: -** Enhanced networking support. + s{ + foo + }{ + bar + }e -*** There is a new `make-network-process' function which supports -opening of stream and datagram connections to a server, as well as -create a stream or datagram server inside emacs. +Adding/removing the last `e' changes the `bar' from being a piece of +text to being a piece of code, so you'd put a `jit-lock-defer-multiline' +property over the second half of the command to force (deferred) +refontification of `bar' whenever the `e' is added/removed. -- A server is started using :server t arg. -- Datagram connection is selected using :type 'datagram arg. -- A server can open on a random port using :service t arg. -- Local sockets are supported using :family 'local arg. -- Non-blocking connect is supported using :nowait t arg. -- The process' property list may be initialized using :plist PLIST arg; - a copy of the server process' property list is automatically inherited - by new client processes created to handle incoming connections. +** Major mode mechanism changes: -To test for the availability of a given feature, use featurep like this: - (featurep 'make-network-process '(:type datagram)) ++++ +*** `set-auto-mode' now gives the interpreter magic line (if present) +precedence over the file name. Likewise an ` ) + (if (boundp 'foo) form +won't produce a warning if it's not defined as a function, and in the +second case, using `foo' as a variable won't produce a warning if it's +unbound. The test must be in exactly one of the above forms (after +macro expansion), but such tests can be nested. Note that `when' and +`unless' expand to `if', but `cond' doesn't. -** New function `tool-bar-local-item-from-menu' +*** `(featurep 'xemacs)' is treated by the compiler as nil. This +helps to avoid noisy compiler warnings in code meant to run under both +Emacs and XEmacs and can sometimes make the result significantly more +efficient. Since byte code from recent versions of XEmacs won't +generally run in Emacs and vice versa, this optimization doesn't lose +you anything. -The `tool-bar-add-item-from-menu' must not be used (as previously -recommended) for making entries in the tool bar for local keymaps. -Instead, use the function `tool-bar-local-item-from-menu', which lets -you specify the map to use as an argument. +*** The local variable `no-byte-compile' in Lisp files is now obeyed. -+++ -** The function `atan' now accepts an optional second argument. +--- +*** When a Lisp file uses CL functions at run-time, compiling the file +now issues warnings about these calls, unless the file performs +(require 'cl) when loaded. -When called with 2 arguments, as in `(atan Y X)', `atan' returns the -angle in radians between the vector [X, Y] and the X axis. (This is -equivalent to the standard C library function `atan2'.) +** Frame operations: +++ -** You can now make a window as short as one line. +*** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'. -A window that is just one line tall does not display either a mode -line or a header line, even if the variables `mode-line-format' and -`header-line-format' call for them. A window that is two lines tall -cannot display both a mode line and a header line at once; if the -variables call for both, only the mode line actually appears. +These functions return the current locations of the vertical and +horizontal scroll bars in a frame or window. + ++++ +*** The new function `modify-all-frames-parameters' modifies parameters +for all (existing and future) frames. +++ -** The new frame parameter `tty-color-mode' specifies the mode to use +*** The new frame parameter `tty-color-mode' specifies the mode to use for color support on character terminal frames. Its value can be a number of colors to support, or a symbol. See the Emacs Lisp Reference manual for more detailed documentation. -** Mode line display ignores text properties in the value -of a variable whose `risky-local-variables' property is nil. - ---- -** Indentation of simple and extended loop forms has been added to the -cl-indent package. The new user options -`lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and -`lisp-simple-loop-indentation' can be used to customize the -indentation of keywords and forms in loop forms. ++++ +*** When using non-toolkit scroll bars with the default width, +the `scroll-bar-width' frame parameter value is nil. ---- -** Indentation of backquoted forms has been made customizable in the -cl-indent package. See the new user option `lisp-backquote-indentation'. +** Mule changes: -** Already true in Emacs 21.1, but not emphasized clearly enough: ++++ +*** Already true in Emacs 21.1, but not emphasized clearly enough: Multibyte buffers can now faithfully record all 256 character codes from 0 to 255. As a result, most of the past reasons to use unibyte @@ -1822,214 +5241,297 @@ the time it takes to convert the format. 3. For binary files where format conversion would be pointless and wasteful. -** If text has a `keymap' property, that keymap takes precedence -over minor mode keymaps. +--- +*** `set-buffer-file-coding-system' now takes an additional argument, +NOMODIFY. If it is non-nil, it means don't mark the buffer modified. + ++++ +*** The new variable `auto-coding-functions' lets you specify functions +to examine a file being visited and deduce the proper coding system +for it. (If the coding system is detected incorrectly for a specific +file, you can put a `coding:' tags to override it.) + +--- +*** The new function `merge-coding-systems' fills in unspecified aspects +of one coding system from another coding system. + +--- +*** New coding system property `mime-text-unsuitable' indicates that +the coding system's `mime-charset' is not suitable for MIME text +parts, e.g. utf-16. -** A hex escape in a string forces the string to be multibyte. -An octal escape makes it unibyte. ++++ +*** New function `decode-coding-inserted-region' decodes a region as if +it is read from a file without decoding. -** Only one of the beginning or end of an invisible, intangible region is -considered an acceptable value for point; which one is determined by -examining how the invisible/intangible properties are inherited when new -text is inserted adjacent to them. If text inserted at the beginning would -inherit the invisible/intangible properties, then that position is -considered unacceptable, and point is forced to the position following the -invisible/intangible text. If text inserted at the end would inherit the -properties, then the opposite happens. +--- +*** New CCL functions `lookup-character' and `lookup-integer' access +hash tables defined by the Lisp function `define-translation-hash-table'. -Thus, point can only go to one end of an invisible, intangible region, but -not the other one. This prevents C-f and C-b from appearing to stand still -on the screen. +--- +*** New function `quail-find-key' returns a list of keys to type in the +current input method to input a character. -** field-beginning and field-end now accept an additional optional -argument, LIMIT. +** Mode line changes: +++ -** define-abbrev now accepts an optional argument SYSTEM-FLAG. If -non-nil, this marks the abbrev as a "system" abbrev, which means that -it won't be stored in the user's abbrevs file if he saves the abbrevs. -Major modes that predefine some abbrevs should always specify this -flag. +*** New function `format-mode-line'. -** Support for Mocklisp has been removed. +This returns the mode line or header line of the selected (or a +specified) window as a string with or without text properties. -** The function insert-string is now obsolete. ++++ +*** The new mode-line construct `(:propertize ELT PROPS...)' can be +used to add text properties to mode-line elements. -** The precedence of file-name-handlers has been changed. -Instead of blindly choosing the first handler that matches, -find-file-name-handler now gives precedence to a file-name handler -that matches near the end of the file name. More specifically, the -handler whose (match-beginning 0) is the largest is chosen. -In case of ties, the old "first matched" rule applies. ++++ +*** The new `%i' and `%I' constructs for `mode-line-format' can be used +to display the size of the accessible part of the buffer on the mode +line. -** Dense keymaps now handle inheritance correctly. -Previously a dense keymap would hide all of the simple-char key -bindings of the parent keymap. ++++ +*** Mouse-face on mode-line (and header-line) is now supported. -** jit-lock obeys a new text-property `jit-lock-defer-multiline'. -If a piece of text with that property gets contextually refontified -(see jit-lock-defer-contextually), then all of that text will -be refontified. This is useful when the syntax of a textual element -depends on text several lines further down (and when font-lock-multiline -is not appropriate to solve that problem). For example in Perl: +** Menu manipulation changes: - s{ - foo - }{ - bar - }e +--- +*** To manipulate the File menu using easy-menu, you must specify the +proper name "file". In previous Emacs versions, you had to specify +"files", even though the menu item itself was changed to say "File" +several versions ago. -Adding/removing the last `e' changes the `bar' from being a piece of -text to being a piece of code, so you'd put a jit-lock-defer-multiline -property over the second half of the command to force (deferred) -refontification of `bar' whenever the `e' is added/removed. +--- +*** The dummy function keys made by easy-menu are now always lower case. +If you specify the menu item name "Ada", for instance, it uses `ada' +as the "key" bound by that key binding. -** describe-vector now takes a second argument `describer' which is -called to print the entries' values. It defaults to `princ'. +This is relevant only if Lisp code looks for the bindings that were +made with easy-menu. -** defcustom and other custom declarations now use a default group -(the last group defined in the same file) when no :group was given. +--- +*** `easy-menu-define' now allows you to use nil for the symbol name +if you don't need to give the menu a name. If you install the menu +into other keymaps right away (MAPS is non-nil), it usually doesn't +need to have a name. -** emacsserver now runs pre-command-hook and post-command-hook when -it receives a request from emacsclient. +** Operating system access: -** The variable `recursive-load-depth-limit' has been deleted. -Emacs now signals an error if the same file is loaded with more -than 3 levels of nesting. ++++ +*** The new primitive `get-internal-run-time' returns the processor +run time used by Emacs since start-up. -** The default values of paragraph-start and indent-line-function have -been changed to reflect those used in Text mode rather than those used -in Indented-Text mode. ++++ +*** Functions `user-uid' and `user-real-uid' now return floats if the +user UID doesn't fit in a Lisp integer. Function `user-full-name' +accepts a float as UID parameter. -** If a major mode function has a non-nil `no-clone-indirect' -property, `clone-indirect-buffer' signals an error if you use -it in that buffer. ++++ +*** New function `locale-info' accesses locale information. -** If you set `query-replace-skip-read-only' non-nil, -`query-replace' and related functions simply ignore -a match if part of it has a read-only property. +--- +*** On MS Windows, locale-coding-system is used to interact with the OS. +The Windows specific variable w32-system-coding-system, which was +formerly used for that purpose is now an alias for locale-coding-system. -** In `replace-match', the replacement text no longer inherits -properties from surrounding text. +--- +*** New function `redirect-debugging-output' can be used to redirect +debugging output on the stderr file handle to a file. -** New function `buffer-local-value'. +** Miscellaneous: -- Function: buffer-local-value variable buffer ++++ +*** A number of hooks have been renamed to better follow the conventions: -This function returns the buffer-local binding of VARIABLE (a symbol) -in buffer BUFFER. If VARIABLE does not have a buffer-local binding in -buffer BUFFER, it returns the default value of VARIABLE instead. +`find-file-hooks' to `find-file-hook', +`find-file-not-found-hooks' to `find-file-not-found-functions', +`write-file-hooks' to `write-file-functions', +`write-contents-hooks' to `write-contents-functions', +`x-lost-selection-hooks' to `x-lost-selection-functions', +`x-sent-selection-hooks' to `x-sent-selection-functions', +`delete-frame-hook' to `delete-frame-functions'. -** New function `text-clone-create'. Text clones are chunks of text -that are kept identical by transparently propagating changes from one -clone to the other. +In each case the old name remains as an alias for the moment. -** font-lock can manage arbitrary text-properties beside `face'. -*** the FACENAME returned in font-lock-keywords can be a list -of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set -other properties than `face'. -*** font-lock-extra-managed-props can be set to make sure those extra -properties are automatically cleaned up by font-lock. ++++ +*** Variable `local-write-file-hooks' is marked obsolete. -** The special treatment of faces whose names are of the form `fg:COLOR' -or `bg:COLOR' has been removed. Lisp programs should use the -`defface' facility for defining faces with specific colors. +Use the LOCAL arg of `add-hook'. -** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' -are used by define-derived-mode to make sure the mode hook for the -parent mode is run at the end of the child mode. +--- +*** New function `x-send-client-message' sends a client message when +running under X. -** define-derived-mode by default creates a new empty abbrev table. -It does not copy abbrevs from the parent mode's abbrev table. +** GC changes: +++ -** `provide' and `featurep' now accept an optional second argument -to test/provide subfeatures. Also `provide' now checks `after-load-alist' -and run any code associated with the provided feature. +*** New variable `gc-cons-percentage' automatically grows the GC cons threshold +as the heap size increases. -** The variable `compilation-parse-errors-filename-function' can -be used to transform filenames found in compilation output. ++++ +*** New variables `gc-elapsed' and `gcs-done' provide extra information +on garbage collection. +++ -** Functions `file-name-sans-extension' and `file-name-extension' now -ignore the leading dots in file names, so that file names such as -`.emacs' are treated as extensionless. +*** The normal hook `post-gc-hook' is run at the end of garbage collection. -** Functions `user-uid' and `user-real-uid' now return floats if the -user UID doesn't fit in a Lisp integer. Function `user-full-name' -accepts a float as UID parameter. +The hook is run with GC inhibited, so use it with care. + +* New Packages for Lisp Programming in Emacs 22.1 + ++++ +** The new library button.el implements simple and fast `clickable +buttons' in emacs buffers. Buttons are much lighter-weight than the +`widgets' implemented by widget.el, and can be used by lisp code that +doesn't require the full power of widgets. Emacs uses buttons for +such things as help and apropos buffers. + +--- +** The new library tree-widget.el provides a widget to display a set +of hierarchical data as an outline. For example, the tree-widget is +well suited to display a hierarchy of directories and files. + ++++ +** The new library bindat.el provides functions to unpack and pack +binary data structures, such as network packets, to and from Lisp +data structures. + +--- +** master-mode.el implements a minor mode for scrolling a slave +buffer without leaving your current buffer, the master buffer. + +It can be used by sql.el, for example: the SQL buffer is the master +and its SQLi buffer is the slave. This allows you to scroll the SQLi +buffer containing the output from the SQL buffer containing the +commands. -** `define-key-after' now accepts keys longer than 1. +This is how to use sql.el and master.el together: the variable +sql-buffer contains the slave buffer. It is a local variable in the +SQL buffer. -** The local variable `no-byte-compile' in elisp files is now obeyed. +(add-hook 'sql-mode-hook + (function (lambda () + (master-mode t) + (master-set-slave sql-buffer)))) +(add-hook 'sql-set-sqli-hook + (function (lambda () + (master-set-slave sql-buffer)))) -** The Emacs Lisp byte-compiler now displays the actual line and -character position of errors, where possible. Additionally, the form -of its warning and error messages have been brought more in line with -the output of other GNU tools. ++++ +** The new library benchmark.el does timing measurements on Lisp code. -** New functions `keymap-prompt' and `current-active-maps'. +This includes measuring garbage collection time. -** New function `describe-buffer-bindings'. ++++ +** The new library testcover.el does test coverage checking. + +This is so you can tell whether you've tested all paths in your Lisp +code. It works with edebug. + +The function `testcover-start' instruments all functions in a given +file. Then test your code. The function `testcover-mark-all' adds +overlay "splotches" to the Lisp file's buffer to show where coverage +is lacking. The command `testcover-next-mark' (bind it to a key!) +will move point forward to the next spot that has a splotch. + +Normally, a red splotch indicates the form was never completely +evaluated; a brown splotch means it always evaluated to the same +value. The red splotches are skipped for forms that can't possibly +complete their evaluation, such as `error'. The brown splotches are +skipped for forms that are expected to always evaluate to the same +value, such as (setq x 14). + +For difficult cases, you can add do-nothing macros to your code to +help out the test coverage tool. The macro `noreturn' suppresses a +red splotch. It is an error if the argument to `noreturn' does +return. The macro `1value' suppresses a brown splotch for its argument. +This macro is a no-op except during test-coverage -- then it signals +an error if the argument actually returns differing values. + +* Installation changes in Emacs 21.3 -** New vars `exec-suffixes' and `load-suffixes' used when -searching for an executable resp. an elisp file. +** Support for GNU/Linux on little-endian MIPS and on IBM S390 has +been added. -** Variable aliases have been implemented: + +* Changes in Emacs 21.3 -- Function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] +** The obsolete C mode (c-mode.el) has been removed to avoid problems +with Custom. -This function defines the symbol ALIAS-VAR as a variable alias for -symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR -returns the value of BASE-VAR, and changing the value of ALIAS-VAR -changes the value of BASE-VAR. +** UTF-16 coding systems are available, encoding the same characters +as mule-utf-8. -DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has -the same documentation as BASE-VAR. +** There is a new language environment for UTF-8 (set up automatically +in UTF-8 locales). -- Function: indirect-variable VARIABLE +** Translation tables are available between equivalent characters in +different Emacs charsets -- for instance `e with acute' coming from the +Latin-1 and Latin-2 charsets. User options `unify-8859-on-encoding-mode' +and `unify-8859-on-decoding-mode' respectively turn on translation +between ISO 8859 character sets (`unification') on encoding +(e.g. writing a file) and decoding (e.g. reading a file). Note that +`unify-8859-on-encoding-mode' is useful and safe, but +`unify-8859-on-decoding-mode' can cause text to change when you read +it and write it out again without edits, so it is not generally advisable. +By default `unify-8859-on-encoding-mode' is turned on. -This function returns the variable at the end of the chain of aliases -of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not -defined as an alias, the function returns VARIABLE. +** In Emacs running on the X window system, the default value of +`selection-coding-system' is now `compound-text-with-extensions'. -It might be noteworthy that variables aliases work for all kinds of -variables, including buffer-local and frame-local variables. +If you want the old behavior, set selection-coding-system to +compound-text, which may be significantly more efficient. Using +compound-text-with-extensions seems to be necessary only for decoding +text from applications under XFree86 4.2, whose behavior is actually +contrary to the compound text specification. -** Functions from `post-gc-hook' are run at the end of garbage -collection. The hook is run with GC inhibited, so use it with care. + +* Installation changes in Emacs 21.2 -** If the second argument to `copy-file' is the name of a directory, -the file is copied to that directory instead of signaling an error. +** Support for BSD/OS 5.0 has been added. -** The variables most-positive-fixnum and most-negative-fixnum -have been moved from the CL package to the core. +** Support for AIX 5.1 was added. -** On MS Windows, locale-coding-system is used to interact with the OS. -The Windows specific variable w32-system-coding-system, which was -formerly used for that purpose is now an alias for locale-coding-system. + +* Changes in Emacs 21.2 -** Functions y-or-n-p, read-char, read-keysequence and alike that -display a prompt but don't use the minibuffer now display the prompt -using the text properties (esp. the face) of the prompt string. +** Emacs now supports compound-text extended segments in X selections. -** New packages: +X applications can use `extended segments' to encode characters in +compound text that belong to character sets which are not part of the +list of approved standard encodings for X, e.g. Big5. To paste +selections with such characters into Emacs, use the new coding system +compound-text-with-extensions as the value of selection-coding-system. -*** The new package syntax.el provides an efficient way to find the -current syntactic context (as returned by parse-partial-sexp). +** The default values of `tooltip-delay' and `tooltip-hide-delay' +were changed. -*** The new package bindat.el provides functions to unpack and pack -binary data structures, such as network packets, to and from Lisp -data structures. +** On terminals whose erase-char is ^H (Backspace), Emacs +now uses normal-erase-is-backspace-mode. -*** The TCL package tcl-mode.el was replaced by tcl.el. -This was actually done in Emacs-21.1, and was not documented. +** When the *scratch* buffer is recreated, its mode is set from +initial-major-mode, which normally is lisp-interaction-mode, +instead of using default-major-mode. + +** The new option `Info-scroll-prefer-subnodes' causes Info to behave +like the stand-alone Info reader (from the GNU Texinfo package) as far +as motion between nodes and their subnodes is concerned. If it is t +(the default), Emacs behaves as before when you type SPC in a menu: it +visits the subnode pointed to by the first menu entry. If this option +is nil, SPC scrolls to the end of the current node, and only then goes +to the first menu item, like the stand-alone reader does. + +This change was already in Emacs 21.1, but wasn't advertised in the +NEWS. -*** The new package button.el implements simple and fast `clickable buttons' -in emacs buffers. `buttons' are much lighter-weight than the `widgets' -implemented by widget.el, and can be used by lisp code that doesn't -require the full power of widgets. Emacs uses buttons for such things -as help and apropos buffers. + +* Lisp Changes in Emacs 21.2 + +** The meanings of scroll-up-aggressively and scroll-down-aggressively +have been interchanged, so that the former now controls scrolling up, +and the latter now controls scrolling down. + +** The variable `compilation-parse-errors-filename-function' can +be used to transform filenames found in compilation output. * Installation Changes in Emacs 21.1 @@ -3441,7 +6943,7 @@ added. *** An "alignment error" bug was fixed when a manual spelling correction is made and re-checked. -*** An Italian, Portuguese, and Slovak dictionary definition has been added. +*** Italian, Portuguese, and Slovak dictionary definitions have been added. *** Region skipping performance has been vastly improved in some cases. @@ -4378,7 +7880,7 @@ comparison is done with `eq'. ** The meaning of the `:weakness WEAK' argument of make-hash-table has been changed: WEAK can now have new values `key-or-value' and -`key-and-value', in addition the `nil', `key', `value', and `t'. +`key-and-value', in addition to `nil', `key', `value', and `t'. ** Function `aset' stores any multibyte character in any string without signaling "Attempt to change char length of a string". It may @@ -4393,9 +7895,8 @@ function was declared obsolete. ** Function `plist-member' is renamed from `widget-plist-member' (which is retained as an alias). -** Easy-menu's :filter now works as in XEmacs. -It takes the unconverted (i.e. XEmacs) form of the menu and the result -is automatically converted to Emacs' form. +** Easy-menu's :filter now takes the unconverted form of the menu and +the result is automatically converted to Emacs' form. ** The new function `window-list' has been defined @@ -6227,7 +9728,8 @@ Additional image properties supported are: `:index INDEX' INDEX must be an integer >= 0. Load image number INDEX from a -multi-image GIF file. An error is signaled if INDEX is too large. +multi-image GIF file. If INDEX is too large, the image displays +as a hollow box. This could be used to implement limited support for animated GIFs. For example, the following function displays a multi-image GIF file @@ -7772,8 +11274,8 @@ can make FCC copies more closely resemble copies that recipients get **** you can specify an arbitrary function for actually transmitting the message; included in feedmail are interfaces for /bin/[r]mail, -/usr/lib/sendmail, and elisp smtpmail; it's easy to write a new -function for something else (10-20 lines of elisp) +/usr/lib/sendmail, and Emacs Lisp smtpmail; it's easy to write a new +function for something else (10-20 lines of Lisp code). ** Dired changes @@ -8127,7 +11629,7 @@ guidelines are found in the Emacs Lisp programming manual. *** The net-utils package makes some common networking features available in Emacs. Some of these functions are wrappers around -system utilities (ping, nslookup, etc); others are implementations of +system utilities (ping, nslookup, etc.); others are implementations of simple protocols (finger, whois) in Emacs Lisp. There are also functions to make simple connections to TCP/IP ports for debugging and the like. @@ -8146,7 +11648,7 @@ the user option `midnight-mode' to t. samba-generic-mode: Samba configuration files fvwm-generic-mode: For fvwm initialization files x-resource-generic-mode: For X resource files - hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc) + hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc.) mailagent-rules-generic-mode: For mailagent .rules files javascript-generic-mode: For JavaScript files vrml-generic-mode: For VRML files @@ -9897,10 +13399,10 @@ as soft, and paragraph boundaries are determined solely from the text. *** Custom support The variables font-lock-face-attributes, font-lock-display-type and -font-lock-background-mode are now obsolete; the recommended way to specify the -faces to use for Font Lock mode is with M-x customize-group on the new custom -group font-lock-highlighting-faces. If you set font-lock-face-attributes in -your ~/.emacs file, Font Lock mode will respect its value. However, you should +font-lock-background-mode are now obsolete; the recommended way to specify +the faces to use for Font Lock mode is with M-x customize-group on the new +custom group font-lock-faces. If you set font-lock-face-attributes in your +~/.emacs file, Font Lock mode will respect its value. However, you should consider converting from setting that variable to using M-x customize. You can still use X resources to specify Font Lock face appearances. @@ -9974,7 +13476,7 @@ For example, if a string or comment terminating character is deleted, then if this feature is enabled subsequent lines in the buffer will be correctly refontified to reflect their new syntactic context. Previously, only the line containing the deleted character would be refontified and you would have to use -the command M-g M-g (font-lock-fontify-block) to refontify some lines. +the command M-o M-o (font-lock-fontify-block) to refontify some lines. As a consequence of this new feature, two other variables have changed: @@ -10270,10 +13772,10 @@ not by default. Use --members to turn this feature on. *** C++ member functions are now recognized as tags. *** Java is tagged like C++. In addition, "extends" and "implements" -constructs are tagged. Files are recognised by the extension .java. +constructs are tagged. Files are recognized by the extension .java. *** Etags can now handle programs written in Postscript. Files are -recognised by the extensions .ps and .pdb (Postscript with C syntax). +recognized by the extensions .ps and .pdb (Postscript with C syntax). In Postscript, tags are lines that start with a slash. *** Etags now handles Objective C and Objective C++ code. The usual C and @@ -10281,7 +13783,7 @@ C++ tags are recognized in these languages; in addition, etags recognizes special Objective C syntax for classes, class categories, methods and protocols. -*** Etags also handles Cobol. Files are recognised by the extension +*** Etags also handles Cobol. Files are recognized by the extension .cobol. The tagged lines are those containing a word that begins in column 8 and ends in a full stop, i.e. anything that could be a paragraph name. @@ -11272,7 +14774,8 @@ select one of those items. ---------------------------------------------------------------------- Copyright information: -Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -11288,3 +14791,5 @@ Local variables: mode: outline paragraph-separate: "[ ]*$" end: + +arch-tag: 1aca9dfa-2ac4-4d14-bebf-0007cee12793 diff --git a/etc/ONEWS b/etc/ONEWS index 283e7b9cbad..c26803933ee 100644 --- a/etc/ONEWS +++ b/etc/ONEWS @@ -1029,7 +1029,7 @@ your working file with the latest version from the master. *** RCS customization. There is a new variable vc-consult-headers. If it is t (the default), -VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.7 2002/08/21 00:18:46 rms Exp $') and +VC searches for RCS headers in working files (like `$Id$') and determines the state of the file from them, not from the master file. This is fast and more reliable when you use branches. (The variable was already present in Emacs 19.29, but didn't get mentioned in the @@ -6482,3 +6482,4 @@ mode: outline paragraph-separate: "[ ]*$" end: +arch-tag: 944be39b-afe8-4217-9977-c745b68a7ca2 diff --git a/etc/ONEWS.1 b/etc/ONEWS.1 index 3e16b02e7b0..4f75a7bc6e0 100644 --- a/etc/ONEWS.1 +++ b/etc/ONEWS.1 @@ -1163,3 +1163,5 @@ Copyright (C) 1985 Richard M. Stallman Local variables: mode: text end: + +arch-tag: c006f958-d769-44c7-a9f4-e2faf070624d diff --git a/etc/ONEWS.2 b/etc/ONEWS.2 index a4500eeb319..d9f75c278ed 100644 --- a/etc/ONEWS.2 +++ b/etc/ONEWS.2 @@ -1346,3 +1346,5 @@ Copyright (C) 1985 Richard M. Stallman Local variables: mode: text end: + +arch-tag: 33dc900d-9c58-473b-87c9-b6d7222323ea diff --git a/etc/ONEWS.3 b/etc/ONEWS.3 index 02d4cb9f3fa..f7f36c4b1d1 100644 --- a/etc/ONEWS.3 +++ b/etc/ONEWS.3 @@ -1607,3 +1607,5 @@ Copyright (C) 1988 Free Software Foundation, Inc. Local variables: mode: text end: + +arch-tag: 8fed393b-c9c5-47d1-afbb-c0e7a135094a diff --git a/etc/ONEWS.4 b/etc/ONEWS.4 index 1fcb3d1859a..f3da0d6e62b 100644 --- a/etc/ONEWS.4 +++ b/etc/ONEWS.4 @@ -1689,3 +1689,5 @@ Copyright (C) 1992 Free Software Foundation, Inc. Local variables: mode: text end: + +arch-tag: 373312be-99a8-46d5-bcb0-a62577ab5045 diff --git a/etc/ORDERS.EUROPE b/etc/ORDERS.EUROPE deleted file mode 100644 index eefc64b1858..00000000000 --- a/etc/ORDERS.EUROPE +++ /dev/null @@ -1,203 +0,0 @@ -Order form for GNU Distribution Europe, Belgium. -Prices as of July 1998, and may change without notice. - - -Sportstraat 28 Fax : +32-9-2224976 -9000 Gent Phone : +32-9-2227542 -Belgium -europe-order@gnu.org - -GNU Distribution Europe, Belgium sells GNU CD-ROMs, manuals and -t-shirts in Europe on behalf of the Free Software Foundation. -Ordering from GNU Distribution Europe, Belgium supports the GNU -project just like ordering from the Free Software Foundation, but -offers people in Europe additional convenient payment methods and a -lower overall price. - -To order a Deluxe Distribution, please contact the FSF directly. - - -CD-ROMs, in ISO 9660 format - -GNU Source Code CD-ROMs, Version 11 (March 1998) with X11R6.3: - -____ @ 9750 BEF = ______ BEF for corporations and other organizations. - -____ @ 2550 BEF = ______ BEF for individuals. - -GNU Compiler Tools Binaries CD-ROM, Version 5 (March 1998) Edition: - -____ @ 8950 BEF = ______ BEF for corporations and other organizations. - -____ @ 2350 BEF = ______ BEF for individuals. - - -Manuals - -____ @ 950 BEF = ______ BEF Programming in Emacs Lisp: An Introduction. - -____ @ 950 BEF = ______ BEF Debugging with GDB, with a reference card. - -____ @ 1150 BEF = ______ BEF GAWK: GNU Awk User's Guide. - -____ @ 950 BEF = ______ BEF Make manual. - -____ @ 950 BEF = ______ BEF Bison manual, with a reference card. - -____ @ 950 BEF = ______ BEF Flex manual, with a reference card. - -____ @ 1150 BEF = ______ BEF Texinfo manual. - -____ @ 750 BEF = ______ BEF Termcap manual. - -____ @ 1400 BEF = ______ BEF GNU Emacs manual, with a reference card. - -____ @ 2650 BEF = ______ BEF GNU Emacs Lisp Reference manual. - -____ @ 2250 BEF = ______ BEF Using and Porting GNU CC. - -____ @ 2250 BEF = ______ BEF GNU C Library Reference Manual. - -____ @ 2300 BEF = ______ BEF GNU Emacs Calc manual, with a reference card. - - -Reference Cards - -The following reference cards, in packets of ten. For single copies please -contact us. - -____ @ 500 BEF = ______ BEF GNU Emacs version 20 reference cards. - -____ @ 500 BEF = ______ BEF GNU Emacs Calc reference cards. - -____ @ 500 BEF = ______ BEF GDB reference cards. - -____ @ 500 BEF = ______ BEF Bison reference cards. - -____ @ 500 BEF = ______ BEF Flex reference cards. - - -T-shirts - -We have made new T-shirts for 1998. The front contains the typing gnu -from our first T-shirt; the back has the preamble to the GNU General -Public License. - -GNU/FSF T-shirts are thick 100% cotton in sizes: L, XL, XXL (they run -small) in colors: black, burgundy, blue-green, natural (off-white). -The sizes S and M are available in black and natural (off-white). -Size XXXL is avaiable in black only. Please list 1st, 2nd, and 3rd -choice of color. - -____ @ 800 BEF = ______ BEF Size _____ - - Color choice: 1st _______ 2nd _______ 3rd _______ - -____ @ 800 BEF = ______ BEF Size _____ - - Color choice: 1st _______ 2nd _______ 3rd _______ - -____ @ 800 BEF = ______ BEF Size _____ - - Color choice: 1st _______ 2nd _______ 3rd _______ - -____ @ 800 BEF = ______ BEF Size _____ - - Color choice: 1st _______ 2nd _______ 3rd _______ - - ====== - Subtotal ______ BEF - -Tax and Shipping Costs - - + ______ BEF For addresses in Belgium: add 21% sales tax - or give tax exempt number. - + ______ BEF Shipping fee for other E.U. countries: - 150 BEF extra for addresses outside Belgium. - For shipments to Italy, please add an - additional 200 BEF (350 BEF total). - + ______ BEF C.O.D. fee (if you want C.O.D. shipping), - 500 BEF. - + ______ BEF Donation to Free Software Foundation - - ====== - TOTAL ______ BEF - - -Note: The shipping fee for foreign destinations covers registered -mail. Registered mail normally takes 4 to 5 days to arrive. If you -would like shipping via air mail, or via courier, please contact GNU -Distribution Europe, Belgium for a price quote. - -These prices are subject to change without notice. In particular, they -will very likely change if the exchange rate from USD to BEF changes -significantly. - - -Shipping Information - -Name: ________________________________________________________________________ - -Mail Stop/Dept. Name: ________________________________________________________ - -Organization: ________________________________________________________________ - -Street Address: ______________________________________________________________ - -City, State/Province: ________________________________________________________ - -Zip Code/Postal Code Country: ________________________________________________ - -Telephone number in case of a problem with your order. _______________________ - -Fax number. __________________________________________________________________ - -E-mail Address: ______________________________________________________________ - -Payment can be made by Euro-cheque, credit card, bank transfer, or -wire-transfer in Belgian Francs. Credit card transactions will be run -by the Free Software Foundation at their office in the United States. -If you wish to pay by wire transfer, please contact us. -Please do not send cash through the mail; neither GNU Distribution -Europe -- Belgium nor the post office is responsible if the cash is -lost or stolen. - ________________________________________________________________ - -For Credit Card Orders Only : - - The Free Software Foundation takes these credit cards: Carte Blanche, - Diner's Club, Discover, JCB, MasterCard, Visa, and American Express. - Please note that we are charged about 5% of an order's total amount - in credit card processing fees. Please consider paying by check - instead, or adding on a 5% donation to make up the difference. To - place a credit card order, please give us this information: - -Card type: ____________________________________________________ - -Account Number: _______________________________________________ - -Expiration Date: ______________________________________________ - -Cardholder's Signature: _______________________________________ - -Cardholder's Name: ____________________________________________ - - Do not send your credit card number in email! It might be intercepted - and used by someone else. Please use telephone, fax, or snail mail to - send credit card orders. - ________________________________________________________________ - - -We do not have the staff to handle the billing of unpaid orders, so -please include your payment with your order. If your order arrives -without payment, we will return it to you. - -If you are a retail store, and want a retailer's discount, please -contact the FSF. - -For orders from outside Belgium: - -You are responsible for paying all taxes. If you refuse to pay the -applicable taxes of your country, the shipper will return the order. - -Bank P.C. : 000-1699992-67 V.A.T. : B.E-586.981.246 HRG : 181.641 diff --git a/etc/ORDERS.JAPAN b/etc/ORDERS.JAPAN deleted file mode 100644 index 1bd06614c6b..00000000000 --- a/etc/ORDERS.JAPAN +++ /dev/null @@ -1,213 +0,0 @@ - GNU ORDER FORM FOR JAPAN - -Prices and contents may change without notice after July 31, 1998. - - Item Unit Price Quantity Item Price - ---------------------------------------- ---------- -------- ---------- -* indicates New or Substantially Updated items. - -* Compiler Tools Binaries CD-ROM March '98 Y32,000 ________ __________ - Edition, Version 5, if a corporation or other - organization is ultimately paying. - -* Compiler Tools Binaries CD-ROM March '98 Y8,000 ________ __________ - Edition, Version 5, if an individual is - ultimately paying. - -* Source Code CD-ROM March '98 Edition, Y35,000 ________ __________ - Version 11, with X11R6.3, if a corporation or - other organization is ultimately paying. - -* Source Code CD-ROM March '98 Edition, Y8,700 ________ __________ - Version 11, with X11R6.3, if an individual is - ultimately paying. - - Source Code CD-ROM November '93 Edition, Y12,000 ________ __________ - Version 3 (last with X11R5), if a corporation or other - organization is ultimately paying (while supplies last). - - Source Code CD-ROM November '93 Edition, Y3,000 ________ __________ - Version 3 (last with X11R5), if an individual - is ultimately paying (while supplies last). - - Subscription to next four editions of the Y125,000 ________ __________ - Compiler Tools Binaries CD-ROMs. - - Subscription to next four editions of the Y125,000 ________ __________ - Source Code CD-ROMs. - -* GNU Software for MS-DOS and MS-Windows Y20,000 ________ __________ - (CD-ROM and book) if a corporation or other - organization is ultimately paying. - -* GNU Software for MS-DOS and MS-Windows Y5,000 ________ __________ - (CD-ROM and book) if an individual is ultimately paying. - -* Emacs manual, with reference card Y4,500 ________ __________ - (Edition 13 for Version 20.1) - - Programming in Emacs Lisp, An Introduction Y3,000 ________ __________ - (Edition 1.04) - - Emacs Lisp Reference manual Y7,500 ________ __________ - (Edition 2.4 for Version 19.29) - - Emacs Lisp Reference, Japanese Edition manual Y8,500 ________ __________ - (Japanese DRAFT Revision 1.0, Dec 1996, - from English Edition 2.4 for Version 19.29) - - Emacs Calc manual, with reference card Y7,500 ________ __________ - (Edition 2.02 for Version 2.02) - - Using and Porting GNU CC manual Y7,100 ________ __________ - (August 1996 Edition for Version 2.7.2) - - GNU C Library Reference manual Y7,500 ________ __________ - (Edition 0.06 for Version 1.09) - - Debugging with GDB manual, with reference card Y3,000 ________ __________ - (for GDB version 4.16) - - Make manual (Edition 0.50 for Version 3.75) Y3,000 ________ __________ - - Bison manual, with reference card Y2,900 ________ __________ - (November 1995 Edition for Version 1.25) - - Flex manual, with reference card Y2,900 ________ __________ - (Edition 1.03 for Version 2.3.7) - -* GAWK: GNU Awk User's Guide (Edition 2 for Ver 3) Y4,500 ________ __________ - -* Texinfo manual (Edition 3 for Version 3.11) Y3,700 ________ __________ - - Termcap manual (Third Edition for Version 1.3) Y2,200 ________ __________ - - - Packet of ten Emacs 20 reference cards Y1,500 ________ __________ - - Packet of ten Emacs 18 reference cards Y1,500 ________ __________ - (while supplies last) - - Packet of ten GDB reference cards Y1,500 ________ __________ - - Packet of ten Emacs Calc reference cards Y1,500 ________ __________ - - Packet of ten Bison reference cards Y1,500 ________ __________ - - Packet of ten Flex reference cards Y1,500 ________ __________ - - FSF T-shirt (size S) Y4,000 ________ __________ - Color: Black, Natural (circle) - - FSF T-shirt (size M) Y4,000 ________ __________ - Color: Black, Natural (circle) - - FSF T-shirt (size L) Y4,000 ________ __________ - Color: Black, Natural, Burgundy, Blue-Green (circle) - - FSF T-shirt (size XL) Y4,000 ________ __________ - Color: Black, Natural, Burgundy, Blue-Green (circle) - - FSF T-shirt (size XXL) Y4,000 ________ __________ - Color: Black, Natural, Burgundy, Blue-Green (circle) - - FSF T-shirt (size XXL) Y4,000 ________ __________ - Color: Black - - Shipping Y2,000 - - Optional donation--help the FSF write more free software! __________ - - Total __________ - -The following is your shipping label. Please write clearly using Romaji. -All orders must be prepaid. See the next page for payment instructions. - - Name: ___________________________________________________________________ - - Company: ________________________________________________________________ - - Address: ________________________________________________________________ - -Please also provide the following information in case there is a problem -with your order. - - Telephone: ________________ Fax: ________________ E-mail: _________________ - - ____ Please add my name to the mailing list for future FSF events in Japan. - I prefer to be notified by: ______ fax _____ e-mail - - ____ Please send me information regarding the GNU corporate Deluxe - software and documentation package. - - ____ My company is interested in becoming a corporate sponsor of the FSF. - - ____ I am interested in working as a volunteer for the FSF. - -Prices and contents may change without notice after July 31, 1998. - - Version: March 1998 ASCII etc/ORDERS.JAPAN - - Free Software Foundation FAX 001-1-617-542-2652 - 59 Temple Place - Suite 330 Voice 001-1-617-542-5942 - Boston, MA 02111-1307 E-mail gnu@gnu.org - U.S.A. - - GNU ORDER FORM ADDITIONAL INSTRUCTIONS - - Please do not fax this page. - -You can fax your order directly to 001-1-617-542-2652. Questions can be -sent to fsforder@gnu.org. Orders may also be sent by ordinary mail to: - - Free Software Foundation - 59 Temple Place - Suite 330 - Boston, MA 02111-1307 - U.S.A. - -Orders must be prepaid by credit card or by bank transfer. Credit Cards we -accept are JCB, Visa, MasterCard, Discover, Diner's Club, Carte Blanche, and -American Express. Please provide your card type, expiration date, account -number, and signature. Bank transfers should be made to this account: - - Bank: Sanwa Bank - Branch: Azabu Branch (#620) - Account name: Free Software Foundation - Account number: 3683216 - -Prices and contents may change without notice after July 31, 1998. Software -and documentation is distributed with permission to copy, to modify, and to -redistribute. Texinfo source for each manual is on the Source Code CD-ROM. -We will ship the latest version of each manual, unless you say otherwise. - -The minimum order amount (before postage) is Y5,000. The FSF regrets that it -cannot fill orders for smaller amounts. Please contact the FSF directly by -telephone at 001-1-617-542-5942 or by fax at 001-1-617-542-2652 prior to -placing any orders for greater than Y500,000. - -The FSF offers a "Deluxe" package to Japanese corporations which consists of -source code in your preferred format, a set of custom binaries for your -preferred architecture and operating system, and a complete set of printed -documentation (books and reference cards). Purchasers of the corporate -deluxe package will also receive invitations to future private presentations -conducted by Richard Stallman in Japan. The price for the corporate deluxe -package is Y1,000,000. For more information, contact the FSF directly. - -If you need more information about the FSF and it offerings, please consult -the Japanese edition of the March 1998 GNU's Bulletin. If you do not have a -copy of the Japanese edition of the GNU's Bulletin, please contact the FSF. - -Richard Stallman regrets that he cannot autograph items ordered by mail. -If time permits, he will autograph items at speaking engagements. - -All sales are final. - -Prices and contents may change without notice after July 31, 1998. - - For use in Japan only. - - Free Software Foundation - 59 Temple Place - Suite 330 - Boston, MA 02111-1307 - U.S.A. - http://www.gnu.org diff --git a/etc/OTHER.EMACSES b/etc/OTHER.EMACSES index a00b1190b1d..9b196484604 100644 --- a/etc/OTHER.EMACSES +++ b/etc/OTHER.EMACSES @@ -1047,3 +1047,5 @@ truncation (at either margin) with "$". The command to resume a tags-search or tags-query-replace in GNU Emacs is Meta-Comma. + +arch-tag: e5a3da2f-f13d-400e-95e2-b6e1a520af90 diff --git a/etc/PROBLEMS b/etc/PROBLEMS index c174904a183..d9c08149ad6 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -1,666 +1,578 @@ This file describes various problems that have been encountered -in compiling, installing and running GNU Emacs. +in compiling, installing and running GNU Emacs. Try doing Ctl-C Ctl-t +and browsing through the outline headers. -* Emacs crashes on Mac OS X (Carbon) after system software upgrade. +* Emacs startup failures -This problem seems to be now solved by Steven Tamm's patch to -unexmacosx.c on Nov 24, 2002. +** Emacs fails to start, complaining about missing fonts. -Between Mac OS X release 10.2.1 and 10.2.2 there was an incompatible -change in the memory allocator that causes a EXC_BAD_ACCESS error near -xrealloc(). Relinking the application (by deleting src/temacs and -running make) will solve the problem. It appears to be caused by some -problems with the unexec code and its interaction with libSystem.B. - -* Characters from the mule-unicode charsets aren't displayed under X. +A typical error message might be something like -XFree86 4 contains many fonts in iso10646-1 encoding which have -minimal character repertoires (whereas the encoding is meant to be a -reasonable indication of the repertoire). Emacs may choose one of -these to display characters from the mule-unicode charsets and then -typically won't be able to find the glyphs to display many characters. -(Check with C-u C-x = .) To avoid this, you may need to use a fontset -which sets the font for the mule-unicode sets explicitly. E.g. to use -GNU unifont, include in the fontset spec: + No fonts match `-*-fixed-medium-r-*--6-*-*-*-*-*-iso8859-1' -mule-unicode-2500-33ff:-gnu-unifont-*-iso10646-1,\ -mule-unicode-e000-ffff:-gnu-unifont-*-iso10646-1,\ -mule-unicode-0100-24ff:-gnu-unifont-*-iso10646-1 +This happens because some X resource specifies a bad font family for +Emacs to use. The possible places where this specification might be +are: -* Problems with file dialogs in Emacs built with Open Motif. + - in your ~/.Xdefaults file -When Emacs 21 is built with Open Motif 2.1, it can happen that the -graphical file dialog boxes do not work properly. The "OK", "Filter" -and "Cancel" buttons do not respond to mouse clicks. Dragging the -file dialog window usually causes the buttons to work again. + - client-side X resource file, such as ~/Emacs or + /usr/X11R6/lib/app-defaults/Emacs or + /usr/X11R6/lib/X11/app-defaults/Emacs -The solution is to use LessTif instead. LessTif is a free replacement -for Motif. See the file INSTALL for information on how to do this. +One of these files might have bad or malformed specification of a +fontset that Emacs should use. To fix the problem, you need to find +the problematic line(s) and correct them. -Another workaround is not to use the mouse to trigger file prompts, -but to use the keyboard. This way, you will be prompted for a file in -the minibuffer instead of a graphical file dialog. +** Emacs aborts while starting up, only when run without X. -* Emacs reports a BadAtom error (from X) running on Solaris 7 or 8. +This problem often results from compiling Emacs with GCC when GCC was +installed incorrectly. The usual error in installing GCC is to +specify --includedir=/usr/include. Installation of GCC makes +corrected copies of the system header files. GCC is supposed to use +the corrected copies in preference to the original system headers. +Specifying --includedir=/usr/include causes the original system header +files to be used. On some systems, the definition of ioctl in the +original system header files is invalid for ANSI C and causes Emacs +not to work. -This happens when Emacs was built on some other version of Solaris. -Rebuild it on Solaris 8. +The fix is to reinstall GCC, and this time do not specify --includedir +when you configure it. Then recompile Emacs. Specifying --includedir +is appropriate only in very special cases and it should *never* be the +same directory where system header files are kept. -* Mule-UCS loads very slowly. +** Emacs does not start, complaining that it cannot open termcap database file. -Changes to Emacs internals interact badly with Mule-UCS's `un-define' -library, which is the usual interface to Mule-UCS. Apply the -following patch to Mule-UCS 0.84 and rebuild it. That will help, -though loading will still be slower than in Emacs 20. (Some -distributions, such as Debian, may already have applied such a patch.) +If your system uses Terminfo rather than termcap (most modern +systems do), this could happen if the proper version of +ncurses is not visible to the Emacs configure script (i.e. it +cannot be found along the usual path the linker looks for +libraries). It can happen because your version of ncurses is +obsolete, or is available only in form of binaries. ---- lisp/un-define.el 6 Mar 2001 22:41:38 -0000 1.30 -+++ lisp/un-define.el 19 Apr 2002 18:34:26 -0000 -@@ -610,13 +624,21 @@ by calling post-read-conversion and pre- +The solution is to install an up-to-date version of ncurses in +the developer's form (header files, static libraries and +symbolic links); in some GNU/Linux distributions (e.g. Debian) +it constitutes a separate package. - (mapcar - (lambda (x) -- (mapcar -- (lambda (y) -- (mucs-define-coding-system -- (nth 0 y) (nth 1 y) (nth 2 y) -- (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y)) -- (coding-system-put (car y) 'alias-coding-systems (list (car x)))) -- (cdr x))) -+ (if (fboundp 'register-char-codings) -+ ;; Mule 5, where we don't need the eol-type specified and -+ ;; register-char-codings may be very slow for these coding -+ ;; system definitions. -+ (let ((y (cadr x))) -+ (mucs-define-coding-system -+ (car x) (nth 1 y) (nth 2 y) -+ (nth 3 y) (nth 4 y) (nth 5 y))) -+ (mapcar -+ (lambda (y) -+ (mucs-define-coding-system -+ (nth 0 y) (nth 1 y) (nth 2 y) -+ (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y)) -+ (coding-system-put (car y) 'alias-coding-systems (list (car x))))) -+ (cdr x))) - `((utf-8 - (utf-8-unix - ?u "UTF-8 coding system" +** Emacs 20 and later fails to load Lisp files at startup. -Note that Emacs has native support for Unicode, roughly equivalent to -Mule-UCS's, so you may not need it. +The typical error message might be like this: -* Building Emacs with GCC 2.9x fails in the `src' directory. + "Cannot open load file: fontset" -This may happen if you use a development version of GNU `cpp' from one -of the GCC snapshots between Oct 2000 and Feb 2001, or from a released -version of GCC newer than 2.95.2 which was prepared around those -dates; similar problems were reported with some snapshots of GCC 3.1 -around Sep 30 2001. The preprocessor in those versions is -incompatible with a traditional Unix cpp (e.g., it expands ".." into -". .", which breaks relative file names that reference the parent -directory; or inserts TAB characters before lines that set Make -variables). +This could happen if you compress the file lisp/subdirs.el. That file +tells Emacs what are the directories where it should look for Lisp +files. Emacs cannot work with subdirs.el compressed, since the +Auto-compress mode it needs for this will not be loaded until later, +when your .emacs file is processed. (The package `fontset.el' is +required to set up fonts used to display text on window systems, and +it's loaded very early in the startup procedure.) -The solution is to make sure the preprocessor is run with the -`-traditional' option. The `configure' script does that automatically -when it detects the known problems in your cpp, but you might hit some -unknown ones. To force the `configure' script to use `-traditional', -run the script like this: +Similarly, any other .el file for which there's no corresponding .elc +file could fail to load if it is compressed. - CPP='gcc -E -traditional' ./configure ... +The solution is to uncompress all .el files which don't have a .elc +file. -(replace the ellipsis "..." with any additional arguments you pass to -the script). +Another possible reason for such failures is stale *.elc files +lurking somewhere on your load-path. The following command will +print any duplicate Lisp files that are present in load-path: -Note that this problem does not pertain to the MS-Windows port of -Emacs, since it doesn't use the preprocessor to generate Makefiles. + emacs -q -batch -f list-load-path-shadows -* Building Emacs with a system compiler fails to link because of an -undefined symbol such as __eprintf which does not appear in Emacs. +If this command prints any file names, some of these files are stale, +and should be deleted or their directories removed from your +load-path. -This can happen if some of the libraries linked into Emacs were built -with GCC, but Emacs itself is being linked with a compiler other than -GCC. Object files compiled with GCC might need some helper functions -from libgcc.a, the library which comes with GCC, but the system -compiler does not instruct the linker to search libgcc.a during the -link stage. +** Emacs prints an error at startup after upgrading from an earlier version. -A solution is to link with GCC, like this: +An example of such an error is: - make CC=gcc + x-complement-fontset-spec: "Wrong type argument: stringp, nil" -Since the .o object files already exist, this will not recompile Emacs -with GCC, but just restart by trying again to link temacs. +This can be another symptom of stale *.elc files in your load-path. +The following command will print any duplicate Lisp files that are +present in load-path: -* Building the MS-Windows port with Cygwin GCC can fail. + emacs -q -batch -f list-load-path-shadows -Emacs may not build using recent Cygwin builds of GCC, such as Cygwin -version 1.1.8, using the default configure settings. It appears to be -necessary to specify the -mwin32 flag when compiling, and define -__MSVCRT__, like so: +If this command prints any file names, some of these files are stale, +and should be deleted or their directories removed from your +load-path. - configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__ +** With X11R6.4, public-patch-3, Emacs crashes at startup. -* Building the MS-Windows port with Leim fails in the `leim' directory. +Reportedly this patch in X fixes the problem. -The error message might be something like this: + --- xc/lib/X11/imInt.c~ Wed Jun 30 13:31:56 1999 + +++ xc/lib/X11/imInt.c Thu Jul 1 15:10:27 1999 + @@ -1,4 +1,4 @@ + -/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ + +/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ + /****************************************************************** - Converting d:/emacs-21.3/leim/CXTERM-DIC/4Corner.tit to quail-package... - Invalid ENCODE: value in TIT dictionary - NMAKE : fatal error U1077: '"../src/obj-spd/i386/emacs.exe"' : return code - '0xffffffff' - Stop. + Copyright 1992, 1993, 1994 by FUJITSU LIMITED + @@ -166,8 +166,8 @@ + _XimMakeImName(lcd) + XLCd lcd; + { + - char* begin; + - char* end; + + char* begin = NULL; + + char* end = NULL; + char* ret; + int i = 0; + char* ximmodifier = XIMMODIFIER; + @@ -182,7 +182,11 @@ + } + ret = Xmalloc(end - begin + 2); + if (ret != NULL) { + - (void)strncpy(ret, begin, end - begin + 1); + + if (begin != NULL) { + + (void)strncpy(ret, begin, end - begin + 1); + + } else { + + ret[0] = '\0'; + + } + ret[end - begin + 1] = '\0'; + } + return ret; -This can happen if the Leim distribution is unpacked with a program -which converts the `*.tit' files to DOS-style CR-LF text format. The -`*.tit' files in the leim/CXTERM-DIC directory require Unix-style line -endings to compile properly, because Emacs reads them without any code -or EOL conversions. +* Crash bugs -The solution is to make sure the program used to unpack Leim does not -change the files' line endings behind your back. The GNU FTP site has -in the `/gnu/emacs/windows' directory a program called `djtarnt.exe' -which can be used to unpack `.tar.gz' and `.zip' archives without -mangling them. +** Emacs crashes in x-popup-dialog. -* Emacs crashes when dumping itself on Mac PPC running Yellow Dog GNU/Linux. +This can happen if the dialog widget cannot find the font it wants to +use. You can work around the problem by specifying another font with +an X resource--for example, `Emacs.dialog*.font: 9x15' (or any font that +happens to exist on your X server). -The crashes happen inside the function Fmake_symbol; here's a typical -C backtrace printed by GDB: +** Emacs crashes when you use Bibtex mode. - 0x190c0c0 in Fmake_symbol () - (gdb) where - #0 0x190c0c0 in Fmake_symbol () - #1 0x1942ca4 in init_obarray () - #2 0x18b3500 in main () - #3 0x114371c in __libc_start_main (argc=5, argv=0x7ffff5b4, envp=0x7ffff5cc, +This happens if your system puts a small limit on stack size. You can +prevent the problem by using a suitable shell command (often `ulimit') +to raise the stack size limit before you run Emacs. -This could happen because GCC version 2.95 and later changed the base -of the load address to 0x10000000. Emacs needs to be told about this, -but we currently cannot do that automatically, because that breaks -other versions of GNU/Linux on the MacPPC. Until we find a way to -distinguish between the Yellow Dog and the other varieties of -GNU/Linux systems on the PPC, you will have to manually uncomment the -following section near the end of the file src/m/macppc.h in the Emacs -distribution: +Patches to raise the stack size limit automatically in `main' +(src/emacs.c) on various systems would be greatly appreciated. - #if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog, - even with identical GCC, as, ld. Let's take it out until we - know what's really going on here. */ - /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to - 0x10000000. */ - #if defined __linux__ - #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) - #define DATA_SEG_BITS 0x10000000 - #endif - #endif - #endif /* 0 */ +** Error message `Symbol's value as variable is void: x', followed by +a segmentation fault and core dump. -Remove the "#if 0" and "#endif" directives which surround this, save -the file, and then reconfigure and rebuild Emacs. The dumping process -should now succeed. +This has been tracked to a bug in tar! People report that tar erroneously +added a line like this at the beginning of files of Lisp code: -* JPEG images aren't displayed. + x FILENAME, N bytes, B tape blocks -This has been reported when Emacs is built with jpeg-6a library. -Upgrading to jpeg-6b solves the problem. Configure checks for the -correct version, but this problem could occur if a binary built -against a shared libjpeg is run on a system with an older version. +If your tar has this problem, install GNU tar--if you can manage to +untar it :-). -* Building `ctags' for MS-Windows with the MinGW port of GCC fails. +** Crashes when displaying GIF images in Emacs built with version +libungif-4.1.0 are resolved by using version libungif-4.1.0b1. +Configure checks for the correct version, but this problem could occur +if a binary built against a shared libungif is run on a system with an +older version. -This might happen due to a bug in the MinGW header assert.h, which -defines the `assert' macro with a trailing semi-colon. The following -patch to assert.h should solve this: +** Emacs aborts inside the function `tparam1'. -*** include/assert.h.orig Sun Nov 7 02:41:36 1999 ---- include/assert.h Mon Jan 29 11:49:10 2001 -*************** -*** 41,47 **** - /* - * If not debugging, assert does nothing. - */ -! #define assert(x) ((void)0); +This can happen if Emacs was built without terminfo support, but the +terminal's capabilities use format that is only supported by terminfo. +If your system has ncurses installed, this might happen if your +version of ncurses is broken; upgrading to a newer version of ncurses +and reconfiguring and rebuilding Emacs should solve this. - #else /* debugging enabled */ +All modern systems support terminfo, so even if ncurses is not the +problem, you should look for a way to configure Emacs so that it uses +terminfo when built. ---- 41,47 ---- - /* - * If not debugging, assert does nothing. - */ -! #define assert(x) ((void)0) +** Emacs crashes when using the Exceed 6.0 X server. - #else /* debugging enabled */ +If you are using Exceed 6.1, upgrade to a later version. This was +reported to prevent the crashes. +** Emacs crashes with SIGSEGV in XtInitializeWidgetClass. +It crashes on X, but runs fine when called with option "-nw". -* Improving performance with slow X connections +This has been observed when Emacs is linked with GNU ld but without passing +the -z nocombreloc flag. Emacs normally knows to pass the -z nocombreloc +flag when needed, so if you come across a situation where the flag is +necessary but missing, please report it via M-x report-emacs-bug. -There are several ways to improve this performance, any subset of which can -be carried out at the same time: +On platforms such as Solaris, you can also work around this problem by +configuring your compiler to use the native linker instead of GNU ld. -1) If you don't need X Input Methods (XIM) for entering text in some - language you use, you can improve performance on WAN links by - configuring Emacs with option `--without-xim'. Configuring Emacs - without XIM does not affect the use of Emacs' own input methods, which - are part of the Leim package. +* General runtime problems -2) If the connection is very slow, you might also want to consider - switching off scroll bars, menu bar, and tool bar. +** Lisp problems -3) Use ssh to forward the X connection, and enable compression on this - forwarded X connection (ssh -XC remotehostname emacs ...). +*** Changes made to .el files do not take effect. -4) Use lbxproxy on the remote end of the connection. This is an interface - to the low bandwidth X extension in most modern X servers, which - improves performance dramatically, at the slight expense of correctness - of the X protocol. lbxproxy acheives the performance gain by grouping - several X requests in one TCP packet and sending them off together, - instead of requiring a round-trip for each X request in a seperate - packet. The switches that seem to work best for emacs are: - -noatomsfile -nowinattr -cheaterrors -cheatevents - Note that the -nograbcmap option is known to cause problems. - For more about lbxproxy, see: - http://www.xfree86.org/4.2.0/lbxproxy.1.html +You may have forgotten to recompile them into .elc files. +Then the old .elc files will be loaded, and your changes +will not be seen. To fix this, do M-x byte-recompile-directory +and specify the directory that contains the Lisp files. -* Getting a Meta key on the FreeBSD console +Emacs should print a warning when loading a .elc file which is older +than the corresponding .el file. -By default, neither Alt nor any other key acts as a Meta key on -FreeBSD, but this can be changed using kbdcontrol(1). Dump the -current keymap to a file with the command +*** Watch out for .emacs files and EMACSLOADPATH environment vars. - $ kbdcontrol -d >emacs.kbd +These control the actions of Emacs. +~/.emacs is your Emacs init file. +EMACSLOADPATH overrides which directories the function +"load" will search. -Edit emacs.kbd, and give the key you want to be the Meta key the -definition `meta'. For instance, if your keyboard has a ``Windows'' -key with scan code 105, change the line for scan code 105 in emacs.kbd -to look like this +If you observe strange problems, check for these and get rid +of them, then try again. - 105 meta meta meta meta meta meta meta meta O +*** Using epop3.el package causes Emacs to signal an error. -to make the Windows key the Meta key. Load the new keymap with +The error message might be something like this: - $ kbdcontrol -l emacs.kbd + "Lisp nesting exceeds max-lisp-eval-depth" -* Emacs' xterm-mouse-mode doesn't work on the Gnome terminal. +This happens because epop3 redefines the function gethash, which is a +built-in primitive beginning with Emacs 21.1. We don't have a patch +for epop3 that fixes this, but perhaps a newer version of epop3 +corrects that. -A symptom of this bug is that double-clicks insert a control sequence -into the buffer. The reason this happens is an apparent -incompatibility of the Gnome terminal with Xterm, which also affects -other programs using the Xterm mouse interface. A problem report has -been filed. +*** Buffers from `with-output-to-temp-buffer' get set up in Help mode. -* Emacs pauses for several seconds when changing the default font +Changes in Emacs 20.4 to the hooks used by that function cause +problems for some packages, specifically BBDB. See the function's +documentation for the hooks involved. BBDB 2.00.06 fixes the problem. -This has been reported for fvwm 2.2.5 and the window manager of KDE -2.1. The reason for the pause is Xt waiting for a ConfigureNotify -event from the window manager, which the window manager doesn't send. -Xt stops waiting after a default timeout of usually 5 seconds. +*** The Hyperbole package causes *Help* buffers not to be displayed in +Help mode due to setting `temp-buffer-show-hook' rather than using +`add-hook'. Using `(add-hook 'temp-buffer-show-hook +'help-mode-maybe)' after loading Hyperbole should fix this. -A workaround for this is to add something like +** Keyboard problems -emacs.waitForWM: false +*** "Compose Character" key does strange things when used as a Meta key. -to your X resources. Alternatively, add `(wait-for-wm . nil)' to a -frame's parameter list, like this: +If you define one key to serve as both Meta and Compose Character, you +will get strange results. In previous Emacs versions, this "worked" +in that the key acted as Meta--that's because the older Emacs versions +did not try to support Compose Character. Now Emacs tries to do +character composition in the standard X way. This means that you +must pick one meaning or the other for any given key. - (modify-frame-parameters nil '((wait-for-wm . nil))) +You can use both functions (Meta, and Compose Character) if you assign +them to two different keys. -(this should go into your `.emacs' file). +*** C-z just refreshes the screen instead of suspending Emacs. -* Underlines appear at the wrong position. +You are probably using a shell that doesn't support job control, even +though the system itself is capable of it. Either use a different shell, +or set the variable `cannot-suspend' to a non-nil value. -This is caused by fonts having a wrong UNDERLINE_POSITION property. -Examples are the font 7x13 on XFree prior to version 4.1, or the jmk -neep font from the Debian xfonts-jmk package. To circumvent this -problem, set x-use-underline-position-properties to nil in your -`.emacs'. +*** With M-x enable-flow-control, you need to type C-\ twice +to do incremental search--a single C-\ gets no response. -To see what is the value of UNDERLINE_POSITION defined by the font, -type `xlsfonts -lll FONT' and look at the font's UNDERLINE_POSITION -property. +This has been traced to communicating with your machine via kermit, +with C-\ as the kermit escape character. One solution is to use +another escape character in kermit. One user did -* When using Xaw3d scroll bars without arrows, the very first mouse -click in a scroll bar might be ignored by the scroll bar widget. This -is probably a bug in Xaw3d; when Xaw3d is compiled with arrows, the -problem disappears. + set escape-character 17 -* There are known binary incompatibilities between Xaw, Xaw3d, neXtaw, -XawM and the few other derivatives of Xaw. So when you compile with -one of these, it may not work to dynamically link with another one. -For example, strange problems, such as Emacs exiting when you type -"C-x 1", were reported when Emacs compiled with Xaw3d and libXaw was -used with neXtaw at run time. +in his .kermrc file, to make C-q the kermit escape character. -The solution is to rebuild Emacs with the toolkit version you actually -want to use, or set LD_PRELOAD to preload the same toolkit version you -built Emacs with. +** Mailers and other helper programs -* Clicking C-mouse-2 in the scroll bar doesn't split the window. +*** movemail compiled with POP support can't connect to the POP server. -This currently doesn't work with scroll-bar widgets (and we don't know -a good way of implementing it with widgets). If Emacs is configured ---without-toolkit-scroll-bars, C-mouse-2 on the scroll bar does work. +Make sure that the `pop' entry in /etc/services, or in the services +NIS map if your machine uses NIS, has the same port number as the +entry on the POP server. A common error is for the POP server to be +listening on port 110, the assigned port for the POP3 protocol, while +the client is trying to connect on port 109, the assigned port for the +old POP protocol. -* Emacs aborts inside the function `tparam1'. +*** RMAIL gets error getting new mail. -This can happen if Emacs was built without terminfo support, but the -terminal's capabilities use format that is only supported by terminfo. -If your system has ncurses installed, this might happen if your -version of ncurses is broken; upgrading to a newer version of ncurses -and reconfiguring and rebuilding Emacs should solve this. +RMAIL gets new mail from /usr/spool/mail/$USER using a program +called `movemail'. This program interlocks with /bin/mail using +the protocol defined by /bin/mail. -All modern systems support terminfo, so even if ncurses is not the -problem, you should look for a way to configure Emacs so that it uses -terminfo when built. +There are two different protocols in general use. One of them uses +the `flock' system call. The other involves creating a lock file; +`movemail' must be able to write in /usr/spool/mail in order to do +this. You control which one is used by defining, or not defining, +the macro MAIL_USE_FLOCK in config.h or the m- or s- file it includes. +IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR +SYSTEM, YOU CAN LOSE MAIL! -* Error messages about undefined colors on X. +If your system uses the lock file protocol, and fascist restrictions +prevent ordinary users from writing the lock files in /usr/spool/mail, +you may need to make `movemail' setgid to a suitable group such as +`mail'. You can use these commands (as root): -The messages might say something like this: + chgrp mail movemail + chmod 2755 movemail - Unable to load color "grey95" +If your system uses the lock file protocol, and fascist restrictions +prevent ordinary users from writing the lock files in /usr/spool/mail, +you may need to make `movemail' setgid to a suitable group such as +`mail'. To do this, use the following commands (as root) after doing the +make install. -(typically, in the `*Messages*' buffer), or something like this: + chgrp mail movemail + chmod 2755 movemail - Error while displaying tooltip: (error Undefined color lightyellow) +Installation normally copies movemail from the build directory to an +installation directory which is usually under /usr/local/lib. The +installed copy of movemail is usually in the directory +/usr/local/lib/emacs/VERSION/TARGET. You must change the group and +mode of the installed copy; changing the group and mode of the build +directory copy is ineffective. -These problems could happen if some other X program has used up too -many colors of the X palette, leaving Emacs with insufficient system -resources to load all the colors it needs. +*** rcs2log gives you the awk error message "too many fields". -A solution is to exit the offending X programs before starting Emacs. +This is due to an arbitrary limit in certain versions of awk. +The solution is to use gawk (GNU awk). -* Colors are not available on a tty or in xterm. +** Problems with hostname resolution -Emacs 21 supports colors on character terminals and terminal -emulators, but this support relies on the terminfo or termcap database -entry to specify that the display supports color. Emacs looks at the -"Co" capability for the terminal to find out how many colors are -supported; it should be non-zero to activate the color support within -Emacs. (Most color terminals support 8 or 16 colors.) If your system -uses terminfo, the name of the capability equivalent to "Co" is -"colors". +*** Emacs fails to understand most Internet host names, even though +the names work properly with other programs on the same system. +*** Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0. +*** Gnus can't make contact with the specified host for nntp. -In addition to the "Co" capability, Emacs needs the "op" (for -``original pair'') capability, which tells how to switch the terminal -back to the default foreground and background colors. Emacs will not -use colors if this capability is not defined. If your terminal entry -doesn't provide such a capability, try using the ANSI standard escape -sequence \E[00m (that is, define a new termcap/terminfo entry and make -it use your current terminal's entry plus \E[00m for the "op" -capability). +This typically happens on Suns and other systems that use shared +libraries. The cause is that the site has installed a version of the +shared library which uses a name server--but has not installed a +similar version of the unshared library which Emacs uses. -Finally, the "NC" capability (terminfo name: "ncv") tells Emacs which -attributes cannot be used with colors. Setting this capability -incorrectly might have the effect of disabling colors; try setting -this capability to `0' (zero) and see if that helps. +The result is that most programs, using the shared library, work with +the nameserver, but Emacs does not. -Emacs uses the database entry for the terminal whose name is the value -of the environment variable TERM. With `xterm', a common terminal -entry that supports color is `xterm-color', so setting TERM's value to -`xterm-color' might activate the color support on an xterm-compatible -emulator. +The fix is to install an unshared library that corresponds to what you +installed in the shared library, and then relink Emacs. -Beginning with version 21.3, Emacs supports the --color command-line -option which may be used to force Emacs to use one of a few popular -modes for getting colors on a tty. For example, --color=ansi8 sets up -for using the ANSI-standard escape sequences that support 8 colors. +On SunOS 4.1, simply define HAVE_RES_INIT. -Some modes do not use colors unless you turn on the Font-lock mode. -Some people have long ago set their `~/.emacs' files to turn on -Font-lock on X only, so they won't see colors on a tty. The -recommended way of turning on Font-lock is by typing "M-x -global-font-lock-mode RET" or by customizing the variable -`global-font-lock-mode'. +If you have already installed the name resolver in the file libresolv.a, +then you need to compile Emacs to use that library. The easiest way to +do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE +or LIB_STANDARD which uses -lresolv. Watch out! If you redefine a macro +that is already in use in your configuration to supply some other libraries, +be careful not to lose the others. -* Emacs on a tty switches the cursor to large blinking block. +Thus, you could start by adding this to config.h: -This was reported to happen on some GNU/Linux systems which use -ncurses version 5.0, but could be relevant for other versions as well. -These versions of ncurses come with a `linux' terminfo entry, where -the "cvvis" capability (termcap "vs") is defined as "\E[?25h\E[?8c" -(show cursor, change size). This escape sequence switches on a -blinking hardware text-mode cursor whose size is a full character -cell. This blinking cannot be stopped, since a hardware cursor -always blinks. +#define LIBS_SYSTEM -lresolv -A work-around is to redefine the "cvvis" capability so that it -enables a *software* cursor. The software cursor works by inverting -the colors of the character at point, so what you see is a block -cursor that doesn't blink. For this to work, you need to redefine -the "cnorm" capability as well, so that it operates on the software -cursor instead of the hardware cursor. +Then if this gives you an error for redefining a macro, and you see that +the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h +again to say this: -To this end, run "infocmp linux > linux-term", edit the file -`linux-term' to make both the "cnorm" and "cvvis" capabilities send -the sequence "\E[?25h\E[?17;0;64c", and then run "tic linux-term" to -produce a modified terminfo entry. +#define LIBS_SYSTEM -lresolv -lfoo -lbar -Alternatively, if you want a blinking underscore as your Emacs cursor, -change the "cvvis" capability to send the "\E[?25h\E[?0c" command. +*** Emacs does not know your host's fully-qualified domain name. -* Problems in Emacs built with LessTif. +You need to configure your machine with a fully qualified domain name, +either in /etc/hosts, /etc/hostname, the NIS, or wherever your system +calls for specifying this. -The problems seem to depend on the version of LessTif and the Motif -emulation for which it is set up. +If you cannot fix the configuration, you can set the Lisp variable +mail-host-address to the value you want. -Only the Motif 1.2 emulation seems to be stable enough in LessTif. -Lesstif 0.92-17's Motif 1.2 emulation seems to work okay on FreeBSD. -On GNU/Linux systems, lesstif-0.92.6 configured with "./configure ---enable-build-12 --enable-default-12" is reported to be the most -successful. The binary GNU/Linux package -lesstif-devel-0.92.0-1.i386.rpm was reported to have problems with -menu placement. +** NFS and RFS -On some systems, even with Motif 1.2 emulation, Emacs occasionally -locks up, grabbing all mouse and keyboard events. We still don't know -what causes these problems; they are not reproducible by Emacs -developers. +*** Emacs says it has saved a file, but the file does not actually +appear on disk. -* Known problems with the MS-Windows port of Emacs 21.2. +This can happen on certain systems when you are using NFS, if the +remote disk is full. It is due to a bug in NFS (or certain NFS +implementations), and there is apparently nothing Emacs can do to +detect the problem. Emacs checks the failure codes of all the system +calls involved in writing a file, including `close'; but in the case +where the problem occurs, none of those system calls fails. -Frames are not refreshed while the File or Font dialog or a pop-up menu -is displayed. This also means help text for pop-up menus is not -displayed at all. This is because message handling under Windows is -synchronous, so we cannot handle repaint (or any other) messages while -waiting for a system function to return the result of the dialog or -pop-up menu interaction. +*** Editing files through RFS gives spurious "file has changed" warnings. +It is possible that a change in Emacs 18.37 gets around this problem, +but in case not, here is a description of how to fix the RFS bug that +causes it. -Windows 95 and Windows NT up to version 4.0 do not support help text -for menus. Help text is only available in later versions of Windows. + There was a serious pair of bugs in the handling of the fsync() system + call in the RFS server. -There are problems with display if mouse-tracking is enabled and the -mouse is moved off a frame, over another frame then back over the first -frame. A workaround is to click the left mouse button inside the frame -after moving back into it. + The first is that the fsync() call is handled as another name for the + close() system call (!!). It appears that fsync() is not used by very + many programs; Emacs version 18 does an fsync() before closing files + to make sure that the bits are on the disk. -Some minor flickering still persists during mouse-tracking, although -not as severely as in 21.1. + This is fixed by the enclosed patch to the RFS server. -Emacs can sometimes abort when non-ASCII text, possibly with null -characters, is copied and pasted into a buffer. + The second, more serious problem, is that fsync() is treated as a + non-blocking system call (i.e., it's implemented as a message that + gets sent to the remote system without waiting for a reply). Fsync is + a useful tool for building atomic file transactions. Implementing it + as a non-blocking RPC call (when the local call blocks until the sync + is done) is a bad idea; unfortunately, changing it will break the RFS + protocol. No fix was supplied for this problem. -An inactive cursor remains in an active window after the Windows -Manager driven switch of the focus, until a key is pressed. + (as always, your line numbers may vary) -Windows input methods are not recognized by Emacs (as of v21.2). Some -of these input methods cause the keyboard to send characters encoded -in the appropriate coding system (e.g., ISO 8859-1 for Latin-1 -characters, ISO 8859-8 for Hebrew characters, etc.). To make this -work, set the keyboard coding system to the appropriate value after -you activate the Windows input method. For example, if you activate -the Hebrew input method, type "C-x RET k iso-8859-8 RET". (Emacs -ought to recognize the Windows language-change event and set up the -appropriate keyboard encoding automatically, but it doesn't do that -yet.) + % rcsdiff -c -r1.2 serversyscall.c + RCS file: RCS/serversyscall.c,v + retrieving revision 1.2 + diff -c -r1.2 serversyscall.c + *** /tmp/,RCSt1003677 Wed Jan 28 15:15:02 1987 + --- serversyscall.c Wed Jan 28 15:14:48 1987 + *************** + *** 163,169 **** + /* + * No return sent for close or fsync! + */ + ! if (syscall == RSYS_close || syscall == RSYS_fsync) + proc->p_returnval = deallocate_fd(proc, msg->m_args[0]); + else + { + --- 166,172 ---- + /* + * No return sent for close or fsync! + */ + ! if (syscall == RSYS_close) + proc->p_returnval = deallocate_fd(proc, msg->m_args[0]); + else + { -Windows uses UTF-16 encoding to deal with multilingual text (text not -encodable in the `system codepage') in the clipboard. To deal with -this, load the library `utf-16' and use `set-selection-coding-system' -to set the clipboard coding system to `utf-16-le-dos'. This won't -cope with Far Eastern (`CJK') text; if necessary, install the Mule-UCS -package (see etc/MORE.STUFF), whose `utf-16-le-dos' coding system does -encode a lot of CJK characters. +** PSGML -The %b specifier for format-time-string does not produce abbreviated -month names with consistent widths for some locales on some versions -of Windows. This is caused by a deficiency in the underlying system -library function. +*** Old versions of the PSGML package use the obsolete variables +`before-change-function' and `after-change-function', which are no +longer used by Emacs. Please use PSGML 1.2.3 or later. -* The `configure' script doesn't find the jpeg library. +*** PSGML conflicts with sgml-mode. -There are reports that this happens on some systems because the linker -by default only looks for shared libraries, but jpeg distribution by -default only installs a nonshared version of the library, `libjpeg.a'. +PSGML package uses the same names of some variables (like keymap) +as built-in sgml-mode.el because it was created as a replacement +of that package. The conflict will be shown if you load +sgml-mode.el before psgml.el. E.g. this could happen if you edit +HTML page and then start to work with SGML or XML file. html-mode +(from sgml-mode.el) is used for HTML file and loading of psgml.el +(for sgml-mode or xml-mode) will cause an error. -If this is the problem, you can configure the jpeg library with the -`--enable-shared' option and then rebuild libjpeg. This produces a -shared version of libjpeg, which you need to install. Finally, rerun -the Emacs configure script, which should now find the jpeg library. -Alternatively, modify the generated src/Makefile to link the .a file -explicitly, and edit src/config.h to define HAVE_JPEG. +*** Versions of the PSGML package earlier than 1.0.3 (stable) or 1.1.2 +(alpha) fail to parse DTD files correctly in Emacs 20.3 and later. +Here is a patch for psgml-parse.el from PSGML 1.0.1 and, probably, +earlier versions. -* Building Emacs over NFS fails with ``Text file busy''. +--- psgml-parse.el 1998/08/21 19:18:18 1.1 ++++ psgml-parse.el 1998/08/21 19:20:00 +@@ -2383,7 +2383,7 @@ (defun sgml-push-to-entity (entity &opti + (setq sgml-buffer-parse-state nil)) + (cond + ((stringp entity) ; a file name +- (save-excursion (insert-file-contents entity)) ++ (insert-file-contents entity) + (setq default-directory (file-name-directory entity))) + ((consp (sgml-entity-text entity)) ; external id? + (let* ((extid (sgml-entity-text entity)) -This was reported to happen when building Emacs on a GNU/Linux system -(RedHat Linux 6.2) using a build directory automounted from Solaris -(SunOS 5.6) file server, but it might not be limited to that -configuration alone. Presumably, the NFS server doesn't commit the -files' data to disk quickly enough, and the Emacs executable file is -left ``busy'' for several seconds after Emacs has finished dumping -itself. This causes the subsequent commands which invoke the dumped -Emacs executable to fail with the above message. +** AUCTeX -In some of these cases, a time skew between the NFS server and the -machine where Emacs is built is detected and reported by GNU Make -(it says that some of the files have modification time in the future). -This might be a symptom of NFS-related problems. +You should not be using a version older than 11.52 if you can avoid +it. -If the NFS server runs on Solaris, apply the Solaris patch 105379-05 -(Sunos 5.6: /kernel/misc/nfssrv patch). If that doesn't work, or if -you have a different version of the OS or the NFS server, you can -force the NFS server to use 1KB blocks, which was reported to fix the -problem albeit at a price of slowing down file I/O. You can force 1KB -blocks by specifying the "-o rsize=1024,wsize=1024" options to the -`mount' command, or by adding ",rsize=1024,wsize=1024" to the mount -options in the appropriate system configuration file, such as -`/etc/auto.home'. +*** Emacs 21 freezes when visiting a TeX file with AUCTeX installed. -Alternatively, when Make fails due to this problem, you could wait for -a few seconds and then invoke Make again. In one particular case, -waiting for 10 or more seconds between the two Make invocations seemed -to work around the problem. +Emacs 21 needs version 10 or later of AUCTeX; upgrading should solve +these problems. -Similar problems can happen if your machine NFS-mounts a directory -onto itself. Suppose the Emacs sources live in `/usr/local/src' and -you are working on the host called `marvin'. Then an entry in the -`/etc/fstab' file like the following is asking for trouble: +*** No colors in AUCTeX with Emacs 21. - marvin:/usr/local/src /usr/local/src ...options.omitted... +Upgrade to AUC TeX version 10 or later, and make sure it is +byte-compiled with Emacs 21. -The solution is to remove this line from `etc/fstab'. +** PCL-CVS -* Emacs binary is not in executable format, and cannot be run. +*** Lines are not updated or new lines are added in the buffer upon commit. -This was reported to happen when Emacs is built in a directory mounted -via NFS. Usually, the file `emacs' produced in these cases is full of -binary null characters, and the `file' utility says: +When committing files located higher in the hierarchy than the examined +directory, some versions of the CVS program return an ambiguous message +from which PCL-CVS cannot extract the full location of the committed +files. As a result, the corresponding lines in the PCL-CVS buffer are +not updated with the new revision of these files, and new lines are +added to the top-level directory. - emacs: ASCII text, with no line terminators +This can happen with CVS versions 1.12.8 and 1.12.9. Upgrade to CVS +1.12.10 or newer to fix this problem. -We don't know what exactly causes this failure. A work-around is to -build Emacs in a directory on a local disk. +** Miscellaneous problems -* Accented ISO-8859-1 characters are displayed as | or _. +*** Self-documentation messages are garbled. -Try other font set sizes (S-mouse-1). If the problem persists with -other sizes as well, your text is corrupted, probably through software -that is not 8-bit clean. If the problem goes away with another font -size, it's probably because some fonts pretend to be ISO-8859-1 fonts -when they are really ASCII fonts. In particular the schumacher-clean -fonts have this bug in some versions of X. +This means that the file `etc/DOC-...' doesn't properly correspond +with the Emacs executable. Redumping Emacs and then installing the +corresponding pair of files should fix the problem. -To see what glyphs are included in a font, use `xfd', like this: +*** Programs running under terminal emulator do not recognize `emacs' +terminal type. - xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1 +The cause of this is a shell startup file that sets the TERMCAP +environment variable. The terminal emulator uses that variable to +provide the information on the special terminal type that Emacs +emulates. -If this shows only ASCII glyphs, the font is indeed the source of the -problem. +Rewrite your shell startup file so that it does not change TERMCAP +in such a case. You could use the following conditional which sets +it only if it is undefined. -The solution is to remove the corresponding lines from the appropriate -`fonts.alias' file, then run `mkfontdir' in that directory, and then run -`xset fp rehash'. + if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file -* Large file support is disabled on HP-UX. See the comments in -src/s/hpux10.h. +Or you could set TERMCAP only when you set TERM--which should not +happen in a non-login shell. -* Crashes when displaying GIF images in Emacs built with version -libungif-4.1.0 are resolved by using version libungif-4.1.0b1. -Configure checks for the correct version, but this problem could occur -if a binary built against a shared libungif is run on a system with an -older version. +*** In Shell mode, you get a ^M at the end of every line. -* Font Lock displays portions of the buffer in incorrect faces. +This happens to people who use tcsh, because it is trying to be too +smart. It sees that the Shell uses terminal type `unknown' and turns +on the flag to output ^M at the end of each line. You can fix the +problem by adding this to your .cshrc file: -By far the most frequent cause of this is a parenthesis `(' or a brace -`{' in column zero. Font Lock assumes that such a paren is outside of -any comment or string. This is of course not true in general, but the -vast majority of well-formatted program source files don't have such -parens, and therefore this assumption is used to allow optimizations -in Font Lock's syntactical analysis. These optimizations avoid some -pathological cases where jit-lock, the Just-in-Time fontification -introduced with Emacs 21.1, could significantly slow down scrolling -through the buffer, especially scrolling backwards, and also jumping -to the end of a very large buffer. + if ($?EMACS) then + if ($EMACS == "t") then + unset edit + stty -icrnl -onlcr -echo susp ^Z + endif + endif -Beginning with version 21.3, a parenthesis or a brace in column zero -is highlighted in bold-red face if it is inside a string or a comment, -to indicate that it could interfere with Font Lock (and also with -indentation) and should be moved or escaped with a backslash. +*** Emacs startup on GNU/Linux systems (and possibly other systems) is slow. -If you don't use large buffers, or have a very fast machine which -makes the delays insignificant, you can avoid the incorrect -fontification by setting the variable -`font-lock-beginning-of-syntax-function' to a nil value. (This must -be done _after_ turning on Font Lock.) +This can happen if the system is misconfigured and Emacs can't get the +full qualified domain name, FQDN. You should have your FQDN in the +/etc/hosts file, something like this: -Another alternative is to avoid a paren in column zero. For example, -in a Lisp string you could precede the paren with a backslash. +127.0.0.1 localhost +129.187.137.82 nuc04.t30.physik.tu-muenchen.de nuc04 -* When running on KDE, colors or fonts are not as specified for Emacs, -or messed up. +The way to set this up may vary on non-GNU systems. -For example, you could see background you set for Emacs only in the -empty portions of the Emacs display, while characters have some other -background. +*** Attempting to visit remote files via ange-ftp fails. -This happens because KDE's defaults apply its color and font -definitions even to applications that weren't compiled for KDE. The -solution is to uncheck the "Apply fonts and colors to non-KDE apps" -option in Preferences->Look&Feel->Style (KDE 2). In KDE 3, this option -is in the "Colors" section, rather than "Style". +If the error message is "ange-ftp-file-modtime: Specified time is not +representable", then this could happen when `lukemftp' is used as the +ftp client. This was reported to happen on Debian GNU/Linux, kernel +version 2.4.3, with `lukemftp' 1.5-5, but might happen on other +systems as well. To avoid this problem, switch to using the standard +ftp client. On a Debian system, type -Alternatively, if you do want the KDE defaults to apply to other -applications, but not to Emacs, you could modify the file `Emacs.ad' -(should be in the `/usr/share/apps/kdisplay/app-defaults/' directory) -so that it doesn't set the default background and foreground only for -Emacs. For example, make sure the following resources are either not -present or commented out: + update-alternatives --config ftp - Emacs.default.attributeForeground - Emacs.default.attributeBackground - Emacs*Foreground - Emacs*Background +and then choose /usr/bin/netkit-ftp. -* Interrupting Cygwin port of Bash from Emacs doesn't work. +*** JPEG images aren't displayed. -Cygwin 1.x builds of the ported Bash cannot be interrupted from the -MS-Windows version of Emacs. This is due to some change in the Bash -port or in the Cygwin library which apparently make Bash ignore the -keyboard interrupt event sent by Emacs to Bash. (Older Cygwin ports -of Bash, up to b20.1, did receive SIGINT from Emacs.) +This has been reported when Emacs is built with jpeg-6a library. +Upgrading to jpeg-6b solves the problem. Configure checks for the +correct version, but this problem could occur if a binary built +against a shared libjpeg is run on a system with an older version. -* Dired is very slow. +*** Dired is very slow. This could happen if invocation of the `df' program takes a long time. Possible reasons for this include: @@ -677,85 +589,17 @@ To work around the problem, you could either (a) set the variable invoking `df'; (b) use `df' from the GNU Fileutils package; or (c) use CVS, which is Free Software, instead of ClearCase. -* Accessing remote files with ange-ftp hangs the MS-Windows version of Emacs. - -If the FTP client is the Cygwin port of GNU `ftp', this appears to be -due to some bug in the Cygwin DLL or some incompatibility between it -and the implementation of asynchronous subprocesses in the Windows -port of Emacs. Specifically, some parts of the FTP server responses -are not flushed out, apparently due to buffering issues, which -confuses ange-ftp. - -The solution is to downgrade to an older version of the Cygwin DLL -(version 1.3.2 was reported to solve the problem), or use the stock -Windows FTP client, usually found in the `C:\WINDOWS' or 'C:\WINNT' -directory. To force ange-ftp use the stock Windows client, set the -variable `ange-ftp-ftp-program-name' to the absolute file name of the -client's executable. For example: - - (setq ange-ftp-ftp-program-name "c:/windows/ftp.exe") - -If you want to stick with the Cygwin FTP client, you can work around -this problem by putting this in your `.emacs' file: - - (setq ange-ftp-ftp-program-args '("-i" "-n" "-g" "-v" "--prompt" "") - -* Versions of the W3 package released before Emacs 21.1 don't run +*** Versions of the W3 package released before Emacs 21.1 don't run under Emacs 21. This fixed in W3 version 4.0pre.47. -* On AIX, if linking fails because libXbsd isn't found, check if you -are compiling with the system's `cc' and CFLAGS containing `-O5'. If -so, you have hit a compiler bug. Please make sure to re-configure -Emacs so that it isn't compiled with `-O5'. - -* Compiling on AIX 4.3.x or 4.4 fails. - -This could happen if you use /bin/c89 as your compiler, instead of -the default `cc'. /bin/c89 treats certain warnings, such as benign -redefinitions of macros, as errors, and fails the build. A solution -is to use the default compiler `cc'. - -* Old versions of the PSGML package use the obsolete variables -`before-change-function' and `after-change-function', which are no -longer used by Emacs. Please use PSGML 1.2.3 or later. - -* PSGML conflicts with sgml-mode. - -PSGML package uses the same names of some variables (like keymap) -as built-in sgml-mode.el because it was created as a replacement -of that package. The conflict will be shown if you load -sgml-mode.el before psgml.el. E.g. this could happen if you edit -HTML page and then start to work with SGML or XML file. html-mode -(from sgml-mode.el) is used for HTML file and loading of psgml.el -(for sgml-mode or xml-mode) will cause an error. - -* The LDAP support rely on ldapsearch program from OpenLDAP version 2. +*** The LDAP support rely on ldapsearch program from OpenLDAP version 2. It can fail to work with ldapsearch program from OpenLDAP version 1. Version 1 of OpenLDAP is now deprecated. If you are still using it, please upgrade to version 2. As a temporary workaround, remove argument "-x" from the variable `ldap-ldapsearch-args'. -* The `oc-unicode' package doesn't work with Emacs 21. - -This package tries to define more private charsets than there are free -slots now. If the built-in Unicode/UTF-8 support is insufficient, -e.g. if you need more CJK coverage, use the current Mule-UCS package. -Any files encoded as emacs-mule using oc-unicode won't be read -correctly by Emacs 21. - -* Using epop3.el package causes Emacs to signal an error. - -The error message might be something like this: - - "Lisp nesting exceeds max-lisp-eval-depth" - -This happens because epop3 redefines the function gethash, which is a -built-in primitive beginning with Emacs 21.1. We don't have a patch -for epop3 that fixes this, but perhaps a newer version of epop3 -corrects that. - -* ps-print commands fail to find prologue files ps-prin*.ps. +*** ps-print commands fail to find prologue files ps-prin*.ps. This can happen if you use an old version of X-Symbol package: it defines compatibility functions which trick ps-print into thinking it @@ -763,7 +607,7 @@ runs in XEmacs, and look for the prologue files in a wrong directory. The solution is to upgrade X-Symbol to a later version. -* On systems with shared libraries you might encounter run-time errors +*** On systems with shared libraries you might encounter run-time errors from the dynamic linker telling you that it is unable to find some shared libraries, for instance those for Xaw3d or image support. These errors mean Emacs has been linked with a library whose shared @@ -802,303 +646,382 @@ to work around the problem. Please refer to the documentation of your dynamic linker for details. -* On Solaris 2.7, building Emacs with WorkShop Compilers 5.0 98/12/15 -C 5.0 failed, apparently with non-default CFLAGS, most probably due to -compiler bugs. Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C -release was reported to work without problems. It worked OK on -another system with Solaris 8 using apparently the same 5.0 compiler -and the default CFLAGS. +*** You request inverse video, and the first Emacs frame is in inverse +video, but later frames are not in inverse video. -* Compiling syntax.c with the OPENSTEP 4.2 compiler gcc 2.7.2.1 fails. +This can happen if you have an old version of the custom library in +your search path for Lisp packages. Use M-x list-load-path-shadows to +check whether this is true. If it is, delete the old custom library. -The compiler was reported to crash while compiling syntax.c with the -following message: +*** When you run Ispell from Emacs, it reports a "misalignment" error. - cc: Internal compiler error: program cc1obj got fatal signal 11 +This can happen if you compiled the Ispell program to use ASCII +characters only and then try to use it from Emacs with non-ASCII +characters, like Latin-1. The solution is to recompile Ispell with +support for 8-bit characters. -To work around this, replace the macros UPDATE_SYNTAX_TABLE_FORWARD, -INC_BOTH, and INC_FROM with functions. To this end, first define 3 -functions, one each for every macro. Here's an example: +To see whether your Ispell program supports 8-bit characters, type +this at your shell's prompt: - static int update_syntax_table_forward(int from) - { - return(UPDATE_SYNTAX_TABLE_FORWARD(from)); - }/*update_syntax_table_forward*/ + ispell -vv -Then replace all references to UPDATE_SYNTAX_TABLE_FORWARD in syntax.c -with a call to the function update_syntax_table_forward. +and look in the output for the string "NO8BIT". If Ispell says +"!NO8BIT (8BIT)", your speller supports 8-bit characters; otherwise it +does not. -* Emacs fails to start, complaining about missing fonts. +To rebuild Ispell with 8-bit character support, edit the local.h file +in the Ispell distribution and make sure it does _not_ define NO8BIT. +Then rebuild the speller. -A typical error message might be something like +Another possible cause for "misalignment" error messages is that the +version of Ispell installed on your machine is old. Upgrade. - No fonts match `-*-fixed-medium-r-*--6-*-*-*-*-*-iso8859-1' +Yet another possibility is that you are trying to spell-check a word +in a language that doesn't fit the dictionary you choose for use by +Ispell. (Ispell can only spell-check one language at a time, because +it uses a single dictionary.) Make sure that the text you are +spelling and the dictionary used by Ispell conform to each other. -This happens because some X resource specifies a bad font family for -Emacs to use. The possible places where this specification might be -are: +If your spell-checking program is Aspell, it has been reported that if +you have a personal configuration file (normally ~/.aspell.conf), it +can cause this error. Remove that file, execute `ispell-kill-ispell' +in Emacs, and then try spell-checking again. - - in your ~/.Xdefaults file +* Runtime problems related to font handling - - client-side X resource file, such as ~/Emacs or - /usr/X11R6/lib/app-defaults/Emacs or - /usr/X11R6/lib/X11/app-defaults/Emacs +** Under X11, some characters appear as hollow boxes. -One of these files might have bad or malformed specification of a -fontset that Emacs should use. To fix the problem, you need to find -the problematic line(s) and correct them. +Each X11 font covers just a fraction of the characters that Emacs +supports. To display the whole range of Emacs characters requires +many different fonts, collected into a fontset. -* Emacs 20 and later fails to load Lisp files at startup. +If some of the fonts called for in your fontset do not exist on your X +server, then the characters that have no font appear as hollow boxes. +You can remedy the problem by installing additional fonts. -The typical error message might be like this: +The intlfonts distribution includes a full spectrum of fonts that can +display all the characters Emacs supports. - "Cannot open load file: fontset" +Another cause of this for specific characters is fonts which have a +missing glyph and no default character. This is known to occur for +character number 160 (no-break space) in some fonts, such as Lucida +but Emacs sets the display table for the unibyte and Latin-1 version +of this character to display a space. -This could happen if you compress the file lisp/subdirs.el. That file -tells Emacs what are the directories where it should look for Lisp -files. Emacs cannot work with subdirs.el compressed, since the -Auto-compress mode it needs for this will not be loaded until later, -when your .emacs file is processed. (The package `fontset.el' is -required to set up fonts used to display text on window systems, and -it's loaded very early in the startup procedure.) +** Under X11, some characters appear improperly aligned in their lines. -Similarly, any other .el file for which there's no corresponding .elc -file could fail to load if it is compressed. +You may have bad X11 fonts; try installing the intlfonts distribution. -The solution is to uncompress all .el files which don't have a .elc -file. +** Certain fonts make each line take one pixel more than it "should". -Another possible reason for such failures is stale *.elc files -lurking somewhere on your load-path. The following command will -print any duplicate Lisp files that are present in load-path: +This is because these fonts contain characters a little taller +than the font's nominal height. Emacs needs to make sure that +lines do not overlap. - emacs -q -batch -f list-load-path-shadows +** Loading fonts is very slow. -If this command prints any file names, some of these files are stale, -and should be deleted or their directories removed from your -load-path. +You might be getting scalable fonts instead of precomputed bitmaps. +Known scalable font directories are "Type1" and "Speedo". A font +directory contains scalable fonts if it contains the file +"fonts.scale". -* Emacs prints an error at startup after upgrading from an earlier version. +If this is so, re-order your X windows font path to put the scalable +font directories last. See the documentation of `xset' for details. -An example of such an error is: +With some X servers, it may be necessary to take the scalable font +directories out of your path entirely, at least for Emacs 19.26. +Changes in the future may make this unnecessary. - x-complement-fontset-spec: "Wrong type argument: stringp, nil" +** Font Lock displays portions of the buffer in incorrect faces. -This can be another symptom of stale *.elc files in your classpath. -The following command will print any duplicate Lisp files that are -present in load-path: +By far the most frequent cause of this is a parenthesis `(' or a brace +`{' in column zero. Font Lock assumes that such a paren is outside of +any comment or string. This is of course not true in general, but the +vast majority of well-formatted program source files don't have such +parens, and therefore this assumption is used to allow optimizations +in Font Lock's syntactical analysis. These optimizations avoid some +pathological cases where jit-lock, the Just-in-Time fontification +introduced with Emacs 21.1, could significantly slow down scrolling +through the buffer, especially scrolling backwards, and also jumping +to the end of a very large buffer. - emacs -q -batch -f list-load-path-shadows +Beginning with version 22.1, a parenthesis or a brace in column zero +is highlighted in bold-red face if it is inside a string or a comment, +to indicate that it could interfere with Font Lock (and also with +indentation) and should be moved or escaped with a backslash. -If this command prints any file names, some of these files are stale, -and should be deleted or their directories removed from your -load-path. +If you don't use large buffers, or have a very fast machine which +makes the delays insignificant, you can avoid the incorrect +fontification by setting the variable +`font-lock-beginning-of-syntax-function' to a nil value. (This must +be done _after_ turning on Font Lock.) -* Attempting to visit remote files via ange-ftp fails. +Another alternative is to avoid a paren in column zero. For example, +in a Lisp string you could precede the paren with a backslash. -If the error message is "ange-ftp-file-modtime: Specified time is not -representable", then this could happen when `lukemftp' is used as the -ftp client. This was reported to happen on Debian GNU/Linux, kernel -version 2.4.3, with `lukemftp' 1.5-5, but might happen on other -systems as well. To avoid this problem, switch to using the standard -ftp client. On a Debian system, type +** With certain fonts, when the cursor appears on a character, the +character doesn't appear--you get a solid box instead. - update-alternatives --config ftp +One user on a Linux-based GNU system reported that this problem went +away with installation of a new X server. The failing server was +XFree86 3.1.1. XFree86 3.1.2 works. -and then choose /usr/bin/netkit-ftp. +** Characters are displayed as empty boxes or with wrong font under X. -* Antivirus software interacts badly with the MS-Windows version of Emacs. +This can occur when two different versions of FontConfig are used. +For example, XFree86 4.3.0 has one version and Gnome usually comes +with a newer version. Emacs compiled with --with-gtk will then use +the newer version. In most cases the problem can be temporarily +fixed by stopping the application that has the error (it can be +Emacs or any other application), removing ~/.fonts.cache-1, +and then start the application again. +If removing ~/.fonts.cache-1 and restarting doesn't help, the +application with problem must be recompiled with the same version +of FontConfig as the rest of the system uses. For KDE, it is +sufficient to recompile Qt. -The usual manifestation of these problems is that subprocesses don't -work or even wedge the entire system. In particular, "M-x shell RET" -was reported to fail to work. But other commands also sometimes don't -work when an antivirus package is installed. +** Emacs pauses for several seconds when changing the default font. -The solution is to switch the antivirus software to a less aggressive -mode (e.g., disable the ``auto-protect'' feature), or even uninstall -or disable it entirely. +This has been reported for fvwm 2.2.5 and the window manager of KDE +2.1. The reason for the pause is Xt waiting for a ConfigureNotify +event from the window manager, which the window manager doesn't send. +Xt stops waiting after a default timeout of usually 5 seconds. -* On MS-Windows 95/98/ME, subprocesses do not terminate properly. +A workaround for this is to add something like -This is a limitation of the Operating System, and can cause problems -when shutting down Windows. Ensure that all subprocesses are exited -cleanly before exiting Emacs. For more details, see the FAQ at -http://www.gnu.org/software/emacs/windows/. +emacs.waitForWM: false -* MS-Windows 95/98/ME crashes when Emacs invokes non-existent programs. +to your X resources. Alternatively, add `(wait-for-wm . nil)' to a +frame's parameter list, like this: -When a program you are trying to run is not found on the PATH, -Windows might respond by crashing or locking up your system. In -particular, this has been reported when trying to compile a Java -program in JDEE when javac.exe is installed, but not on the system -PATH. + (modify-frame-parameters nil '((wait-for-wm . nil))) -* Mail sent through Microsoft Exchange in some encodings appears to be -mangled and is not seen correctly in Rmail or Gnus. We don't know -exactly what happens, but it isn't an Emacs problem in cases we've -seen. +(this should go into your `.emacs' file). -* After upgrading to a newer version of Emacs, the Meta key stops working. +** Underlines appear at the wrong position. -This was reported to happen on a GNU/Linux system distributed by -Mandrake. The reason is that the previous version of Emacs was -modified by Mandrake to make the Alt key act as the Meta key, on a -keyboard where the Windows key is the one which produces the Meta -modifier. A user who started using a newer version of Emacs, which -was not hacked by Mandrake, expected the Alt key to continue to act as -Meta, and was astonished when that didn't happen. +This is caused by fonts having a wrong UNDERLINE_POSITION property. +Examples are the font 7x13 on XFree prior to version 4.1, or the jmk +neep font from the Debian xfonts-jmk package. To circumvent this +problem, set x-use-underline-position-properties to nil in your +`.emacs'. -The solution is to find out what key on your keyboard produces the Meta -modifier, and use that key instead. Try all of the keys to the left -and to the right of the space bar, together with the `x' key, and see -which combination produces "M-x" in the echo area. You can also use -the `xmodmap' utility to show all the keys which produce a Meta -modifier: +To see what is the value of UNDERLINE_POSITION defined by the font, +type `xlsfonts -lll FONT' and look at the font's UNDERLINE_POSITION +property. - xmodmap -pk | egrep -i "meta|alt" +** When using Exceed, fonts sometimes appear too tall. -A more convenient way of finding out which keys produce a Meta modifier -is to use the `xkbprint' utility, if it's available on your system: +When the display is set to an Exceed X-server and fonts are specified +(either explicitly with the -fn option or implicitly with X resources) +then the fonts may appear "too tall". The actual character sizes are +correct but there is too much vertical spacing between rows, which +gives the appearance of "double spacing". - xkbprint 0:0 /tmp/k.ps +To prevent this, turn off the Exceed's "automatic font substitution" +feature (in the font part of the configuration window). -This produces a PostScript file `/tmp/k.ps' with a picture of your -keyboard; printing that file on a PostScript printer will show what -keys can serve as Meta. +* Internationalization problems -The `xkeycaps' also shows a visual representation of the current -keyboard settings. It also allows to modify them. +** Characters from the mule-unicode charsets aren't displayed under X. -* On OSF/Dec Unix/Tru64/ under X locally or -remotely, M-SPC acts as a `compose' key with strange results. See -keyboard(5). +XFree86 4 contains many fonts in iso10646-1 encoding which have +minimal character repertoires (whereas the encoding part of the font +name is meant to be a reasonable indication of the repertoire +according to the XLFD spec). Emacs may choose one of these to display +characters from the mule-unicode charsets and then typically won't be +able to find the glyphs to display many characters. (Check with C-u +C-x = .) To avoid this, you may need to use a fontset which sets the +font for the mule-unicode sets explicitly. E.g. to use GNU unifont, +include in the fontset spec: -Changing Alt_L to Meta_L fixes it: -% xmodmap -e 'keysym Alt_L = Meta_L Alt_L' -% xmodmap -e 'keysym Alt_R = Meta_R Alt_R' +mule-unicode-2500-33ff:-gnu-unifont-*-iso10646-1,\ +mule-unicode-e000-ffff:-gnu-unifont-*-iso10646-1,\ +mule-unicode-0100-24ff:-gnu-unifont-*-iso10646-1 -* Error "conflicting types for `initstate'" compiling with GCC on Irix 6. +** The UTF-8/16/7 coding systems don't encode CJK (Far Eastern) characters. -Install GCC 2.95 or a newer version, and this problem should go away. -It is possible that this problem results from upgrading the operating -system without reinstalling GCC; so you could also try reinstalling -the same version of GCC, and telling us whether that fixes the problem. +Emacs directly supports the Unicode BMP whose code points are in the +ranges 0000-33ff and e000-ffff, and indirectly supports the parts of +CJK characters belonging to these legacy charsets: -* Emacs dumps core on Solaris in function IMCheckWindow. + GB2312, Big5, JISX0208, JISX0212, JISX0213-1, JISX0213-2, KSC5601 -This was reported to happen when Emacs runs with more than one frame, -and one of them is closed, either with "C-x 5 0" or from the window -manager. +The latter support is done in Utf-Translate-Cjk mode (turned on by +default). Which Unicode CJK characters are decoded into which Emacs +charset is decided by the current language environment. For instance, +in Chinese-GB, most of them are decoded into chinese-gb2312. -This bug was reported to Sun as +If you read UTF-8 data with code points outside these ranges, the +characters appear in the buffer as raw bytes of the original UTF-8 +(composed into a single quasi-character) and they will be written back +correctly as UTF-8, assuming you don't break the composed sequences. +If you read such characters from UTF-16 or UTF-7 data, they are +substituted with the Unicode `replacement character', and you lose +information. - Gtk apps dump core in ximlocal.so.2:IMCheckIMWindow() - Bug Reports: 4463537 +** Mule-UCS loads very slowly. -Installing Solaris 8 patch 108773-12 for Sparc and 108774-12 for x86 -reportedly fixes the bug, which appears to be inside the shared -library xiiimp.so. +Changes to Emacs internals interact badly with Mule-UCS's `un-define' +library, which is the usual interface to Mule-UCS. Apply the +following patch to Mule-UCS 0.84 and rebuild it. That will help, +though loading will still be slower than in Emacs 20. (Some +distributions, such as Debian, may already have applied such a patch.) -Alternatively, you can configure Emacs with `--with-xim=no' to prevent -the core dump, but will loose X input method support, of course. (You -can use Emacs's own input methods instead, if you install Leim.) +--- lisp/un-define.el 6 Mar 2001 22:41:38 -0000 1.30 ++++ lisp/un-define.el 19 Apr 2002 18:34:26 -0000 +@@ -610,13 +624,21 @@ by calling post-read-conversion and pre- -* On Solaris 7, Emacs gets a segmentation fault when starting up using X. + (mapcar + (lambda (x) +- (mapcar +- (lambda (y) +- (mucs-define-coding-system +- (nth 0 y) (nth 1 y) (nth 2 y) +- (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y)) +- (coding-system-put (car y) 'alias-coding-systems (list (car x)))) +- (cdr x))) ++ (if (fboundp 'register-char-codings) ++ ;; Mule 5, where we don't need the eol-type specified and ++ ;; register-char-codings may be very slow for these coding ++ ;; system definitions. ++ (let ((y (cadr x))) ++ (mucs-define-coding-system ++ (car x) (nth 1 y) (nth 2 y) ++ (nth 3 y) (nth 4 y) (nth 5 y))) ++ (mapcar ++ (lambda (y) ++ (mucs-define-coding-system ++ (nth 0 y) (nth 1 y) (nth 2 y) ++ (nth 3 y) (nth 4 y) (nth 5 y) (nth 6 y)) ++ (coding-system-put (car y) 'alias-coding-systems (list (car x))))) ++ (cdr x))) + `((utf-8 + (utf-8-unix + ?u "UTF-8 coding system" -This results from Sun patch 107058-01 (SunOS 5.7: Patch for -assembler) if you use GCC version 2.7 or later. -To work around it, either install patch 106950-03 or later, -or uninstall patch 107058-01, or install the GNU Binutils. -Then recompile Emacs, and it should work. +Note that Emacs has native support for Unicode, roughly equivalent to +Mule-UCS's, so you may not need it. -* With X11R6.4, public-patch-3, Emacs crashes at startup. +** Mule-UCS compilation problem. + +Emacs of old versions and XEmacs byte-compile the form `(progn progn +...)' the same way as `(progn ...)', but Emacs of version 21.3 and the +later process that form just as interpreter does, that is, as `progn' +variable reference. Apply the following patch to Mule-UCS 0.84 to +make it compiled by the latest Emacs. + +--- mucs-ccl.el 2 Sep 2005 00:42:23 -0000 1.1.1.1 ++++ mucs-ccl.el 2 Sep 2005 01:31:51 -0000 1.3 +@@ -639,10 +639,14 @@ + (mucs-notify-embedment 'mucs-ccl-required name) + (setq ccl-pgm-list (cdr ccl-pgm-list))) + ; (message "MCCLREGFIN:%S" result) +- `(progn +- (setq mucs-ccl-facility-alist +- (quote ,mucs-ccl-facility-alist)) +- ,@result))) ++ ;; The only way the function is used in this package is included ++ ;; in `mucs-package-definition-end-hook' value, where it must ++ ;; return (possibly empty) *list* of forms. Do this. Do not rely ++ ;; on byte compiler to remove extra `progn's in `(progn ...)' ++ ;; form. ++ `((setq mucs-ccl-facility-alist ++ (quote ,mucs-ccl-facility-alist)) ++ ,@result))) + + ;;; Add hook for embedding translation informations to a package. + (add-hook 'mucs-package-definition-end-hook + +** Accented ISO-8859-1 characters are displayed as | or _. -Reportedly this patch in X fixes the problem. +Try other font set sizes (S-mouse-1). If the problem persists with +other sizes as well, your text is corrupted, probably through software +that is not 8-bit clean. If the problem goes away with another font +size, it's probably because some fonts pretend to be ISO-8859-1 fonts +when they are really ASCII fonts. In particular the schumacher-clean +fonts have this bug in some versions of X. - --- xc/lib/X11/imInt.c~ Wed Jun 30 13:31:56 1999 - +++ xc/lib/X11/imInt.c Thu Jul 1 15:10:27 1999 - @@ -1,4 +1,4 @@ - -/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ - +/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ - /****************************************************************** +To see what glyphs are included in a font, use `xfd', like this: - Copyright 1992, 1993, 1994 by FUJITSU LIMITED - @@ -166,8 +166,8 @@ - _XimMakeImName(lcd) - XLCd lcd; - { - - char* begin; - - char* end; - + char* begin = NULL; - + char* end = NULL; - char* ret; - int i = 0; - char* ximmodifier = XIMMODIFIER; - @@ -182,7 +182,11 @@ - } - ret = Xmalloc(end - begin + 2); - if (ret != NULL) { - - (void)strncpy(ret, begin, end - begin + 1); - + if (begin != NULL) { - + (void)strncpy(ret, begin, end - begin + 1); - + } else { - + ret[0] = '\0'; - + } - ret[end - begin + 1] = '\0'; - } - return ret; + xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1 +If this shows only ASCII glyphs, the font is indeed the source of the +problem. -* Emacs crashes on Irix 6.5 on the SGI R10K, when compiled with GCC. +The solution is to remove the corresponding lines from the appropriate +`fonts.alias' file, then run `mkfontdir' in that directory, and then run +`xset fp rehash'. -This seems to be fixed in GCC 2.95. +** The `oc-unicode' package doesn't work with Emacs 21. -* Emacs crashes in utmpname on Irix 5.3. +This package tries to define more private charsets than there are free +slots now. The current built-in Unicode support is actually more +flexible. (Use option `utf-translate-cjk-mode' if you need CJK +support.) Files encoded as emacs-mule using oc-unicode aren't +generally read correctly by Emacs 21. -This problem is fixed in Patch 3175 for Irix 5.3. -It is also fixed in Irix versions 6.2 and up. +** After a while, Emacs slips into unibyte mode. -* The S-C-t key combination doesn't get passed to Emacs on X. +The VM mail package, which is not part of Emacs, sometimes does + (standard-display-european t) +That should be changed to + (standard-display-european 1 t) -This happens because some X configurations assign the Ctrl-Shift-t -combination the same meaning as the Multi_key. The offending -definition is in the file `...lib/X11/locale/iso8859-1/Compose'; there -might be other similar combinations which are grabbed by X for similar -purposes. +* X runtime problems -We think that this can be countermanded with the `xmodmap' utility, if -you want to be able to bind one of these key sequences within Emacs. +** X keyboard problems -* On Solaris, CTRL-t is ignored by Emacs when you use -the fr.ISO-8859-15 locale (and maybe other related locales). +*** You "lose characters" after typing Compose Character key. -You can fix this by editing the file: +This is because the Compose Character key is defined as the keysym +Multi_key, and Emacs (seeing that) does the proper X11 +character-composition processing. If you don't want your Compose key +to do that, you can redefine it with xmodmap. - /usr/openwin/lib/locale/iso8859-15/Compose +For example, here's one way to turn it into a Meta key: -Near the bottom there is a line that reads: + xmodmap -e "keysym Multi_key = Meta_L" - Ctrl : "\276" threequarters +If all users at your site of a particular keyboard prefer Meta to +Compose, you can make the remapping happen automatically by adding the +xmodmap command to the xdm setup script for that display. -that should read: +*** Using X Windows, control-shift-leftbutton makes Emacs hang. - Ctrl : "\276" threequarters +Use the shell command `xset bc' to make the old X Menu package work. -Note the lower case . Changing this line should make C-t work. +*** C-SPC fails to work on Fedora GNU/Linux. -* Emacs on Digital Unix 4.0 fails to build, giving error message - Invalid dimension for the charset-ID 160 +Fedora Core 4 steals the C-SPC key by default for the `iiimx' program +which is the input method for some languages. It blocks Emacs users +from using the C-SPC key for `set-mark-command'. -This is due to a bug or an installation problem in GCC 2.8.0. -Installing a more recent version of GCC fixes the problem. +One solutions is to remove the `space' from the `Iiimx' file +which can be found in the `/usr/lib/X11/app-defaults' directory. +However, that requires root access. -* Buffers from `with-output-to-temp-buffer' get set up in Help mode. +Another is to specify `Emacs*useXIM: false' in your X resources. -Changes in Emacs 20.4 to the hooks used by that function cause -problems for some packages, specifically BBDB. See the function's -documentation for the hooks involved. BBDB 2.00.06 fixes the problem. +Another is to build Emacs with the `--without-xim' configure option. + +*** M-SPC seems to be ignored as input. + +See if your X server is set up to use this as a command +for character composition. + +*** The S-C-t key combination doesn't get passed to Emacs on X. + +This happens because some X configurations assign the Ctrl-Shift-t +combination the same meaning as the Multi_key. The offending +definition is in the file `...lib/X11/locale/iso8859-1/Compose'; there +might be other similar combinations which are grabbed by X for similar +purposes. + +We think that this can be countermanded with the `xmodmap' utility, if +you want to be able to bind one of these key sequences within Emacs. -* Under X, C-v and/or other keys don't work. +*** Under X, C-v and/or other keys don't work. These may have been intercepted by your window manager. In particular, AfterStep 1.6 is reported to steal C-v in its default @@ -1106,893 +1029,819 @@ configuration. Various Meta keys are also likely to be taken by the configuration of the `feel'. See the WM's documentation for how to change this. -* When using Exceed, fonts sometimes appear too tall. - -When the display is set to an Exceed X-server and fonts are specified -(either explicitly with the -fn option or implicitly with X resources) -then the fonts may appear "too tall". The actual character sizes are -correct but there is too much vertical spacing between rows, which -gives the appearance of "double spacing". +*** Clicking C-mouse-2 in the scroll bar doesn't split the window. -To prevent this, turn off the Exceed's "automatic font substitution" -feature (in the font part of the configuration window). +This currently doesn't work with scroll-bar widgets (and we don't know +a good way of implementing it with widgets). If Emacs is configured +--without-toolkit-scroll-bars, C-mouse-2 on the scroll bar does work. -* Failure in unexec while dumping emacs on Digital Unix 4.0 +*** Inability to send an Alt-modified key, when Emacs is communicating +directly with an X server. -This problem manifests itself as an error message +If you have tried to bind an Alt-modified key as a command, and it +does not work to type the command, the first thing you should check is +whether the key is getting through to Emacs. To do this, type C-h c +followed by the Alt-modified key. C-h c should say what kind of event +it read. If it says it read an Alt-modified key, then make sure you +have made the key binding correctly. - unexec: Bad address, writing data section to ... +If C-h c reports an event that doesn't have the Alt modifier, it may +be because your X server has no key for the Alt modifier. The X +server that comes from MIT does not set up the Alt modifier by +default. -The user suspects that this happened because his X libraries -were built for an older system version, +If your keyboard has keys named Alt, you can enable them as follows: - ./configure --x-includes=/usr/include --x-libraries=/usr/shlib + xmodmap -e 'add mod2 = Alt_L' + xmodmap -e 'add mod2 = Alt_R' -made the problem go away. +If the keyboard has just one key named Alt, then only one of those +commands is needed. The modifier `mod2' is a reasonable choice if you +are using an unmodified MIT version of X. Otherwise, choose any +modifier bit not otherwise used. -* No visible display on mips-sgi-irix6.2 when compiling with GCC 2.8.1. +If your keyboard does not have keys named Alt, you can use some other +keys. Use the keysym command in xmodmap to turn a function key (or +some other 'spare' key) into Alt_L or into Alt_R, and then use the +commands show above to make them modifier keys. -This problem went away after installing the latest IRIX patches -as of 8 Dec 1998. +Note that if you have Alt keys but no Meta keys, Emacs translates Alt +into Meta. This is because of the great importance of Meta in Emacs. -The same problem has been reported on Irix 6.3. +** Window-manager and toolkit-related problems -* As of version 20.4, Emacs doesn't work properly if configured for -the Motif toolkit and linked against the free LessTif library. The -next Emacs release is expected to work with LessTif. +*** Gnome: Emacs' xterm-mouse-mode doesn't work on the Gnome terminal. -* Emacs gives the error, Couldn't find per display information. +A symptom of this bug is that double-clicks insert a control sequence +into the buffer. The reason this happens is an apparent +incompatibility of the Gnome terminal with Xterm, which also affects +other programs using the Xterm mouse interface. A problem report has +been filed. -This can result if the X server runs out of memory because Emacs uses -a large number of fonts. On systems where this happens, C-h h is -likely to cause it. +*** KDE: When running on KDE, colors or fonts are not as specified for Emacs, +or messed up. -We do not know of a way to prevent the problem. +For example, you could see background you set for Emacs only in the +empty portions of the Emacs display, while characters have some other +background. -* Emacs makes HPUX 11.0 crash. +This happens because KDE's defaults apply its color and font +definitions even to applications that weren't compiled for KDE. The +solution is to uncheck the "Apply fonts and colors to non-KDE apps" +option in Preferences->Look&Feel->Style (KDE 2). In KDE 3, this option +is in the "Colors" section, rather than "Style". -This is a bug in HPUX; HPUX patch PHKL_16260 is said to fix it. +Alternatively, if you do want the KDE defaults to apply to other +applications, but not to Emacs, you could modify the file `Emacs.ad' +(should be in the `/usr/share/apps/kdisplay/app-defaults/' directory) +so that it doesn't set the default background and foreground only for +Emacs. For example, make sure the following resources are either not +present or commented out: -* Emacs crashes during dumping on the HPPA machine (HPUX 10.20). + Emacs.default.attributeForeground + Emacs.default.attributeBackground + Emacs*Foreground + Emacs*Background -This seems to be due to a GCC bug; it is fixed in GCC 2.8.1. +*** KDE: Emacs hangs on KDE when a large portion of text is killed. -* The Hyperbole package causes *Help* buffers not to be displayed in -Help mode due to setting `temp-buffer-show-hook' rather than using -`add-hook'. Using `(add-hook 'temp-buffer-show-hook -'help-mode-maybe)' after loading Hyperbole should fix this. +This is caused by a bug in the KDE applet `klipper' which periodically +requests the X clipboard contents from applications. Early versions +of klipper don't implement the ICCCM protocol for large selections, +which leads to Emacs being flooded with selection requests. After a +while, Emacs may print a message: -* Versions of the PSGML package earlier than 1.0.3 (stable) or 1.1.2 -(alpha) fail to parse DTD files correctly in Emacs 20.3 and later. -Here is a patch for psgml-parse.el from PSGML 1.0.1 and, probably, -earlier versions. + Timed out waiting for property-notify event ---- psgml-parse.el 1998/08/21 19:18:18 1.1 -+++ psgml-parse.el 1998/08/21 19:20:00 -@@ -2383,7 +2383,7 @@ (defun sgml-push-to-entity (entity &opti - (setq sgml-buffer-parse-state nil)) - (cond - ((stringp entity) ; a file name -- (save-excursion (insert-file-contents entity)) -+ (insert-file-contents entity) - (setq default-directory (file-name-directory entity))) - ((consp (sgml-entity-text entity)) ; external id? - (let* ((extid (sgml-entity-text entity)) +A workaround is to not use `klipper'. An upgrade to the `klipper' that +comes with KDE 3.3 or later also solves the problem. -* Emacs 21 freezes when visiting a TeX file with AUC TeX installed. +*** CDE: Frames may cover dialogs they created when using CDE. -Emacs 21 needs version 10 or later of AUC TeX; upgrading should solve -these problems. +This can happen if you have "Allow Primary Windows On Top" enabled which +seems to be the default in the Common Desktop Environment. +To change, go in to "Desktop Controls" -> "Window Style Manager" +and uncheck "Allow Primary Windows On Top". -* No colors in AUC TeX with Emacs 21. +*** Xaw3d : When using Xaw3d scroll bars without arrows, the very first mouse +click in a scroll bar might be ignored by the scroll bar widget. This +is probably a bug in Xaw3d; when Xaw3d is compiled with arrows, the +problem disappears. -Upgrade to AUC TeX version 10 or later, and make sure it is -byte-compiled with Emacs 21. +*** Xaw: There are known binary incompatibilities between Xaw, Xaw3d, neXtaw, +XawM and the few other derivatives of Xaw. So when you compile with +one of these, it may not work to dynamically link with another one. +For example, strange problems, such as Emacs exiting when you type +"C-x 1", were reported when Emacs compiled with Xaw3d and libXaw was +used with neXtaw at run time. -* Running TeX from AUC TeX package with Emacs 20.3 gives a Lisp error -about a read-only tex output buffer. +The solution is to rebuild Emacs with the toolkit version you actually +want to use, or set LD_PRELOAD to preload the same toolkit version you +built Emacs with. -This problem appeared for AUC TeX version 9.9j and some earlier -versions. Here is a patch for the file tex-buf.el in the AUC TeX -package. +*** Open Motif: Problems with file dialogs in Emacs built with Open Motif. -diff -c auctex/tex-buf.el~ auctex/tex-buf.el -*** auctex/tex-buf.el~ Wed Jul 29 18:35:32 1998 ---- auctex/tex-buf.el Sat Sep 5 15:20:38 1998 -*************** -*** 545,551 **** - (dir (TeX-master-directory))) - (TeX-process-check file) ; Check that no process is running - (setq TeX-command-buffer (current-buffer)) -! (with-output-to-temp-buffer buffer) - (set-buffer buffer) - (if dir (cd dir)) - (insert "Running `" name "' on `" file "' with ``" command "''\n") -- --- 545,552 ---- - (dir (TeX-master-directory))) - (TeX-process-check file) ; Check that no process is running - (setq TeX-command-buffer (current-buffer)) -! (let (temp-buffer-show-function temp-buffer-show-hook) -! (with-output-to-temp-buffer buffer)) - (set-buffer buffer) - (if dir (cd dir)) - (insert "Running `" name "' on `" file "' with ``" command "''\n") - -* On Irix 6.3, substituting environment variables in file names -in the minibuffer gives peculiar error messages such as +When Emacs 21 is built with Open Motif 2.1, it can happen that the +graphical file dialog boxes do not work properly. The "OK", "Filter" +and "Cancel" buttons do not respond to mouse clicks. Dragging the +file dialog window usually causes the buttons to work again. - Substituting nonexistent environment variable "" +The solution is to use LessTif instead. LessTif is a free replacement +for Motif. See the file INSTALL for information on how to do this. -This is not an Emacs bug; it is caused by something in SGI patch -003082 August 11, 1998. +Another workaround is not to use the mouse to trigger file prompts, +but to use the keyboard. This way, you will be prompted for a file in +the minibuffer instead of a graphical file dialog. -* After a while, Emacs slips into unibyte mode. +*** LessTif: Problems in Emacs built with LessTif. -The VM mail package, which is not part of Emacs, sometimes does - (standard-display-european t) -That should be changed to - (standard-display-european 1 t) +The problems seem to depend on the version of LessTif and the Motif +emulation for which it is set up. -* Installing Emacs gets an error running `install-info'. +Only the Motif 1.2 emulation seems to be stable enough in LessTif. +Lesstif 0.92-17's Motif 1.2 emulation seems to work okay on FreeBSD. +On GNU/Linux systems, lesstif-0.92.6 configured with "./configure +--enable-build-12 --enable-default-12" is reported to be the most +successful. The binary GNU/Linux package +lesstif-devel-0.92.0-1.i386.rpm was reported to have problems with +menu placement. -You need to install a recent version of Texinfo; that package -supplies the `install-info' command. +On some systems, even with Motif 1.2 emulation, Emacs occasionally +locks up, grabbing all mouse and keyboard events. We still don't know +what causes these problems; they are not reproducible by Emacs +developers. -* Emacs does not recognize the AltGr key, on HPUX. +*** Motif: The Motif version of Emacs paints the screen a solid color. -To fix this, set up a file ~/.dt/sessions/sessionetc with executable -rights, containing this text: +This has been observed to result from the following X resource: --------------------------------- -xmodmap 2> /dev/null - << EOF -keysym Alt_L = Meta_L -keysym Alt_R = Meta_R -EOF + Emacs*default.attributeFont: -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-* -xmodmap - << EOF -clear mod1 -keysym Mode_switch = NoSymbol -add mod1 = Meta_L -keysym Meta_R = Mode_switch -add mod2 = Mode_switch -EOF --------------------------------- +That the resource has this effect indicates a bug in something, but we +do not yet know what. If it is an Emacs bug, we hope someone can +explain what the bug is so we can fix it. In the mean time, removing +the resource prevents the problem. -* Emacs hangs on KDE when a large portion of text is killed. +** General X problems -This is caused by a bug in the KDE applet `klipper' which periodically -requests the X clipboard contents from applications. Early versions -of klipper don't implement the ICCM protocol for large selections, -which leads to Emacs being flooded with selection requests. After a -while, Emacs will print a message: +*** Redisplay using X11 is much slower than previous Emacs versions. - Timed out waiting for property-notify event +We've noticed that certain X servers draw the text much slower when +scroll bars are on the left. We don't know why this happens. If this +happens to you, you can work around it by putting the scroll bars +on the right (as they were in Emacs 19). -A workaround is to not use `klipper'. +Here's how to do this: -* Emacs compiled with DJGPP for MS-DOS/MS-Windows cannot access files -in the directory with the special name `dev' under the root of any -drive, e.g. `c:/dev'. + (set-scroll-bar-mode 'right) -This is an unfortunate side-effect of the support for Unix-style -device names such as /dev/null in the DJGPP runtime library. A -work-around is to rename the problem directory to another name. +If you're not sure whether (or how much) this problem affects you, +try that and see how much difference it makes. To set things back +to normal, do -* M-SPC seems to be ignored as input. + (set-scroll-bar-mode 'left) -See if your X server is set up to use this as a command -for character composition. +*** Error messages about undefined colors on X. -* Emacs startup on GNU/Linux systems (and possibly other systems) is slow. +The messages might say something like this: -This can happen if the system is misconfigured and Emacs can't get the -full qualified domain name, FQDN. You should have your FQDN in the -/etc/hosts file, something like this: + Unable to load color "grey95" -127.0.0.1 localhost -129.187.137.82 nuc04.t30.physik.tu-muenchen.de nuc04 +(typically, in the `*Messages*' buffer), or something like this: -The way to set this up may vary on non-GNU systems. + Error while displaying tooltip: (error Undefined color lightyellow) -* Garbled display on non-X terminals when Emacs runs on Digital Unix 4.0. +These problems could happen if some other X program has used up too +many colors of the X palette, leaving Emacs with insufficient system +resources to load all the colors it needs. -So far it appears that running `tset' triggers this problem (when TERM -is vt100, at least). If you do not run `tset', then Emacs displays -properly. If someone can tell us precisely which effect of running -`tset' actually causes the problem, we may be able to implement a fix -in Emacs. +A solution is to exit the offending X programs before starting Emacs. -* When you run Ispell from Emacs, it reports a "misalignment" error. +*** Improving performance with slow X connections. -This can happen if you compiled the Ispell program to use ASCII -characters only and then try to use it from Emacs with non-ASCII -characters, like Latin-1. The solution is to recompile Ispell with -support for 8-bit characters. +There are several ways to improve this performance, any subset of which can +be carried out at the same time: -To see whether your Ispell program supports 8-bit characters, type -this at your shell's prompt: +1) If you don't need X Input Methods (XIM) for entering text in some + language you use, you can improve performance on WAN links by using + the X resource useXIM to turn off use of XIM. This does not affect + the use of Emacs' own input methods, which are part of the Leim + package. - ispell -vv +2) If the connection is very slow, you might also want to consider + switching off scroll bars, menu bar, and tool bar. -and look in the output for the string "NO8BIT". If Ispell says -"!NO8BIT (8BIT)", your speller supports 8-bit characters; otherwise it -does not. +3) Use ssh to forward the X connection, and enable compression on this + forwarded X connection (ssh -XC remotehostname emacs ...). -To rebuild Ispell with 8-bit character support, edit the local.h file -in the Ispell distribution and make sure it does _not_ define NO8BIT. -Then rebuild the speller. +4) Use lbxproxy on the remote end of the connection. This is an interface + to the low bandwidth X extension in most modern X servers, which + improves performance dramatically, at the slight expense of correctness + of the X protocol. lbxproxy acheives the performance gain by grouping + several X requests in one TCP packet and sending them off together, + instead of requiring a round-trip for each X request in a seperate + packet. The switches that seem to work best for emacs are: + -noatomsfile -nowinattr -cheaterrors -cheatevents + Note that the -nograbcmap option is known to cause problems. + For more about lbxproxy, see: + http://www.xfree86.org/4.3.0/lbxproxy.1.html -Another possible cause for "misalignment" error messages is that the -version of Ispell installed on your machine is old. Upgrade. +*** Emacs gives the error, Couldn't find per display information. -Yet another possibility is that you are trying to spell-check a word -in a language that doesn't fit the dictionary you choose for use by -Ispell. (Ispell can only spell-check one language at a time, because -it uses a single dictionary.) Make sure that the text you are -spelling and the dictionary used by Ispell conform to each other. +This can result if the X server runs out of memory because Emacs uses +a large number of fonts. On systems where this happens, C-h h is +likely to cause it. -If your spell-checking program is Aspell, it has been reported that if -you have a personal configuration file (normally ~/.aspell.conf), it -can cause this error. Remove that file, execute `ispell-kill-ispell' -in Emacs, and then try spell-checking again. +We do not know of a way to prevent the problem. -* On Linux-based GNU systems using libc versions 5.4.19 through -5.4.22, Emacs crashes at startup with a segmentation fault. +*** Emacs does not notice when you release the mouse. -This problem happens if libc defines the symbol __malloc_initialized. -One known solution is to upgrade to a newer libc version. 5.4.33 is -known to work. +There are reports that this happened with (some) Microsoft mice and +that replacing the mouse made it stop. -* On MS-Windows, you cannot use the right-hand ALT key and the left-hand -CTRL key together to type a Control-Meta character. +*** You can't select from submenus (in the X toolkit version). -This is a consequence of a misfeature beyond Emacs's control. +On certain systems, mouse-tracking and selection in top-level menus +works properly with the X toolkit, but neither of them works when you +bring up a submenu (such as Bookmarks or Compare or Apply Patch, in +the Files menu). -Under Windows, the AltGr key on international keyboards generates key -events with the modifiers Right-Alt and Left-Ctrl. Since Emacs cannot -distinguish AltGr from an explicit Right-Alt and Left-Ctrl -combination, whenever it sees Right-Alt and Left-Ctrl it assumes that -AltGr has been pressed. The variable `w32-recognize-altgr' can be set -to nil to tell Emacs that AltGr is really Ctrl and Alt. +This works on most systems. There is speculation that the failure is +due to bugs in old versions of X toolkit libraries, but no one really +knows. If someone debugs this and finds the precise cause, perhaps a +workaround can be found. -* Emacs crashes when using the Exceed 6.0 X server +*** An error message such as `X protocol error: BadMatch (invalid +parameter attributes) on protocol request 93'. -If you are using Exceed 6.1, upgrade to a later version. This was -reported to prevent the crashes. +This comes from having an invalid X resource, such as + emacs*Cursor: black +(which is invalid because it specifies a color name for something +that isn't a color.) -* Under some X-servers running on MS-Windows, Emacs' display is incorrect +The fix is to correct your X resources. -The symptoms are that Emacs does not completely erase blank areas of the -screen during scrolling or some other screen operations (e.g., selective -display or when killing a region). M-x recenter will cause the screen -to be completely redisplayed and the "extra" characters will disappear. +*** Slow startup on X11R6 with X windows. -This is known to occur under Exceed 6, and possibly earlier versions -as well; it is reportedly solved in version 6.2.0.16 and later. The -problem lies in the X-server settings. +If Emacs takes two minutes to start up on X11R6, see if your X +resources specify any Adobe fonts. That causes the type-1 font +renderer to start up, even if the font you asked for is not a type-1 +font. -There are reports that you can solve the problem with Exceed by -running `Xconfig' from within NT, choosing "X selection", then -un-checking the boxes "auto-copy X selection" and "auto-paste to X -selection". +One way to avoid this problem is to eliminate the type-1 fonts from +your font path, like this: -Of this does not work, please inform bug-gnu-emacs@gnu.org. Then -please call support for your X-server and see if you can get a fix. -If you do, please send it to bug-gnu-emacs@gnu.org so we can list it -here. + xset -fp /usr/X11R6/lib/X11/fonts/Type1/ -* On Solaris 2, Emacs dumps core when built with Motif. +*** Pull-down menus appear in the wrong place, in the toolkit version of Emacs. -The Solaris Motif libraries are buggy, at least up through Solaris 2.5.1. -Install the current Motif runtime library patch appropriate for your host. -(Make sure the patch is current; some older patch versions still have the bug.) -You should install the other patches recommended by Sun for your host, too. -You can obtain Sun patches from ftp://sunsolve.sun.com/pub/patches/; -look for files with names ending in `.PatchReport' to see which patches -are currently recommended for your host. +An X resource of this form can cause the problem: -On Solaris 2.6, Emacs is said to work with Motif when Solaris patch -105284-12 is installed, but fail when 105284-15 is installed. -105284-18 might fix it again. + Emacs*geometry: 80x55+0+0 -* On Solaris 2.6 and 7, the Compose key does not work. +This resource is supposed to apply, and does apply, to the menus +individually as well as to Emacs frames. If that is not what you +want, rewrite the resource. -This is a bug in Motif in Solaris. Supposedly it has been fixed for -the next major release of Solaris. However, if someone with Sun -support complains to Sun about the bug, they may release a patch. -If you do this, mention Sun bug #4188711. +To check thoroughly for such resource specifications, use `xrdb +-query' to see what resources the X server records, and also look at +the user's ~/.Xdefaults and ~/.Xdefaults-* files. -One workaround is to use a locale that allows non-ASCII characters. -For example, before invoking emacs, set the LC_ALL environment -variable to "en_US" (American English). The directory /usr/lib/locale -lists the supported locales; any locale other than "C" or "POSIX" -should do. +*** Emacs running under X Windows does not handle mouse clicks. +*** `emacs -geometry 80x20' finds a file named `80x20'. -pen@lysator.liu.se says (Feb 1998) that the Compose key does work -if you link with the MIT X11 libraries instead of the Solaris X11 -libraries. +One cause of such problems is having (setq term-file-prefix nil) in +your .emacs file. Another cause is a bad value of EMACSLOADPATH in +the environment. -* Frames may cover dialogs they created when using CDE. +*** Emacs fails to get default settings from X Windows server. -This can happen if you have "Allow Primary Windows On Top" enabled which -seems to be the default in the Common Desktop Environment. -To change, go in to "Desktop Controls" -> "Window Style Manager" -and uncheck "Allow Primary Windows On Top". +The X library in X11R4 has a bug; it interchanges the 2nd and 3rd +arguments to XGetDefaults. Define the macro XBACKWARDS in config.h to +tell Emacs to compensate for this. -* Emacs does not know your host's fully-qualified domain name. +I don't believe there is any way Emacs can determine for itself +whether this problem is present on a given system. -You need to configure your machine with a fully qualified domain name, -either in /etc/hosts, /etc/hostname, the NIS, or wherever your system -calls for specifying this. +*** X Windows doesn't work if DISPLAY uses a hostname. -If you cannot fix the configuration, you can set the Lisp variable -mail-host-address to the value you want. - -* Error 12 (virtual memory exceeded) when dumping Emacs, on UnixWare 2.1 +People have reported kernel bugs in certain systems that cause Emacs +not to work with X Windows if DISPLAY is set using a host name. But +the problem does not occur if DISPLAY is set to `unix:0.0'. I think +the bug has to do with SIGIO or FIONREAD. -Paul Abrahams (abrahams@acm.org) reports that with the installed -virtual memory settings for UnixWare 2.1.2, an Error 12 occurs during -the "make" that builds Emacs, when running temacs to dump emacs. That -error indicates that the per-process virtual memory limit has been -exceeded. The default limit is probably 32MB. Raising the virtual -memory limit to 40MB should make it possible to finish building Emacs. +You may be able to compensate for the bug by doing (set-input-mode nil nil). +However, that has the disadvantage of turning off interrupts, so that +you are unable to quit out of a Lisp program by typing C-g. -You can do this with the command `ulimit' (sh) or `limit' (csh). -But you have to be root to do it. +The easy way to do this is to put -According to Martin Sohnius, you can also retune this in the kernel: + (setq x-sigio-bug t) - # /etc/conf/bin/idtune SDATLIM 33554432 ## soft data size limit - # /etc/conf/bin/idtune HDATLIM 33554432 ## hard " - # /etc/conf/bin/idtune SVMMSIZE unlimited ## soft process size limit - # /etc/conf/bin/idtune HVMMSIZE unlimited ## hard " - # /etc/conf/bin/idbuild -B +in your site-init.el file. -(He recommends you not change the stack limit, though.) -These changes take effect when you reboot. +* Runtime problems on character termunals -* Redisplay using X11 is much slower than previous Emacs versions. +** Emacs spontaneously displays "I-search: " at the bottom of the screen. -We've noticed that certain X servers draw the text much slower when -scroll bars are on the left. We don't know why this happens. If this -happens to you, you can work around it by putting the scroll bars -on the right (as they were in Emacs 19). +This means that Control-S/Control-Q (XON/XOFF) "flow control" is being +used. C-s/C-q flow control is bad for Emacs editors because it takes +away C-s and C-q as user commands. Since editors do not output long +streams of text without user commands, there is no need for a +user-issuable "stop output" command in an editor; therefore, a +properly designed flow control mechanism would transmit all possible +input characters without interference. Designing such a mechanism is +easy, for a person with at least half a brain. -Here's how to do this: +There are three possible reasons why flow control could be taking place: - (set-scroll-bar-mode 'right) + 1) Terminal has not been told to disable flow control + 2) Insufficient padding for the terminal in use + 3) Some sort of terminal concentrator or line switch is responsible -If you're not sure whether (or how much) this problem affects you, -try that and see how much difference it makes. To set things back -to normal, do +First of all, many terminals have a set-up mode which controls whether +they generate XON/XOFF flow control characters. This must be set to +"no XON/XOFF" in order for Emacs to work. Sometimes there is an +escape sequence that the computer can send to turn flow control off +and on. If so, perhaps the termcap `ti' string should turn flow +control off, and the `te' string should turn it on. - (set-scroll-bar-mode 'left) +Once the terminal has been told "no flow control", you may find it +needs more padding. The amount of padding Emacs sends is controlled +by the termcap entry for the terminal in use, and by the output baud +rate as known by the kernel. The shell command `stty' will print +your output baud rate; `stty' with suitable arguments will set it if +it is wrong. Setting to a higher speed causes increased padding. If +the results are wrong for the correct speed, there is probably a +problem in the termcap entry. You must speak to a local Unix wizard +to fix this. Perhaps you are just using the wrong terminal type. -* Under X11, some characters appear as hollow boxes. +For terminals that lack a "no flow control" mode, sometimes just +giving lots of padding will prevent actual generation of flow control +codes. You might as well try it. -Each X11 font covers just a fraction of the characters that Emacs -supports. To display the whole range of Emacs characters requires -many different fonts, collected into a fontset. +If you are really unlucky, your terminal is connected to the computer +through a concentrator which sends XON/XOFF flow control to the +computer, or it insists on sending flow control itself no matter how +much padding you give it. Unless you can figure out how to turn flow +control off on this concentrator (again, refer to your local wizard), +you are screwed! You should have the terminal or concentrator +replaced with a properly designed one. In the mean time, some drastic +measures can make Emacs semi-work. -If some of the fonts called for in your fontset do not exist on your X -server, then the characters that have no font appear as hollow boxes. -You can remedy the problem by installing additional fonts. +You can make Emacs ignore C-s and C-q and let the operating system +handle them. To do this on a per-session basis, just type M-x +enable-flow-control RET. You will see a message that C-\ and C-^ are +now translated to C-s and C-q. (Use the same command M-x +enable-flow-control to turn *off* this special mode. It toggles flow +control handling.) -The intlfonts distribution includes a full spectrum of fonts that can -display all the characters Emacs supports. +If C-\ and C-^ are inconvenient for you (for example, if one of them +is the escape character of your terminal concentrator), you can choose +other characters by setting the variables flow-control-c-s-replacement +and flow-control-c-q-replacement. But choose carefully, since all +other control characters are already used by emacs. -Another cause of this for specific characters is fonts which have a -missing glyph and no default character. This is known ot occur for -character number 160 (no-break space) in some fonts, such as Lucida -but Emacs sets the display table for the unibyte and Latin-1 version -of this character to display a space. +IMPORTANT: if you type C-s by accident while flow control is enabled, +Emacs output will freeze, and you will have to remember to type C-q in +order to continue. -* Under X11, some characters appear improperly aligned in their lines. +If you work in an environment where a majority of terminals of a +certain type are flow control hobbled, you can use the function +`enable-flow-control-on' to turn on this flow control avoidance scheme +automatically. Here is an example: -You may have bad X11 fonts; try installing the intlfonts distribution. +(enable-flow-control-on "vt200" "vt300" "vt101" "vt131") -* Certain fonts make each line take one pixel more than it "should". +If this isn't quite correct (e.g. you have a mixture of flow-control hobbled +and good vt200 terminals), you can still run enable-flow-control +manually. -This is because these fonts contain characters a little taller -than the font's nominal height. Emacs needs to make sure that -lines do not overlap. +I have no intention of ever redesigning the Emacs command set for the +assumption that terminals use C-s/C-q flow control. XON/XOFF flow +control technique is a bad design, and terminals that need it are bad +merchandise and should not be purchased. Now that X is becoming +widespread, XON/XOFF seems to be on the way out. If you can get some +use out of GNU Emacs on inferior terminals, more power to you, but I +will not make Emacs worse for properly designed systems for the sake +of inferior systems. -* You request inverse video, and the first Emacs frame is in inverse -video, but later frames are not in inverse video. +** Control-S and Control-Q commands are ignored completely. -This can happen if you have an old version of the custom library in -your search path for Lisp packages. Use M-x list-load-path-shadows to -check whether this is true. If it is, delete the old custom library. +For some reason, your system is using brain-damaged C-s/C-q flow +control despite Emacs's attempts to turn it off. Perhaps your +terminal is connected to the computer through a concentrator +that wants to use flow control. -* In FreeBSD 2.1.5, useless symbolic links remain in /tmp or other -directories that have the +t bit. +You should first try to tell the concentrator not to use flow control. +If you succeed in this, try making the terminal work without +flow control, as described in the preceding section. -This is because of a kernel bug in FreeBSD 2.1.5 (fixed in 2.2). -Emacs uses symbolic links to implement file locks. In a directory -with +t bit, the directory owner becomes the owner of the symbolic -link, so that it cannot be removed by anyone else. +If that line of approach is not successful, map some other characters +into C-s and C-q using keyboard-translate-table. The example above +shows how to do this with C-^ and C-\. -If you don't like those useless links, you can let Emacs not to using -file lock by adding #undef CLASH_DETECTION to config.h. +** Screen is updated wrong, but only on one kind of terminal. -* When using M-x dbx with the SparcWorks debugger, the `up' and `down' -commands do not move the arrow in Emacs. +This could mean that the termcap entry you are using for that +terminal is wrong, or it could mean that Emacs has a bug handing +the combination of features specified for that terminal. -You can fix this by adding the following line to `~/.dbxinit': +The first step in tracking this down is to record what characters +Emacs is sending to the terminal. Execute the Lisp expression +(open-termscript "./emacs-script") to make Emacs write all +terminal output into the file ~/emacs-script as well; then do +what makes the screen update wrong, and look at the file +and decode the characters using the manual for the terminal. +There are several possibilities: - dbxenv output_short_file_name off +1) The characters sent are correct, according to the terminal manual. -* Emacs says it has saved a file, but the file does not actually -appear on disk. +In this case, there is no obvious bug in Emacs, and most likely you +need more padding, or possibly the terminal manual is wrong. -This can happen on certain systems when you are using NFS, if the -remote disk is full. It is due to a bug in NFS (or certain NFS -implementations), and there is apparently nothing Emacs can do to -detect the problem. Emacs checks the failure codes of all the system -calls involved in writing a file, including `close'; but in the case -where the problem occurs, none of those system calls fails. +2) The characters sent are incorrect, due to an obscure aspect + of the terminal behavior not described in an obvious way + by termcap. -* "Compose Character" key does strange things when used as a Meta key. +This case is hard. It will be necessary to think of a way for +Emacs to distinguish between terminals with this kind of behavior +and other terminals that behave subtly differently but are +classified the same by termcap; or else find an algorithm for +Emacs to use that avoids the difference. Such changes must be +tested on many kinds of terminals. -If you define one key to serve as both Meta and Compose Character, you -will get strange results. In previous Emacs versions, this "worked" -in that the key acted as Meta--that's because the older Emacs versions -did not try to support Compose Character. Now Emacs tries to do -character composition in the standard X way. This means that you -must pick one meaning or the other for any given key. +3) The termcap entry is wrong. -You can use both functions (Meta, and Compose Character) if you assign -them to two different keys. +See the file etc/TERMS for information on changes +that are known to be needed in commonly used termcap entries +for certain terminals. -* Emacs gets a segmentation fault at startup, on AIX4.2. +4) The characters sent are incorrect, and clearly cannot be + right for any terminal with the termcap entry you were using. -If you are using IBM's xlc compiler, compile emacs.c -without optimization; that should avoid the problem. +This is unambiguously an Emacs bug, and can probably be fixed +in termcap.c, tparam.c, term.c, scroll.c, cm.c or dispnew.c. -* movemail compiled with POP support can't connect to the POP server. +** Control-S and Control-Q commands are ignored completely on a net connection. -Make sure that the `pop' entry in /etc/services, or in the services -NIS map if your machine uses NIS, has the same port number as the -entry on the POP server. A common error is for the POP server to be -listening on port 110, the assigned port for the POP3 protocol, while -the client is trying to connect on port 109, the assigned port for the -old POP protocol. +Some versions of rlogin (and possibly telnet) do not pass flow +control characters to the remote system to which they connect. +On such systems, emacs on the remote system cannot disable flow +control on the local system. -* Emacs crashes in x-popup-dialog. +One way to cure this is to disable flow control on the local host +(the one running rlogin, not the one running rlogind) using the +stty command, before starting the rlogin process. On many systems, +"stty start u stop u" will do this. -This can happen if the dialog widget cannot find the font it wants to -use. You can work around the problem by specifying another font with -an X resource--for example, `Emacs.dialog*.font: 9x15' (or any font that -happens to exist on your X server). +Some versions of tcsh will prevent even this from working. One way +around this is to start another shell before starting rlogin, and +issue the stty command to disable flow control from that shell. -* Emacs crashes when you use Bibtex mode. +If none of these methods work, the best solution is to type +M-x enable-flow-control at the beginning of your emacs session, or +if you expect the problem to continue, add a line such as the +following to your .emacs (on the host running rlogind): -This happens if your system puts a small limit on stack size. You can -prevent the problem by using a suitable shell command (often `ulimit') -to raise the stack size limit before you run Emacs. +(enable-flow-control-on "vt200" "vt300" "vt101" "vt131") -Patches to raise the stack size limit automatically in `main' -(src/emacs.c) on various systems would be greatly appreciated. +See the entry about spontaneous display of I-search (above) for more +info. -* Emacs crashes with SIGBUS or SIGSEGV on HPUX 9 after you delete a frame. +** Output from Control-V is slow. -We think this is due to a bug in the X libraries provided by HP. With -the alternative X libraries in /usr/contrib/mitX11R5/lib, the problem -does not happen. +On many bit-map terminals, scrolling operations are fairly slow. +Often the termcap entry for the type of terminal in use fails +to inform Emacs of this. The two lines at the bottom of the screen +before a Control-V command are supposed to appear at the top after +the Control-V command. If Emacs thinks scrolling the lines is fast, +it will scroll them to the top of the screen. -* Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame. +If scrolling is slow but Emacs thinks it is fast, the usual reason is +that the termcap entry for the terminal you are using does not +specify any padding time for the `al' and `dl' strings. Emacs +concludes that these operations take only as much time as it takes to +send the commands at whatever line speed you are using. You must +fix the termcap entry to specify, for the `al' and `dl', as much +time as the operations really take. -We suspect that this is a similar bug in the X libraries provided by -Sun. There is a report that one of these patches fixes the bug and -makes the problem stop: +Currently Emacs thinks in terms of serial lines which send characters +at a fixed rate, so that any operation which takes time for the +terminal to execute must also be padded. With bit-map terminals +operated across networks, often the network provides some sort of +flow control so that padding is never needed no matter how slow +an operation is. You must still specify a padding time if you want +Emacs to realize that the operation takes a long time. This will +cause padding characters to be sent unnecessarily, but they do +not really cost much. They will be transmitted while the scrolling +is happening and then discarded quickly by the terminal. -105216-01 105393-01 105518-01 105621-01 105665-01 105615-02 105216-02 -105667-01 105401-08 105615-03 105621-02 105686-02 105736-01 105755-03 -106033-01 105379-01 105786-01 105181-04 105379-03 105786-04 105845-01 -105284-05 105669-02 105837-01 105837-02 105558-01 106125-02 105407-01 - -Another person using a newer system (kernel patch level Generic_105181-06) -suspects that the bug was fixed by one of these more recent patches: - -106040-07 SunOS 5.6: X Input & Output Method patch -106222-01 OpenWindows 3.6: filemgr (ff.core) fixes -105284-12 Motif 1.2.7: sparc Runtime library patch +Most bit-map terminals provide commands for inserting or deleting +multiple lines at once. Define the `AL' and `DL' strings in the +termcap entry to say how to do these things, and you will have +fast output without wasted padding characters. These strings should +each contain a single %-spec saying how to send the number of lines +to be scrolled. These %-specs are like those in the termcap +`cm' string. -* Problems running Perl under Emacs on MS-Windows NT/95. +You should also define the `IC' and `DC' strings if your terminal +has a command to insert or delete multiple characters. These +take the number of positions to insert or delete as an argument. -`perl -de 0' just hangs when executed in an Emacs subshell. -The fault lies with Perl (indirectly with Windows NT/95). +A `cs' string to set the scrolling region will reduce the amount +of motion you see on the screen when part of the screen is scrolled. -The problem is that the Perl debugger explicitly opens a connection to -"CON", which is the DOS/NT equivalent of "/dev/tty", for interacting -with the user. +** You type Control-H (Backspace) expecting to delete characters. -On Unix, this is okay, because Emacs (or the shell?) creates a -pseudo-tty so that /dev/tty is really the pipe Emacs is using to -communicate with the subprocess. +Put `stty dec' in your .login file and your problems will disappear +after a day or two. -On NT, this fails because CON always refers to the handle for the -relevant console (approximately equivalent to a tty), and cannot be -redirected to refer to the pipe Emacs assigned to the subprocess as -stdin. +The choice of Backspace for erasure was based on confusion, caused by +the fact that backspacing causes erasure (later, when you type another +character) on most display terminals. But it is a mistake. Deletion +of text is not the same thing as backspacing followed by failure to +overprint. I do not wish to propagate this confusion by conforming +to it. -A workaround is to modify perldb.pl to use STDIN/STDOUT instead of CON. +For this reason, I believe `stty dec' is the right mode to use, +and I have designed Emacs to go with that. If there were a thousand +other control characters, I would define Control-h to delete as well; +but there are not very many other control characters, and I think +that providing the most mnemonic possible Help character is more +important than adapting to people who don't use `stty dec'. -For Perl 4: +If you are obstinate about confusing buggy overprinting with deletion, +you can redefine Backspace in your .emacs file: + (global-set-key "\b" 'delete-backward-char) +You can probably access help-command via f1. - *** PERL/LIB/PERLDB.PL.orig Wed May 26 08:24:18 1993 - --- PERL/LIB/PERLDB.PL Mon Jul 01 15:28:16 1996 - *************** - *** 68,74 **** - $rcfile=".perldb"; - } - else { - ! $console = "con"; - $rcfile="perldb.ini"; - } +** Colors are not available on a tty or in xterm. - --- 68,74 ---- - $rcfile=".perldb"; - } - else { - ! $console = ""; - $rcfile="perldb.ini"; - } +Emacs 21 supports colors on character terminals and terminal +emulators, but this support relies on the terminfo or termcap database +entry to specify that the display supports color. Emacs looks at the +"Co" capability for the terminal to find out how many colors are +supported; it should be non-zero to activate the color support within +Emacs. (Most color terminals support 8 or 16 colors.) If your system +uses terminfo, the name of the capability equivalent to "Co" is +"colors". +In addition to the "Co" capability, Emacs needs the "op" (for +``original pair'') capability, which tells how to switch the terminal +back to the default foreground and background colors. Emacs will not +use colors if this capability is not defined. If your terminal entry +doesn't provide such a capability, try using the ANSI standard escape +sequence \E[00m (that is, define a new termcap/terminfo entry and make +it use your current terminal's entry plus \E[00m for the "op" +capability). - For Perl 5: - *** perl/5.001/lib/perl5db.pl.orig Sun Jun 04 21:13:40 1995 - --- perl/5.001/lib/perl5db.pl Mon Jul 01 17:00:08 1996 - *************** - *** 22,28 **** - $rcfile=".perldb"; - } - elsif (-e "con") { - ! $console = "con"; - $rcfile="perldb.ini"; - } - else { - --- 22,28 ---- - $rcfile=".perldb"; - } - elsif (-e "con") { - ! $console = ""; - $rcfile="perldb.ini"; - } - else { +Finally, the "NC" capability (terminfo name: "ncv") tells Emacs which +attributes cannot be used with colors. Setting this capability +incorrectly might have the effect of disabling colors; try setting +this capability to `0' (zero) and see if that helps. -* Problems on MS-DOG if DJGPP v2.0 is used to compile Emacs: +Emacs uses the database entry for the terminal whose name is the value +of the environment variable TERM. With `xterm', a common terminal +entry that supports color is `xterm-color', so setting TERM's value to +`xterm-color' might activate the color support on an xterm-compatible +emulator. -There are two DJGPP library bugs which cause problems: +Beginning with version 22.1, Emacs supports the --color command-line +option which may be used to force Emacs to use one of a few popular +modes for getting colors on a tty. For example, --color=ansi8 sets up +for using the ANSI-standard escape sequences that support 8 colors. - * Running `shell-command' (or `compile', or `grep') you get - `Searching for program: permission denied (EACCES), c:/command.com'; - * After you shell to DOS, Ctrl-Break kills Emacs. +Some modes do not use colors unless you turn on the Font-lock mode. +Some people have long ago set their `~/.emacs' files to turn on +Font-lock on X only, so they won't see colors on a tty. The +recommended way of turning on Font-lock is by typing "M-x +global-font-lock-mode RET" or by customizing the variable +`global-font-lock-mode'. -To work around these bugs, you can use two files in the msdos -subdirectory: `is_exec.c' and `sigaction.c'. Compile them and link -them into the Emacs executable `temacs'; then they will replace the -incorrect library functions. +* Runtime problems specific to individual Unix variants -* When compiling with DJGPP on MS-Windows NT, "config msdos" fails. +** GNU/Linux -If the error message is "VDM has been already loaded", this is because -Windows has a program called `redir.exe' that is incompatible with a -program by the same name supplied with DJGPP, which is used by -config.bat. To resolve this, move the DJGPP's `bin' subdirectory to -the front of your PATH environment variable. +*** GNU/Linux: Process output is corrupted. -* When compiling with DJGPP on MS-Windows 95, Make fails for some targets -like make-docfile. +There is a bug in Linux kernel 2.6.10 PTYs that can cause emacs to +read corrupted process output. -This can happen if long file name support (the setting of environment -variable LFN) when Emacs distribution was unpacked and during -compilation are not the same. See the MSDOG section of INSTALL for -the explanation of how to avoid this problem. +*** GNU/Linux: Remote access to CVS with SSH causes file corruption. -* Emacs compiled for MSDOS cannot find some Lisp files, or other -run-time support files, when long filename support is enabled. +If you access a remote CVS repository via SSH, files may be corrupted +due to bad interaction between CVS, SSH, and libc. -Usually, this problem will manifest itself when Emacs exits -immediately after flashing the startup screen, because it cannot find -the Lisp files it needs to load at startup. Redirect Emacs stdout -and stderr to a file to see the error message printed by Emacs. +To fix the problem, save the following script into a file, make it +executable, and set CVS_RSH environment variable to the file name of +the script: -Another manifestation of this problem is that Emacs is unable to load -the support for editing program sources in languages such as C and -Lisp. +#!/bin/bash +exec 2> >(exec cat >&2 2>/dev/null) +exec ssh "$@" -This can happen if the Emacs distribution was unzipped without LFN -support, thus causing long filenames to be truncated to the first 6 -characters and a numeric tail that Windows 95 normally attaches to it. -You should unzip the files again with a utility that supports long -filenames (such as djtar from DJGPP or InfoZip's UnZip program -compiled with DJGPP v2). The MSDOG section of the file INSTALL -explains this issue in more detail. +*** GNU/Linux: On Linux-based GNU systems using libc versions 5.4.19 through +5.4.22, Emacs crashes at startup with a segmentation fault. -Another possible reason for such failures is that Emacs compiled for -MSDOS is used on Windows NT, where long file names are not supported -by this version of Emacs, but the distribution was unpacked by an -unzip program that preserved the long file names instead of truncating -them to DOS 8+3 limits. To be useful on NT, the MSDOS port of Emacs -must be unzipped by a DOS utility, so that long file names are -properly truncated. +This problem happens if libc defines the symbol __malloc_initialized. +One known solution is to upgrade to a newer libc version. 5.4.33 is +known to work. -* Emacs compiled with DJGPP complains at startup: +*** GNU/Linux: After upgrading to a newer version of Emacs, +the Meta key stops working. - "Wrong type of argument: internal-facep, msdos-menu-active-face" +This was reported to happen on a GNU/Linux system distributed by +Mandrake. The reason is that the previous version of Emacs was +modified by Mandrake to make the Alt key act as the Meta key, on a +keyboard where the Windows key is the one which produces the Meta +modifier. A user who started using a newer version of Emacs, which +was not hacked by Mandrake, expected the Alt key to continue to act as +Meta, and was astonished when that didn't happen. -This can happen if you define an environment variable `TERM'. Emacs -on MSDOS uses an internal terminal emulator which is disabled if the -value of `TERM' is anything but the string "internal". Emacs then -works as if its terminal were a dumb glass teletype that doesn't -support faces. To work around this, arrange for `TERM' to be -undefined when Emacs runs. The best way to do that is to add an -[emacs] section to the DJGPP.ENV file which defines an empty value for -`TERM'; this way, only Emacs gets the empty value, while the rest of -your system works as before. +The solution is to find out what key on your keyboard produces the Meta +modifier, and use that key instead. Try all of the keys to the left +and to the right of the space bar, together with the `x' key, and see +which combination produces "M-x" in the echo area. You can also use +the `xmodmap' utility to show all the keys which produce a Meta +modifier: -* On MS-Windows 95, Alt-f6 does not get through to Emacs. + xmodmap -pk | egrep -i "meta|alt" -This character seems to be trapped by the kernel in Windows 95. -You can enter M-f6 by typing ESC f6. +A more convenient way of finding out which keys produce a Meta modifier +is to use the `xkbprint' utility, if it's available on your system: -* Typing Alt-Shift has strange effects on MS-Windows. + xkbprint 0:0 /tmp/k.ps -This combination of keys is a command to change keyboard layout. If -you proceed to type another non-modifier key before you let go of Alt -and Shift, the Alt and Shift act as modifiers in the usual way. A -more permanent work around is to change it to another key combination, -or disable it in the keyboard control panel. +This produces a PostScript file `/tmp/k.ps' with a picture of your +keyboard; printing that file on a PostScript printer will show what +keys can serve as Meta. -* `tparam' reported as a multiply-defined symbol when linking with ncurses. +The `xkeycaps' also shows a visual representation of the current +keyboard settings. It also allows to modify them. -This problem results from an incompatible change in ncurses, in -version 1.9.9e approximately. This version is unable to provide a -definition of tparm without also defining tparam. This is also -incompatible with Terminfo; as a result, the Emacs Terminfo support -does not work with this version of ncurses. +*** GNU/Linux: low startup on Linux-based GNU systems. -The fix is to install a newer version of ncurses, such as version 4.2. +People using systems based on the Linux kernel sometimes report that +startup takes 10 to 15 seconds longer than `usual'. -* Emacs does not start, complaining that it cannot open termcap database file. +This is because Emacs looks up the host name when it starts. +Normally, this takes negligible time; the extra delay is due to +improper system configuration. This problem can occur for both +networked and non-networked machines. -If your system uses Terminfo rather than termcap (most modern -systems do), this could happen if the proper version of -ncurses is not visible to the Emacs configure script (i.e. it -cannot be found along the usual path the linker looks for -libraries). It can happen because your version of ncurses is -obsolete, or is available only in form of binaries. +Here is how to fix the configuration. It requires being root. -The solution is to install an up-to-date version of ncurses in -the developer's form (header files, static libraries and -symbolic links); in some GNU/Linux distributions (e.g. Debian) -it constitutes a separate package. +**** Networked Case. -* Strange results from format %d in a few cases, on a Sun. +First, make sure the files `/etc/hosts' and `/etc/host.conf' both +exist. The first line in the `/etc/hosts' file should look like this +(replace HOSTNAME with your host name): -Sun compiler version SC3.0 has been found to miscompile part of -editfns.c. The workaround is to compile with some other compiler such -as GCC. + 127.0.0.1 HOSTNAME -* Output from subprocess (such as man or diff) is randomly truncated -on GNU/Linux systems. +Also make sure that the `/etc/host.conf' files contains the following +lines: -This is due to a kernel bug which seems to be fixed in Linux version -1.3.75. + order hosts, bind + multi on -* Error messages `internal facep []' happen on GNU/Linux systems. +Any changes, permanent and temporary, to the host name should be +indicated in the `/etc/hosts' file, since it acts a limited local +database of addresses and names (e.g., some SLIP connections +dynamically allocate ip addresses). -There is a report that replacing libc.so.5.0.9 with libc.so.5.2.16 -caused this to start happening. People are not sure why, but the -problem seems unlikely to be in Emacs itself. Some suspect that it -is actually Xlib which won't work with libc.so.5.2.16. +**** Non-Networked Case. -Using the old library version is a workaround. +The solution described in the networked case applies here as well. +However, if you never intend to network your machine, you can use a +simpler solution: create an empty `/etc/host.conf' file. The command +`touch /etc/host.conf' suffices to create the file. The `/etc/hosts' +file is not necessary with this approach. -* On Solaris, Emacs crashes if you use (display-time). +*** GNU/Linux: Emacs on a tty switches the cursor to large blinking block. -This can happen if you configure Emacs without specifying the precise -version of Solaris that you are using. - -* Emacs dumps core on startup, on Solaris. - -Bill Sebok says that the cause of this is Solaris 2.4 vendor patch -102303-05, which extends the Solaris linker to deal with the Solaris -Common Desktop Environment's linking needs. You can fix the problem -by removing this patch and installing patch 102049-02 instead. -However, that linker version won't work with CDE. - -Solaris 2.5 comes with a linker that has this bug. It is reported that if -you install all the latest patches (as of June 1996), the bug is fixed. -We suspect the crucial patch is one of these, but we don't know -for certain. - - 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) - 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) - 103242-04: [README] SunOS 5.5: linker patch (595363 bytes) - -(One user reports that the bug was fixed by those patches together -with patches 102980-04, 103279-01, 103300-02, and 103468-01.) - -If you can determine which patch does fix the bug, please tell -bug-gnu-emacs@gnu.org. - -Meanwhile, the GNU linker links Emacs properly on both Solaris 2.4 and -Solaris 2.5. - -* Emacs dumps core if lisp-complete-symbol is called, on Solaris. - -If you compile Emacs with the -fast or -xO4 option with version 3.0.2 -of the Sun C compiler, Emacs dumps core when lisp-complete-symbol is -called. The problem does not happen if you compile with GCC. - -* "Cannot find callback list" messages from dialog boxes on HPUX, in -Emacs built with Motif. - -This problem resulted from a bug in GCC 2.4.5. Newer GCC versions -such as 2.7.0 fix the problem. - -* On Irix 6.0, make tries (and fails) to build a program named unexelfsgi - -A compiler bug inserts spaces into the string "unexelfsgi . o" -in src/Makefile. Edit src/Makefile, after configure is run, -find that string, and take out the spaces. - -Compiler fixes in Irix 6.0.1 should eliminate this problem. - -* "out of virtual swap space" on Irix 5.3 - -This message occurs when the system runs out of swap space due to too -many large programs running. The solution is either to provide more -swap space or to reduce the number of large programs being run. You -can check the current status of the swap space by executing the -command `swap -l'. - -You can increase swap space by changing the file /etc/fstab. Adding a -line like this: - -/usr/swap/swap.more swap swap pri=3 0 0 - -where /usr/swap/swap.more is a file previously created (for instance -by using /etc/mkfile), will increase the swap space by the size of -that file. Execute `swap -m' or reboot the machine to activate the -new swap area. See the manpages for `swap' and `fstab' for further -information. - -The objectserver daemon can use up lots of memory because it can be -swamped with NIS information. It collects information about all users -on the network that can log on to the host. - -If you want to disable the objectserver completely, you can execute -the command `chkconfig objectserver off' and reboot. That may disable -some of the window system functionality, such as responding CDROM -icons. +This was reported to happen on some GNU/Linux systems which use +ncurses version 5.0, but could be relevant for other versions as well. +These versions of ncurses come with a `linux' terminfo entry, where +the "cvvis" capability (termcap "vs") is defined as "\E[?25h\E[?8c" +(show cursor, change size). This escape sequence switches on a +blinking hardware text-mode cursor whose size is a full character +cell. This blinking cannot be stopped, since a hardware cursor +always blinks. -You can also remove NIS support from the objectserver. The SGI `admin' -FAQ has a detailed description on how to do that; see question 35 -("Why isn't the objectserver working?"). The admin FAQ can be found at -ftp://viz.tamu.edu/pub/sgi/faq/. +A work-around is to redefine the "cvvis" capability so that it +enables a *software* cursor. The software cursor works by inverting +the colors of the character at point, so what you see is a block +cursor that doesn't blink. For this to work, you need to redefine +the "cnorm" capability as well, so that it operates on the software +cursor instead of the hardware cursor. -* With certain fonts, when the cursor appears on a character, the -character doesn't appear--you get a solid box instead. +To this end, run "infocmp linux > linux-term", edit the file +`linux-term' to make both the "cnorm" and "cvvis" capabilities send +the sequence "\E[?25h\E[?17;0;64c", and then run "tic linux-term" to +produce a modified terminfo entry. -One user on a Linux-based GNU system reported that this problem went -away with installation of a new X server. The failing server was -XFree86 3.1.1. XFree86 3.1.2 works. +Alternatively, if you want a blinking underscore as your Emacs cursor, +change the "cvvis" capability to send the "\E[?25h\E[?0c" command. -* On SunOS 4.1.3, Emacs unpredictably crashes in _yp_dobind_soft. +*** GNU/Linux: Error messages `internal facep []' happen on GNU/Linux systems. -This happens if you configure Emacs specifying just `sparc-sun-sunos4' -on a system that is version 4.1.3. You must specify the precise -version number (or let configure figure out the configuration, which -it can do perfectly well for SunOS). +There is a report that replacing libc.so.5.0.9 with libc.so.5.2.16 +caused this to start happening. People are not sure why, but the +problem seems unlikely to be in Emacs itself. Some suspect that it +is actually Xlib which won't work with libc.so.5.2.16. -* On SunOS 4, Emacs processes keep going after you kill the X server -(or log out, if you logged in using X). +Using the old library version is a workaround. -Someone reported that recompiling with GCC 2.7.0 fixed this problem. +** Mac OS X -* On AIX 4, some programs fail when run in a Shell buffer -with an error message like No terminfo entry for "unknown". +*** Mac OS X (Carbon): Environment Variables from dotfiles are ignored. -On AIX, many terminal type definitions are not installed by default. -`unknown' is one of them. Install the "Special Generic Terminal -Definitions" to make them defined. +When starting Emacs from the Dock or the Finder on Mac OS X, the +environment variables that are set up in dotfiles, such as .cshrc or +.profile, are ignored. This is because the Finder and Dock are not +started from a shell, but instead from the Window Manager itself. -* On SunOS, you get linker errors - ld: Undefined symbol - _get_wmShellWidgetClass - _get_applicationShellWidgetClass +The workaround for this is to create a .MacOSX/environment.plist file to +setup these environment variables. These environment variables will +apply to all processes regardless of where they are started. +For me information, see http://developer.apple.com/qa/qa2001/qa1067.html. -The fix to this is to install patch 100573 for OpenWindows 3.0 -or link libXmu statically. +*** Mac OS X (Carbon): Process output truncated when using ptys. -* On AIX 4.1.2, linker error messages such as - ld: 0711-212 SEVERE ERROR: Symbol .__quous, found in the global symbol table - of archive /usr/lib/libIM.a, was not defined in archive member shr.o. +There appears to be a problem with the implementation of pty's on the +Mac OS X that causes process output to be truncated. To avoid this, +leave process-connection-type set to its default value of nil. -This is a problem in libIM.a. You can work around it by executing -these shell commands in the src subdirectory of the directory where -you build Emacs: +** FreeBSD - cp /usr/lib/libIM.a . - chmod 664 libIM.a - ranlib libIM.a +*** FreeBSD 2.1.5: useless symbolic links remain in /tmp or other +directories that have the +t bit. -Then change -lIM to ./libIM.a in the command to link temacs (in -Makefile). +This is because of a kernel bug in FreeBSD 2.1.5 (fixed in 2.2). +Emacs uses symbolic links to implement file locks. In a directory +with +t bit, the directory owner becomes the owner of the symbolic +link, so that it cannot be removed by anyone else. -* Unpredictable segmentation faults on Solaris 2.3 and 2.4. +If you don't like those useless links, you can let Emacs not to using +file lock by adding #undef CLASH_DETECTION to config.h. -A user reported that this happened in 19.29 when it was compiled with -the Sun compiler, but not when he recompiled with GCC 2.7.0. +*** FreeBSD: Getting a Meta key on the console. -We do not know whether something in Emacs is partly to blame for this. +By default, neither Alt nor any other key acts as a Meta key on +FreeBSD, but this can be changed using kbdcontrol(1). Dump the +current keymap to a file with the command -* Emacs exits with "X protocol error" when run with an X server for -MS-Windows. + $ kbdcontrol -d >emacs.kbd -A certain X server for Windows had a bug which caused this. -Supposedly the newer 32-bit version of this server doesn't have the -problem. +Edit emacs.kbd, and give the key you want to be the Meta key the +definition `meta'. For instance, if your keyboard has a ``Windows'' +key with scan code 105, change the line for scan code 105 in emacs.kbd +to look like this -* Emacs crashes at startup on MSDOS. + 105 meta meta meta meta meta meta meta meta O -Some users report that Emacs 19.29 requires dpmi memory management, -and crashes on startup if the system does not have it. We don't yet -know why this happens--perhaps these machines don't have enough real -memory, or perhaps something is wrong in Emacs or the compiler. -However, arranging to use dpmi support is a workaround. +to make the Windows key the Meta key. Load the new keymap with -You can find out if you have a dpmi host by running go32 without -arguments; it will tell you if it uses dpmi memory. For more -information about dpmi memory, consult the djgpp FAQ. (djgpp -is the GNU C compiler as packaged for MSDOS.) + $ kbdcontrol -l emacs.kbd -Compiling Emacs under MSDOS is extremely sensitive for proper memory -configuration. If you experience problems during compilation, consider -removing some or all memory resident programs (notably disk caches) -and make sure that your memory managers are properly configured. See -the djgpp faq for configuration hints. +** HP-UX -* A position you specified in .Xdefaults is ignored, using twm. +*** HP/UX : Shell mode gives the message, "`tty`: Ambiguous". -twm normally ignores "program-specified" positions. -You can tell it to obey them with this command in your `.twmrc' file: +christos@theory.tn.cornell.edu says: - UsePPosition "on" #allow clients to request a position +The problem is that in your .cshrc you have something that tries to +execute `tty`. If you are not running the shell on a real tty then +tty will print "not a tty". Csh expects one word in some places, +but tty is giving it back 3. -* Compiling lib-src says there is no rule to make test-distrib.c. +The solution is to add a pair of quotes around `tty` to make it a single +word: -This results from a bug in a VERY old version of GNU Sed. To solve -the problem, install the current version of GNU Sed, then rerun -Emacs's configure script. +if (`tty` == "/dev/console") -* Compiling wakeup, in lib-src, says it can't make wakeup.c. +should be changed to: -This results from a bug in GNU Sed version 2.03. To solve the -problem, install the current version of GNU Sed, then rerun Emacs's -configure script. +if ("`tty`" == "/dev/console") -* On Sunos 4.1.1, there are errors compiling sysdep.c. +Even better, move things that set up terminal sections out of .cshrc +and into .login. -If you get errors such as +*** HP/UX: `Pid xxx killed due to text modification or page I/O error'. - "sysdep.c", line 2017: undefined structure or union - "sysdep.c", line 2017: undefined structure or union - "sysdep.c", line 2019: nodename undefined +On HP/UX, you can get that error when the Emacs executable is on an NFS +file system. HP/UX responds this way if it tries to swap in a page and +does not get a response from the server within a timeout whose default +value is just ten seconds. -This can result from defining LD_LIBRARY_PATH. It is very tricky -to use that environment variable with Emacs. The Emacs configure -script links many test programs with the system libraries; you must -make sure that the libraries available to configure are the same -ones available when you build Emacs. +If this happens to you, extend the timeout period. -* The right Alt key works wrong on German HP keyboards (and perhaps +*** HP/UX: The right Alt key works wrong on German HP keyboards (and perhaps other non-English HP keyboards too). -This is because HPUX defines the modifiers wrong in X. Here is a +This is because HP-UX defines the modifiers wrong in X. Here is a shell script to fix the problem; be sure that it is run after VUE configures the X server. @@ -2009,1244 +1858,1665 @@ configures the X server. add mod2 = Mode_switch EOF -* The Emacs window disappears when you type M-q. +*** HP/UX: "Cannot find callback list" messages from dialog boxes in +Emacs built with Motif. -Some versions of the Open Look window manager interpret M-q as a quit -command for whatever window you are typing at. If you want to use -Emacs with that window manager, you should try to configure the window -manager to use some other command. You can disable the -shortcut keys entirely by adding this line to ~/.OWdefaults: +This problem resulted from a bug in GCC 2.4.5. Newer GCC versions +such as 2.7.0 fix the problem. - OpenWindows.WindowMenuAccelerators: False +*** HP/UX: Emacs does not recognize the AltGr key. -* Emacs does not notice when you release the mouse. +To fix this, set up a file ~/.dt/sessions/sessionetc with executable +rights, containing this text: -There are reports that this happened with (some) Microsoft mice and -that replacing the mouse made it stop. +-------------------------------- +xmodmap 2> /dev/null - << EOF +keysym Alt_L = Meta_L +keysym Alt_R = Meta_R +EOF -* Trouble using ptys on IRIX, or running out of ptys. +xmodmap - << EOF +clear mod1 +keysym Mode_switch = NoSymbol +add mod1 = Meta_L +keysym Meta_R = Mode_switch +add mod2 = Mode_switch +EOF +-------------------------------- -The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to -be set-UID to root, or non-root programs like Emacs will not be able -to allocate ptys reliably. +*** HP/UX 11.0: Emacs makes HP/UX 11.0 crash. -* On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h. +This is a bug in HPUX; HPUX patch PHKL_16260 is said to fix it. -The file cmplrs/stsupport.h was included in the wrong file set in the -Irix 5.2 distribution. You can find it in the optional fileset -compiler_dev, or copy it from some other Irix 5.2 system. A kludgy -workaround is to change unexelfsgi.c to include sym.h instead of -syms.h. +** AIX -* Slow startup on Linux-based GNU systems. +*** AIX: Trouble using ptys. -People using systems based on the Linux kernel sometimes report that -startup takes 10 to 15 seconds longer than `usual'. +People often install the pty devices on AIX incorrectly. +Use `smit pty' to reinstall them properly. -This is because Emacs looks up the host name when it starts. -Normally, this takes negligible time; the extra delay is due to -improper system configuration. This problem can occur for both -networked and non-networked machines. +*** AIXterm: Your Delete key sends a Backspace to the terminal. -Here is how to fix the configuration. It requires being root. +The solution is to include in your .Xdefaults the lines: -** Networked Case + *aixterm.Translations: #override BackSpace: string(0x7f) + aixterm*ttyModes: erase ^? -First, make sure the files `/etc/hosts' and `/etc/host.conf' both -exist. The first line in the `/etc/hosts' file should look like this -(replace HOSTNAME with your host name): +This makes your Backspace key send DEL (ASCII 127). - 127.0.0.1 HOSTNAME +*** AIX: If linking fails because libXbsd isn't found, check if you +are compiling with the system's `cc' and CFLAGS containing `-O5'. If +so, you have hit a compiler bug. Please make sure to re-configure +Emacs so that it isn't compiled with `-O5'. -Also make sure that the `/etc/host.conf' files contains the following -lines: +*** AIX 4.3.x or 4.4: Compiling fails. - order hosts, bind - multi on +This could happen if you use /bin/c89 as your compiler, instead of +the default `cc'. /bin/c89 treats certain warnings, such as benign +redefinitions of macros, as errors, and fails the build. A solution +is to use the default compiler `cc'. -Any changes, permanent and temporary, to the host name should be -indicated in the `/etc/hosts' file, since it acts a limited local -database of addresses and names (e.g., some SLIP connections -dynamically allocate ip addresses). +*** AIX 4: Some programs fail when run in a Shell buffer +with an error message like No terminfo entry for "unknown". -** Non-Networked Case +On AIX, many terminal type definitions are not installed by default. +`unknown' is one of them. Install the "Special Generic Terminal +Definitions" to make them defined. -The solution described in the networked case applies here as well. -However, if you never intend to network your machine, you can use a -simpler solution: create an empty `/etc/host.conf' file. The command -`touch /etc/host.conf' suffices to create the file. The `/etc/hosts' -file is not necessary with this approach. +** Solaris -* On Solaris 2.4, Dired hangs and C-g does not work. Or Emacs hangs -forever waiting for termination of a subprocess that is a zombie. +We list bugs in current versions here. Solaris 2.x and 4.x are covered in the +section on legacy systems. -casper@fwi.uva.nl says the problem is in X11R6. Rebuild libX11.so -after changing the file xc/config/cf/sunLib.tmpl. Change the lines +*** On Solaris, C-x doesn't get through to Emacs when you use the console. - #if ThreadedX - #define SharedX11Reqs -lthread - #endif +This is a Solaris feature (at least on Intel x86 cpus). Type C-r +C-r C-t, to toggle whether C-x gets through to Emacs. -to: +*** Problem with remote X server on Suns. - #if OSMinorVersion < 4 - #if ThreadedX - #define SharedX11Reqs -lthread - #endif - #endif +On a Sun, running Emacs on one machine with the X server on another +may not work if you have used the unshared system libraries. This +is because the unshared libraries fail to use YP for host name lookup. +As a result, the host name you specify may not be recognized. -Be sure also to edit x/config/cf/sun.cf so that OSMinorVersion is 4 -(as it should be for Solaris 2.4). The file has three definitions for -OSMinorVersion: the first is for x86, the second for SPARC under -Solaris, and the third for SunOS 4. Make sure to update the -definition for your type of machine and system. +*** Solaris 2,6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame. -Then do `make Everything' in the top directory of X11R6, to rebuild -the makefiles and rebuild X. The X built this way work only on -Solaris 2.4, not on 2.3. +We suspect that this is a bug in the X libraries provided by +Sun. There is a report that one of these patches fixes the bug and +makes the problem stop: -For multithreaded X to work it is necessary to install patch -101925-02 to fix problems in header files [2.4]. You need -to reinstall gcc or re-run just-fixinc after installing that -patch. +105216-01 105393-01 105518-01 105621-01 105665-01 105615-02 105216-02 +105667-01 105401-08 105615-03 105621-02 105686-02 105736-01 105755-03 +106033-01 105379-01 105786-01 105181-04 105379-03 105786-04 105845-01 +105284-05 105669-02 105837-01 105837-02 105558-01 106125-02 105407-01 -However, Frank Rust used a simpler solution: -he changed - #define ThreadedX YES -to - #define ThreadedX NO -in sun.cf and did `make World' to rebuild X11R6. Removing all -`-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and -typing 'make install' in that directory also seemed to work. +Another person using a newer system (kernel patch level Generic_105181-06) +suspects that the bug was fixed by one of these more recent patches: -* With M-x enable-flow-control, you need to type C-\ twice - to do incremental search--a single C-\ gets no response. +106040-07 SunOS 5.6: X Input & Output Method patch +106222-01 OpenWindows 3.6: filemgr (ff.core) fixes +105284-12 Motif 1.2.7: sparc Runtime library patch -This has been traced to communicating with your machine via kermit, -with C-\ as the kermit escape character. One solution is to use -another escape character in kermit. One user did +*** Solaris 7 or 8: Emacs reports a BadAtom error (from X) - set escape-character 17 +This happens when Emacs was built on some other version of Solaris. +Rebuild it on Solaris 8. -in his .kermrc file, to make C-q the kermit escape character. +*** When using M-x dbx with the SparcWorks debugger, the `up' and `down' +commands do not move the arrow in Emacs. -* The Motif version of Emacs paints the screen a solid color. +You can fix this by adding the following line to `~/.dbxinit': -This has been observed to result from the following X resource: + dbxenv output_short_file_name off - Emacs*default.attributeFont: -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-* +*** On Solaris, CTRL-t is ignored by Emacs when you use +the fr.ISO-8859-15 locale (and maybe other related locales). -That the resource has this effect indicates a bug in something, but we -do not yet know what. If it is an Emacs bug, we hope someone can -explain what the bug is so we can fix it. In the mean time, removing -the resource prevents the problem. +You can fix this by editing the file: -* Emacs gets hung shortly after startup, on Sunos 4.1.3. + /usr/openwin/lib/locale/iso8859-15/Compose -We think this is due to a bug in Sunos. The word is that -one of these Sunos patches fixes the bug: +Near the bottom there is a line that reads: -100075-11 100224-06 100347-03 100482-05 100557-02 100623-03 100804-03 101080-01 -100103-12 100249-09 100496-02 100564-07 100630-02 100891-10 101134-01 -100170-09 100296-04 100377-09 100507-04 100567-04 100650-02 101070-01 101145-01 -100173-10 100305-15 100383-06 100513-04 100570-05 100689-01 101071-03 101200-02 -100178-09 100338-05 100421-03 100536-02 100584-05 100784-01 101072-01 101207-01 + Ctrl : "\276" threequarters -We don't know which of these patches really matter. If you find out -which ones, please inform bug-gnu-emacs@gnu.org. +that should read: -* Emacs aborts while starting up, only when run without X. + Ctrl : "\276" threequarters -This problem often results from compiling Emacs with GCC when GCC was -installed incorrectly. The usual error in installing GCC is to -specify --includedir=/usr/include. Installation of GCC makes -corrected copies of the system header files. GCC is supposed to use -the corrected copies in preference to the original system headers. -Specifying --includedir=/usr/include causes the original system header -files to be used. On some systems, the definition of ioctl in the -original system header files is invalid for ANSI C and causes Emacs -not to work. +Note the lower case . Changing this line should make C-t work. -The fix is to reinstall GCC, and this time do not specify --includedir -when you configure it. Then recompile Emacs. Specifying --includedir -is appropriate only in very special cases and it should *never* be the -same directory where system header files are kept. +** Irix -* On Solaris 2.x, GCC complains "64 bit integer types not supported" +*** Irix 6.5: Emacs crashes on the SGI R10K, when compiled with GCC. -This suggests that GCC is not installed correctly. Most likely you -are using GCC 2.7.2.3 (or earlier) on Solaris 2.6 (or later); this -does not work without patching. To run GCC 2.7.2.3 on Solaris 2.6 or -later, you must patch fixinc.svr4 and reinstall GCC from scratch as -described in the Solaris FAQ -. A better fix is -to upgrade to GCC 2.8.1 or later. +This seems to be fixed in GCC 2.95. -* The Compose key on a DEC keyboard does not work as Meta key. +*** Irix: Trouble using ptys, or running out of ptys. -This shell command should fix it: +The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to +be set-UID to root, or non-root programs like Emacs will not be able +to allocate ptys reliably. - xmodmap -e 'keycode 0xb1 = Meta_L' +* Runtime problems specific to MS-Windows -* Regular expressions matching bugs on SCO systems. +** Emacs exits with "X protocol error" when run with an X server for MS-Windows. -On SCO, there are problems in regexp matching when Emacs is compiled -with the system compiler. The compiler version is "Microsoft C -version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick -C Compiler Version 1.00.46 (Beta). The solution is to compile with -GCC. +A certain X server for Windows had a bug which caused this. +Supposedly the newer 32-bit version of this server doesn't have the +problem. -* On Sunos 4, you get the error ld: Undefined symbol __lib_version. +** Known problems with the MS-Windows port of Emacs 22.1 -This is the result of using cc or gcc with the shared library meant -for acc (the Sunpro compiler). Check your LD_LIBRARY_PATH and delete -/usr/lang/SC2.0.1 or some similar directory. +Using create-fontset-from-ascii-font or the --font startup parameter +with a Chinese, Japanese or Korean font leads to display problems. +Use a Latin-only font as your default font. If you want control over +which font is used to display Chinese, Japanese or Korean character, +use create-fontset-from-fontset-spec to define a fontset. -* You can't select from submenus (in the X toolkit version). +Frames are not refreshed while the File or Font dialog or a pop-up menu +is displayed. This also means help text for pop-up menus is not +displayed at all. This is because message handling under Windows is +synchronous, so we cannot handle repaint (or any other) messages while +waiting for a system function to return the result of the dialog or +pop-up menu interaction. -On certain systems, mouse-tracking and selection in top-level menus -works properly with the X toolkit, but neither of them works when you -bring up a submenu (such as Bookmarks or Compare or Apply Patch, in -the Files menu). +Windows 95 and Windows NT up to version 4.0 do not support help text +for menus. Help text is only available in later versions of Windows. -This works on most systems. There is speculation that the failure is -due to bugs in old versions of X toolkit libraries, but no one really -knows. If someone debugs this and finds the precise cause, perhaps a -workaround can be found. +There are problems with display if mouse-tracking is enabled and the +mouse is moved off a frame, over another frame then back over the first +frame. A workaround is to click the left mouse button inside the frame +after moving back into it. -* Unusable default font on SCO 3.2v4. +Some minor flickering still persists during mouse-tracking, although +not as severely as in 21.1. -The Open Desktop environment comes with default X resource settings -that tell Emacs to use a variable-width font. Emacs cannot use such -fonts, so it does not work. +An inactive cursor remains in an active window after the Windows +Manager driven switch of the focus, until a key is pressed. -This is caused by the file /usr/lib/X11/app-defaults/ScoTerm, which is -the application-specific resource file for the `scoterm' terminal -emulator program. It contains several extremely general X resources -that affect other programs besides `scoterm'. In particular, these -resources affect Emacs also: +Windows input methods are not recognized by Emacs. Some +of these input methods cause the keyboard to send characters encoded +in the appropriate coding system (e.g., ISO 8859-1 for Latin-1 +characters, ISO 8859-8 for Hebrew characters, etc.). To make this +work, set the keyboard coding system to the appropriate value after +you activate the Windows input method. For example, if you activate +the Hebrew input method, type "C-x RET k iso-8859-8 RET". (Emacs +ought to recognize the Windows language-change event and set up the +appropriate keyboard encoding automatically, but it doesn't do that +yet.) - *Font: -*-helvetica-medium-r-*--12-*-p-* - *Background: scoBackground - *Foreground: scoForeground +The %b specifier for format-time-string does not produce abbreviated +month names with consistent widths for some locales on some versions +of Windows. This is caused by a deficiency in the underlying system +library function. -The best solution is to create an application-specific resource file for -Emacs, /usr/lib/X11/sco/startup/Emacs, with the following contents: +** Typing Alt-Shift has strange effects on MS-Windows. - Emacs*Font: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1 - Emacs*Background: white - Emacs*Foreground: black +This combination of keys is a command to change keyboard layout. If +you proceed to type another non-modifier key before you let go of Alt +and Shift, the Alt and Shift act as modifiers in the usual way. A +more permanent work around is to change it to another key combination, +or disable it in the keyboard control panel. -(These settings mimic the Emacs defaults, but you can change them to -suit your needs.) This resource file is only read when the X server -starts up, so you should restart it by logging out of the Open Desktop -environment or by running `scologin stop; scologin start` from the shell -as root. Alternatively, you can put these settings in the -/usr/lib/X11/app-defaults/Emacs resource file and simply restart Emacs, -but then they will not affect remote invocations of Emacs that use the -Open Desktop display. +** Interrupting Cygwin port of Bash from Emacs doesn't work. -These resource files are not normally shared across a network of SCO -machines; you must create the file on each machine individually. +Cygwin 1.x builds of the ported Bash cannot be interrupted from the +MS-Windows version of Emacs. This is due to some change in the Bash +port or in the Cygwin library which apparently make Bash ignore the +keyboard interrupt event sent by Emacs to Bash. (Older Cygwin ports +of Bash, up to b20.1, did receive SIGINT from Emacs.) -* rcs2log gives you the awk error message "too many fields". +** Accessing remote files with ange-ftp hangs the MS-Windows version of Emacs. -This is due to an arbitrary limit in certain versions of awk. -The solution is to use gawk (GNU awk). +If the FTP client is the Cygwin port of GNU `ftp', this appears to be +due to some bug in the Cygwin DLL or some incompatibility between it +and the implementation of asynchronous subprocesses in the Windows +port of Emacs. Specifically, some parts of the FTP server responses +are not flushed out, apparently due to buffering issues, which +confuses ange-ftp. -* Emacs is slow using X11R5 on HP/UX. +The solution is to downgrade to an older version of the Cygwin DLL +(version 1.3.2 was reported to solve the problem), or use the stock +Windows FTP client, usually found in the `C:\WINDOWS' or 'C:\WINNT' +directory. To force ange-ftp use the stock Windows client, set the +variable `ange-ftp-ftp-program-name' to the absolute file name of the +client's executable. For example: -This happens if you use the MIT versions of the X libraries--it -doesn't run as fast as HP's version. People sometimes use the version -because they see the HP version doesn't have the libraries libXaw.a, -libXmu.a, libXext.a and others. HP/UX normally doesn't come with -those libraries installed. To get good performance, you need to -install them and rebuild Emacs. + (setq ange-ftp-ftp-program-name "c:/windows/ftp.exe") -* Loading fonts is very slow. +If you want to stick with the Cygwin FTP client, you can work around +this problem by putting this in your `.emacs' file: -You might be getting scalable fonts instead of precomputed bitmaps. -Known scalable font directories are "Type1" and "Speedo". A font -directory contains scalable fonts if it contains the file -"fonts.scale". + (setq ange-ftp-ftp-program-args '("-i" "-n" "-g" "-v" "--prompt" "") -If this is so, re-order your X windows font path to put the scalable -font directories last. See the documentation of `xset' for details. +** lpr commands don't work on MS-Windows with some cheap printers. -With some X servers, it may be necessary to take the scalable font -directories out of your path entirely, at least for Emacs 19.26. -Changes in the future may make this unnecessary. +This problem may also strike other platforms, but the solution is +likely to be a global one, and not Emacs specific. -* On AIX 3.2.4, releasing Ctrl/Act key has no effect, if Shift is down. +Many cheap inkjet, and even some cheap laser printers, do not +print plain text anymore, they will only print through graphical +printer drivers. A workaround on MS-Windows is to use Windows' basic +built in editor to print (this is possibly the only useful purpose it +has): -Due to a feature of AIX, pressing or releasing the Ctrl/Act key is -ignored when the Shift, Alt or AltGr keys are held down. This can -lead to the keyboard being "control-locked"--ordinary letters are -treated as control characters. +(setq printer-name "") ;; notepad takes the default +(setq lpr-command "notepad") ;; notepad +(setq lpr-switches nil) ;; not needed +(setq lpr-printer-switch "/P") ;; run notepad as batch printer -You can get out of this "control-locked" state by pressing and -releasing Ctrl/Act while not pressing or holding any other keys. +** Antivirus software interacts badly with the MS-Windows version of Emacs. -* display-time causes kernel problems on ISC systems. +The usual manifestation of these problems is that subprocesses don't +work or even wedge the entire system. In particular, "M-x shell RET" +was reported to fail to work. But other commands also sometimes don't +work when an antivirus package is installed. -Under Interactive Unix versions 3.0.1 and 4.0 (and probably other -versions), display-time causes the loss of large numbers of STREVENT -cells. Eventually the kernel's supply of these cells is exhausted. -This makes emacs and the whole system run slow, and can make other -processes die, in particular pcnfsd. +The solution is to switch the antivirus software to a less aggressive +mode (e.g., disable the ``auto-protect'' feature), or even uninstall +or disable it entirely. -Other emacs functions that communicate with remote processes may have -the same problem. Display-time seems to be far the worst. +** Pressing the mouse button on MS-Windows does not give a mouse-2 event. -The only known fix: Don't run display-time. +This is usually a problem with the mouse driver. Because most Windows +programs do not do anything useful with the middle mouse button, many +mouse drivers allow you to define the wheel press to do something +different. Some drivers do not even have the option to generate a +middle button press. In such cases, setting the wheel press to +"scroll" sometimes works if you press the button twice. Trying a +generic mouse driver might help. -* On Solaris, C-x doesn't get through to Emacs when you use the console. +** Scrolling the mouse wheel on MS-Windows always scrolls the top window. -This is a Solaris feature (at least on Intel x86 cpus). Type C-r -C-r C-t, to toggle whether C-x gets through to Emacs. +This is another common problem with mouse drivers. Instead of +generating scroll events, some mouse drivers try to fake scroll bar +movement. But they are not intelligent enough to handle multiple +scroll bars within a frame. Trying a generic mouse driver might help. -* Error message `Symbol's value as variable is void: x', followed by - segmentation fault and core dump. +** Mail sent through Microsoft Exchange in some encodings appears to be +mangled and is not seen correctly in Rmail or Gnus. We don't know +exactly what happens, but it isn't an Emacs problem in cases we've +seen. -This has been tracked to a bug in tar! People report that tar erroneously -added a line like this at the beginning of files of Lisp code: +** On MS-Windows, you cannot use the right-hand ALT key and the left-hand +CTRL key together to type a Control-Meta character. - x FILENAME, N bytes, B tape blocks +This is a consequence of a misfeature beyond Emacs's control. -If your tar has this problem, install GNU tar--if you can manage to -untar it :-). +Under Windows, the AltGr key on international keyboards generates key +events with the modifiers Right-Alt and Left-Ctrl. Since Emacs cannot +distinguish AltGr from an explicit Right-Alt and Left-Ctrl +combination, whenever it sees Right-Alt and Left-Ctrl it assumes that +AltGr has been pressed. The variable `w32-recognize-altgr' can be set +to nil to tell Emacs that AltGr is really Ctrl and Alt. -* Link failure when using acc on a Sun. +** Under some X-servers running on MS-Windows, Emacs' display is incorrect. -To use acc, you need additional options just before the libraries, such as +The symptoms are that Emacs does not completely erase blank areas of the +screen during scrolling or some other screen operations (e.g., selective +display or when killing a region). M-x recenter will cause the screen +to be completely redisplayed and the "extra" characters will disappear. - /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1 +This is known to occur under Exceed 6, and possibly earlier versions +as well; it is reportedly solved in version 6.2.0.16 and later. The +problem lies in the X-server settings. -and you need to add -lansi just before -lc. +There are reports that you can solve the problem with Exceed by +running `Xconfig' from within NT, choosing "X selection", then +un-checking the boxes "auto-copy X selection" and "auto-paste to X +selection". -The precise file names depend on the compiler version, so we -cannot easily arrange to supply them. +Of this does not work, please inform bug-gnu-emacs@gnu.org. Then +please call support for your X-server and see if you can get a fix. +If you do, please send it to bug-gnu-emacs@gnu.org so we can list it +here. -* Link failure on IBM AIX 1.3 ptf 0013. +* Build-time problems -There is a real duplicate definition of the function `_slibc_free' in -the library /lib/libc_s.a (just do nm on it to verify). The -workaround/fix is: +** Configuration - cd /lib - ar xv libc_s.a NLtmtime.o - ar dv libc_s.a NLtmtime.o +*** The `configure' script doesn't find the jpeg library. -* Undefined symbols _dlopen, _dlsym and/or _dlclose on a Sun. +There are reports that this happens on some systems because the linker +by default only looks for shared libraries, but jpeg distribution by +default only installs a nonshared version of the library, `libjpeg.a'. -If you see undefined symbols _dlopen, _dlsym, or _dlclose when linking -with -lX11, compile and link against the file mit/util/misc/dlsym.c in -the MIT X11R5 distribution. Alternatively, link temacs using shared -libraries with s/sunos4shr.h. (This doesn't work if you use the X -toolkit.) +If this is the problem, you can configure the jpeg library with the +`--enable-shared' option and then rebuild libjpeg. This produces a +shared version of libjpeg, which you need to install. Finally, rerun +the Emacs configure script, which should now find the jpeg library. +Alternatively, modify the generated src/Makefile to link the .a file +explicitly, and edit src/config.h to define HAVE_JPEG. -If you get the additional error that the linker could not find -lib_version.o, try extracting it from X11/usr/lib/X11/libvim.a in -X11R4, then use it in the link. +** Compilation -* Error messages `Wrong number of arguments: #, 5' +*** Building Emacs over NFS fails with ``Text file busy''. -This typically results from having the powerkey library loaded. -Powerkey was designed for Emacs 19.22. It is obsolete now because -Emacs 19 now has this feature built in; and powerkey also calls -where-is-internal in an obsolete way. +This was reported to happen when building Emacs on a GNU/Linux system +(RedHat Linux 6.2) using a build directory automounted from Solaris +(SunOS 5.6) file server, but it might not be limited to that +configuration alone. Presumably, the NFS server doesn't commit the +files' data to disk quickly enough, and the Emacs executable file is +left ``busy'' for several seconds after Emacs has finished dumping +itself. This causes the subsequent commands which invoke the dumped +Emacs executable to fail with the above message. -So the fix is to arrange not to load powerkey. +In some of these cases, a time skew between the NFS server and the +machine where Emacs is built is detected and reported by GNU Make +(it says that some of the files have modification time in the future). +This might be a symptom of NFS-related problems. -* In Shell mode, you get a ^M at the end of every line. +If the NFS server runs on Solaris, apply the Solaris patch 105379-05 +(Sunos 5.6: /kernel/misc/nfssrv patch). If that doesn't work, or if +you have a different version of the OS or the NFS server, you can +force the NFS server to use 1KB blocks, which was reported to fix the +problem albeit at a price of slowing down file I/O. You can force 1KB +blocks by specifying the "-o rsize=1024,wsize=1024" options to the +`mount' command, or by adding ",rsize=1024,wsize=1024" to the mount +options in the appropriate system configuration file, such as +`/etc/auto.home'. -This happens to people who use tcsh, because it is trying to be too -smart. It sees that the Shell uses terminal type `unknown' and turns -on the flag to output ^M at the end of each line. You can fix the -problem by adding this to your .cshrc file: +Alternatively, when Make fails due to this problem, you could wait for +a few seconds and then invoke Make again. In one particular case, +waiting for 10 or more seconds between the two Make invocations seemed +to work around the problem. - if ($?EMACS) then - if ($EMACS == "t") then - unset edit - stty -icrnl -onlcr -echo susp ^Z - endif - endif +Similar problems can happen if your machine NFS-mounts a directory +onto itself. Suppose the Emacs sources live in `/usr/local/src' and +you are working on the host called `marvin'. Then an entry in the +`/etc/fstab' file like the following is asking for trouble: -* An error message such as `X protocol error: BadMatch (invalid -parameter attributes) on protocol request 93'. + marvin:/usr/local/src /usr/local/src ...options.omitted... -This comes from having an invalid X resource, such as - emacs*Cursor: black -(which is invalid because it specifies a color name for something -that isn't a color.) +The solution is to remove this line from `etc/fstab'. -The fix is to correct your X resources. +*** Building Emacs with GCC 2.9x fails in the `src' directory. -* Undefined symbols when linking on Sunos 4.1 using --with-x-toolkit. +This may happen if you use a development version of GNU `cpp' from one +of the GCC snapshots between Oct 2000 and Feb 2001, or from a released +version of GCC newer than 2.95.2 which was prepared around those +dates; similar problems were reported with some snapshots of GCC 3.1 +around Sep 30 2001. The preprocessor in those versions is +incompatible with a traditional Unix cpp (e.g., it expands ".." into +". .", which breaks relative file names that reference the parent +directory; or inserts TAB characters before lines that set Make +variables). -If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace, -_iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after --lXaw in the command that links temacs. +The solution is to make sure the preprocessor is run with the +`-traditional' option. The `configure' script does that automatically +when it detects the known problems in your cpp, but you might hit some +unknown ones. To force the `configure' script to use `-traditional', +run the script like this: -This problem seems to arise only when the international language -extensions to X11R5 are installed. + CPP='gcc -E -traditional' ./configure ... -* Typing C-c C-c in Shell mode kills your X server. +(replace the ellipsis "..." with any additional arguments you pass to +the script). -This happens with Linux kernel 1.0 thru 1.04, approximately. The workaround is -to define SIGNALS_VIA_CHARACTERS in config.h and recompile Emacs. -Newer Linux kernel versions don't have this problem. +Note that this problem does not pertain to the MS-Windows port of +Emacs, since it doesn't use the preprocessor to generate Makefiles. -* src/Makefile and lib-src/Makefile are truncated--most of the file missing. +*** src/Makefile and lib-src/Makefile are truncated--most of the file missing. +*** Compiling wakeup, in lib-src, says it can't make wakeup.c. This can happen if configure uses GNU sed version 2.03. That version -had a bug. GNU sed version 2.05 works properly. +had a bug. GNU sed version 2.05 works properly.To solve the +problem, install the current version of GNU Sed, then rerun Emacs's +configure script. -* Slow startup on X11R6 with X windows. +*** Compiling lib-src says there is no rule to make test-distrib.c. -If Emacs takes two minutes to start up on X11R6, see if your X -resources specify any Adobe fonts. That causes the type-1 font -renderer to start up, even if the font you asked for is not a type-1 -font. +This results from a bug in a VERY old version of GNU Sed. To solve +the problem, install the current version of GNU Sed, then rerun +Emacs's configure script. -One way to avoid this problem is to eliminate the type-1 fonts from -your font path, like this: +*** Building the MS-Windows port with Cygwin GCC can fail. - xset -fp /usr/X11R6/lib/X11/fonts/Type1/ +Emacs may not build using recent Cygwin builds of GCC, such as Cygwin +version 1.1.8, using the default configure settings. It appears to be +necessary to specify the -mwin32 flag when compiling, and define +__MSVCRT__, like so: -* Pull-down menus appear in the wrong place, in the toolkit version of Emacs. + configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__ -An X resource of this form can cause the problem: +*** Building the MS-Windows port fails with a CreateProcess failure. - Emacs*geometry: 80x55+0+0 +Some versions of mingw32 make on some versions of Windows do not seem +to detect the shell correctly. Try "make SHELL=cmd.exe", or if that +fails, try running make from Cygwin bash instead. -This resource is supposed to apply, and does apply, to the menus -individually as well as to Emacs frames. If that is not what you -want, rewrite the resource. +*** Building the MS-Windows port with Leim fails in the `leim' directory. -To check thoroughly for such resource specifications, use `xrdb --query' to see what resources the X server records, and also look at -the user's ~/.Xdefaults and ~/.Xdefaults-* files. +The error message might be something like this: -* --with-x-toolkit version crashes when used with shared libraries. + Converting d:/emacs-21.3/leim/CXTERM-DIC/4Corner.tit to quail-package... + Invalid ENCODE: value in TIT dictionary + NMAKE : fatal error U1077: '"../src/obj-spd/i386/emacs.exe"' : return code + '0xffffffff' + Stop. -On some systems, including Sunos 4 and DGUX 5.4.2 and perhaps others, -unexec doesn't work properly with the shared library for the X -toolkit. You might be able to work around this by using a nonshared -libXt.a library. The real fix is to upgrade the various versions of -unexec and/or ralloc. We think this has been fixed on Sunos 4 -and Solaris in version 19.29. +This can happen if the Leim distribution is unpacked with a program +which converts the `*.tit' files to DOS-style CR-LF text format. The +`*.tit' files in the leim/CXTERM-DIC directory require Unix-style line +endings to compile properly, because Emacs reads them without any code +or EOL conversions. -* `make install' fails on install-doc with `Error 141'. +The solution is to make sure the program used to unpack Leim does not +change the files' line endings behind your back. The GNU FTP site has +in the `/gnu/emacs/windows' directory a program called `djtarnt.exe' +which can be used to unpack `.tar.gz' and `.zip' archives without +mangling them. -This happens on Ultrix 4.2 due to failure of a pipeline of tar -commands. We don't know why they fail, but the bug seems not to be in -Emacs. The workaround is to run the shell command in install-doc by -hand. +*** Building `ctags' for MS-Windows with the MinGW port of GCC fails. -* --with-x-toolkit option configures wrong on BSD/386. +This might happen due to a bug in the MinGW header assert.h, which +defines the `assert' macro with a trailing semi-colon. The following +patch to assert.h should solve this: -This problem is due to bugs in the shell in version 1.0 of BSD/386. -The workaround is to edit the configure file to use some other shell, -such as bash. +*** include/assert.h.orig Sun Nov 7 02:41:36 1999 +--- include/assert.h Mon Jan 29 11:49:10 2001 +*************** +*** 41,47 **** + /* + * If not debugging, assert does nothing. + */ +! #define assert(x) ((void)0); -* Subprocesses remain, hanging but not zombies, on Sunos 5.3. + #else /* debugging enabled */ -A bug in Sunos 5.3 causes Emacs subprocesses to remain after Emacs -exits. Sun patch # 101415-02 is part of the fix for this, but it only -applies to ptys, and doesn't fix the problem with subprocesses -communicating through pipes. +--- 41,47 ---- + /* + * If not debugging, assert does nothing. + */ +! #define assert(x) ((void)0) -* Mail is lost when sent to local aliases. + #else /* debugging enabled */ -Many emacs mail user agents (VM and rmail, for instance) use the -sendmail.el library. This library can arrange for mail to be -delivered by passing messages to the /usr/lib/sendmail (usually) -program . In doing so, it passes the '-t' flag to sendmail, which -means that the name of the recipient of the message is not on the -command line and, therefore, that sendmail must parse the message to -obtain the destination address. -There is a bug in the SunOS4.1.1 and SunOS4.1.3 versions of sendmail. -In short, when given the -t flag, the SunOS sendmail won't recognize -non-local (i.e. NIS) aliases. It has been reported that the Solaris -2.x versions of sendmail do not have this bug. For those using SunOS -4.1, the best fix is to install sendmail V8 or IDA sendmail (which -have other advantages over the regular sendmail as well). At the time -of this writing, these official versions are available: +** Linking - Sendmail V8 on ftp.cs.berkeley.edu in /ucb/sendmail: - sendmail.8.6.9.base.tar.Z (the base system source & documentation) - sendmail.8.6.9.cf.tar.Z (configuration files) - sendmail.8.6.9.misc.tar.Z (miscellaneous support programs) - sendmail.8.6.9.xdoc.tar.Z (extended documentation, with postscript) +*** Building Emacs with a system compiler fails to link because of an +undefined symbol such as __eprintf which does not appear in Emacs. - IDA sendmail on vixen.cso.uiuc.edu in /pub: - sendmail-5.67b+IDA-1.5.tar.gz +This can happen if some of the libraries linked into Emacs were built +with GCC, but Emacs itself is being linked with a compiler other than +GCC. Object files compiled with GCC might need some helper functions +from libgcc.a, the library which comes with GCC, but the system +compiler does not instruct the linker to search libgcc.a during the +link stage. -* On AIX, you get this message when running Emacs: +A solution is to link with GCC, like this: - Could not load program emacs - Symbol smtcheckinit in csh is undefined - Error was: Exec format error - -or this one: + make CC=gcc - Could not load program .emacs - Symbol _system_con in csh is undefined - Symbol _fp_trapsta in csh is undefined - Error was: Exec format error +Since the .o object files already exist, this will not recompile Emacs +with GCC, but just restart by trying again to link temacs. -These can happen when you try to run on AIX 3.2.5 a program that was -compiled with 3.2.4. The fix is to recompile. +*** AIX 1.3 ptf 0013: Link failure. -* On AIX, you get this compiler error message: +There is a real duplicate definition of the function `_slibc_free' in +the library /lib/libc_s.a (just do nm on it to verify). The +workaround/fix is: - Processing include file ./XMenuInt.h - 1501-106: (S) Include file X11/Xlib.h not found. + cd /lib + ar xv libc_s.a NLtmtime.o + ar dv libc_s.a NLtmtime.o -This means your system was installed with only the X11 runtime i.d -libraries. You have to find your sipo (bootable tape) and install -X11Dev... with smit. +*** AIX 4.1.2: Linker error messages such as + ld: 0711-212 SEVERE ERROR: Symbol .__quous, found in the global symbol table + of archive /usr/lib/libIM.a, was not defined in archive member shr.o. -* You "lose characters" after typing Compose Character key. +This is a problem in libIM.a. You can work around it by executing +these shell commands in the src subdirectory of the directory where +you build Emacs: -This is because the Compose Character key is defined as the keysym -Multi_key, and Emacs (seeing that) does the proper X11 -character-composition processing. If you don't want your Compose key -to do that, you can redefine it with xmodmap. + cp /usr/lib/libIM.a . + chmod 664 libIM.a + ranlib libIM.a -For example, here's one way to turn it into a Meta key: +Then change -lIM to ./libIM.a in the command to link temacs (in +Makefile). - xmodmap -e "keysym Multi_key = Meta_L" +*** Sun with acc: Link failure when using acc on a Sun. -If all users at your site of a particular keyboard prefer Meta to -Compose, you can make the remapping happen automatically by adding the -xmodmap command to the xdm setup script for that display. +To use acc, you need additional options just before the libraries, such as -* C-z just refreshes the screen instead of suspending Emacs. + /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1 -You are probably using a shell that doesn't support job control, even -though the system itself is capable of it. Either use a different shell, -or set the variable `cannot-suspend' to a non-nil value. +and you need to add -lansi just before -lc. -* Watch out for .emacs files and EMACSLOADPATH environment vars +The precise file names depend on the compiler version, so we +cannot easily arrange to supply them. -These control the actions of Emacs. -~/.emacs is your Emacs init file. -EMACSLOADPATH overrides which directories the function -"load" will search. +*** Linking says that the functions insque and remque are undefined. -If you observe strange problems, check for these and get rid -of them, then try again. +Change oldXMenu/Makefile by adding insque.o to the variable OBJS. -* After running emacs once, subsequent invocations crash. +*** `tparam' reported as a multiply-defined symbol when linking with ncurses. -Some versions of SVR4 have a serious bug in the implementation of the -mmap () system call in the kernel; this causes emacs to run correctly -the first time, and then crash when run a second time. +This problem results from an incompatible change in ncurses, in +version 1.9.9e approximately. This version is unable to provide a +definition of tparm without also defining tparam. This is also +incompatible with Terminfo; as a result, the Emacs Terminfo support +does not work with this version of ncurses. -Contact your vendor and ask for the mmap bug fix; in the mean time, -you may be able to work around the problem by adding a line to your -operating system description file (whose name is reported by the -configure script) that reads: -#define SYSTEM_MALLOC -This makes Emacs use memory less efficiently, but seems to work around -the kernel bug. +The fix is to install a newer version of ncurses, such as version 4.2. -* Inability to send an Alt-modified key, when Emacs is communicating -directly with an X server. +** Dumping -If you have tried to bind an Alt-modified key as a command, and it -does not work to type the command, the first thing you should check is -whether the key is getting through to Emacs. To do this, type C-h c -followed by the Alt-modified key. C-h c should say what kind of event -it read. If it says it read an Alt-modified key, then make sure you -have made the key binding correctly. +*** Linux: Segfault during `make bootstrap' under certain recent versions of the Linux kernel. -If C-h c reports an event that doesn't have the Alt modifier, it may -be because your X server has no key for the Alt modifier. The X -server that comes from MIT does not set up the Alt modifier by -default. +With certain recent Linux kernels (like the one of Redhat Fedora Core +1 and newer), the new "Exec-shield" functionality is enabled by default, which +creates a different memory layout that breaks the emacs dumper. Emacs tries +to handle this at build time, but if the workaround used fails, these +instructions can be useful. +The work-around explained here is not enough on Fedora Core 4 (and possible +newer). Read the next item. -If your keyboard has keys named Alt, you can enable them as follows: +Configure can overcome the problem of exec-shield if the architecture is +x86 and the program setarch is present. On other architectures no +workaround is known. - xmodmap -e 'add mod2 = Alt_L' - xmodmap -e 'add mod2 = Alt_R' +You can check the Exec-shield state like this: -If the keyboard has just one key named Alt, then only one of those -commands is needed. The modifier `mod2' is a reasonable choice if you -are using an unmodified MIT version of X. Otherwise, choose any -modifier bit not otherwise used. + cat /proc/sys/kernel/exec-shield -If your keyboard does not have keys named Alt, you can use some other -keys. Use the keysym command in xmodmap to turn a function key (or -some other 'spare' key) into Alt_L or into Alt_R, and then use the -commands show above to make them modifier keys. +It returns non-zero when Exec-shield is enabled, 0 otherwise. Please +read your system documentation for more details on Exec-shield and +associated commands. Exec-shield can be turned off with this command: -Note that if you have Alt keys but no Meta keys, Emacs translates Alt -into Meta. This is because of the great importance of Meta in Emacs. + echo "0" > /proc/sys/kernel/exec-shield -* `Pid xxx killed due to text modification or page I/O error' +When Exec-shield is enabled, building Emacs will segfault during the +execution of this command: -On HP/UX, you can get that error when the Emacs executable is on an NFS -file system. HP/UX responds this way if it tries to swap in a page and -does not get a response from the server within a timeout whose default -value is just ten seconds. + ./temacs --batch --load loadup [dump|bootstrap] -If this happens to you, extend the timeout period. +To work around this problem, it is necessary to temporarily disable +Exec-shield while building Emacs, or, on x86, by using the `setarch' +command when running temacs like this: -* `expand-file-name' fails to work on any but the machine you dumped Emacs on. + setarch i386 ./temacs --batch --load loadup [dump|bootstrap] -On Ultrix, if you use any of the functions which look up information -in the passwd database before dumping Emacs (say, by using -expand-file-name in site-init.el), then those functions will not work -in the dumped Emacs on any host but the one Emacs was dumped on. + +*** Fedora Core 4 GNU/Linux: Segfault during dumping. -The solution? Don't use expand-file-name in site-init.el, or in -anything it loads. Yuck - some solution. +In addition to exec-shield explained above "Linux: Segfault during +`make bootstrap' under certain recent versions of the Linux kernel" +item, Linux kernel shipped with Fedora Core 4 randomizes the virtual +address space of a process. As the result dumping may fail even if +you turn off exec-shield. In this case, use the -R option to the setarch +command: -I'm not sure why this happens; if you can find out exactly what is -going on, and perhaps find a fix or a workaround, please let us know. -Perhaps the YP functions cache some information, the cache is included -in the dumped Emacs, and is then inaccurate on any other host. + setarch i386 -R ./temacs --batch --load loadup [dump|bootstrap] -* On some variants of SVR4, Emacs does not work at all with X. +or -Try defining BROKEN_FIONREAD in your config.h file. If this solves -the problem, please send a bug report to tell us this is needed; be -sure to say exactly what type of machine and system you are using. + setarch i386 -R make bootstrap -* Linking says that the functions insque and remque are undefined. +*** Fatal signal in the command temacs -l loadup inc dump. -Change oldXMenu/Makefile by adding insque.o to the variable OBJS. +This command is the final stage of building Emacs. It is run by the +Makefile in the src subdirectory, or by build.com on VMS. -* Emacs fails to understand most Internet host names, even though -the names work properly with other programs on the same system. -* Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0. -* GNUs can't make contact with the specified host for nntp. +It has been known to get fatal errors due to insufficient swapping +space available on the machine. -This typically happens on Suns and other systems that use shared -libraries. The cause is that the site has installed a version of the -shared library which uses a name server--but has not installed a -similar version of the unshared library which Emacs uses. +On 68000s, it has also happened because of bugs in the +subroutine `alloca'. Verify that `alloca' works right, even +for large blocks (many pages). -The result is that most programs, using the shared library, work with -the nameserver, but Emacs does not. +*** test-distrib says that the distribution has been clobbered. +*** or, temacs prints "Command key out of range 0-127". +*** or, temacs runs and dumps emacs, but emacs totally fails to work. +*** or, temacs gets errors dumping emacs. -The fix is to install an unshared library that corresponds to what you -installed in the shared library, and then relink Emacs. +This can be because the .elc files have been garbled. Do not be +fooled by the fact that most of a .elc file is text: these are +binary files and can contain all 256 byte values. -On SunOS 4.1, simply define HAVE_RES_INIT. +In particular `shar' cannot be used for transmitting GNU Emacs. +It typically truncates "lines". What appear to be "lines" in +a binary file can of course be of any length. Even once `shar' +itself is made to work correctly, `sh' discards null characters +when unpacking the shell archive. -If you have already installed the name resolver in the file libresolv.a, -then you need to compile Emacs to use that library. The easiest way to -do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE -or LIB_STANDARD which uses -lresolv. Watch out! If you redefine a macro -that is already in use in your configuration to supply some other libraries, -be careful not to lose the others. +I have also seen character \177 changed into \377. I do not know +what transfer means caused this problem. Various network +file transfer programs are suspected of clobbering the high bit. -Thus, you could start by adding this to config.h: +If you have a copy of Emacs that has been damaged in its +nonprinting characters, you can fix them: -#define LIBS_SYSTEM -lresolv + 1) Record the names of all the .elc files. + 2) Delete all the .elc files. + 3) Recompile alloc.c with a value of PURESIZE twice as large. + (See puresize.h.) You might as well save the old alloc.o. + 4) Remake emacs. It should work now. + 5) Running emacs, do Meta-x byte-compile-file repeatedly + to recreate all the .elc files that used to exist. + You may need to increase the value of the variable + max-lisp-eval-depth to succeed in running the compiler interpreted + on certain .el files. 400 was sufficient as of last report. + 6) Reinstall the old alloc.o (undoing changes to alloc.c if any) + and remake temacs. + 7) Remake emacs. It should work now, with valid .elc files. -Then if this gives you an error for redefining a macro, and you see that -the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h -again to say this: +*** temacs prints "Pure Lisp storage exhausted". -#define LIBS_SYSTEM -lresolv -lfoo -lbar +This means that the Lisp code loaded from the .elc and .el +files during temacs -l loadup inc dump took up more +space than was allocated. -* On a Sun running SunOS 4.1.1, you get this error message from GNU ld: +This could be caused by + 1) adding code to the preloaded Lisp files + 2) adding more preloaded files in loadup.el + 3) having a site-init.el or site-load.el which loads files. + Note that ANY site-init.el or site-load.el is nonstandard; + if you have received Emacs from some other site + and it contains a site-init.el or site-load.el file, consider + deleting that file. + 4) getting the wrong .el or .elc files + (not from the directory you expected). + 5) deleting some .elc files that are supposed to exist. + This would cause the source files (.el files) to be + loaded instead. They take up more room, so you lose. + 6) a bug in the Emacs distribution which underestimates + the space required. - /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment +If the need for more space is legitimate, change the definition +of PURESIZE in puresize.h. -The problem is in the Sun shared C library, not in GNU ld. +But in some of the cases listed above, this problem is a consequence +of something else that is wrong. Be sure to check and fix the real +problem. -The solution is to install Patch-ID# 100267-03 from Sun. +*** Linux: Emacs crashes when dumping itself on Mac PPC running Yellow Dog GNU/Linux. -* Self documentation messages are garbled. +The crashes happen inside the function Fmake_symbol; here's a typical +C backtrace printed by GDB: -This means that the file `etc/DOC-...' doesn't properly correspond -with the Emacs executable. Redumping Emacs and then installing the -corresponding pair of files should fix the problem. + 0x190c0c0 in Fmake_symbol () + (gdb) where + #0 0x190c0c0 in Fmake_symbol () + #1 0x1942ca4 in init_obarray () + #2 0x18b3500 in main () + #3 0x114371c in __libc_start_main (argc=5, argv=0x7ffff5b4, envp=0x7ffff5cc, -* Trouble using ptys on AIX. +This could happen because GCC version 2.95 and later changed the base +of the load address to 0x10000000. Emacs needs to be told about this, +but we currently cannot do that automatically, because that breaks +other versions of GNU/Linux on the MacPPC. Until we find a way to +distinguish between the Yellow Dog and the other varieties of +GNU/Linux systems on the PPC, you will have to manually uncomment the +following section near the end of the file src/m/macppc.h in the Emacs +distribution: -People often install the pty devices on AIX incorrectly. -Use `smit pty' to reinstall them properly. + #if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog, + even with identical GCC, as, ld. Let's take it out until we + know what's really going on here. */ + /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to + 0x10000000. */ + #if defined __linux__ + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) + #define DATA_SEG_BITS 0x10000000 + #endif + #endif + #endif /* 0 */ -* Shell mode on HP/UX gives the message, "`tty`: Ambiguous". +Remove the "#if 0" and "#endif" directives which surround this, save +the file, and then reconfigure and rebuild Emacs. The dumping process +should now succeed. -christos@theory.tn.cornell.edu says: +** Installation -The problem is that in your .cshrc you have something that tries to -execute `tty`. If you are not running the shell on a real tty then -tty will print "not a tty". Csh expects one word in some places, -but tty is giving it back 3. +*** Installing Emacs gets an error running `install-info'. -The solution is to add a pair of quotes around `tty` to make it a single -word: +You need to install a recent version of Texinfo; that package +supplies the `install-info' command. -if (`tty` == "/dev/console") +** First execution -should be changed to: +*** Emacs binary is not in executable format, and cannot be run. -if ("`tty`" == "/dev/console") +This was reported to happen when Emacs is built in a directory mounted +via NFS, for some combinations of NFS client and NFS server. +Usually, the file `emacs' produced in these cases is full of +binary null characters, and the `file' utility says: -Even better, move things that set up terminal sections out of .cshrc -and into .login. + emacs: ASCII text, with no line terminators -* Using X Windows, control-shift-leftbutton makes Emacs hang. +We don't know what exactly causes this failure. A work-around is to +build Emacs in a directory on a local disk. -Use the shell command `xset bc' to make the old X Menu package work. +*** The dumped Emacs crashes when run, trying to write pure data. -* Emacs running under X Windows does not handle mouse clicks. -* `emacs -geometry 80x20' finds a file named `80x20'. +Two causes have been seen for such problems. -One cause of such problems is having (setq term-file-prefix nil) in -your .emacs file. Another cause is a bad value of EMACSLOADPATH in -the environment. +1) On a system where getpagesize is not a system call, it is defined +as a macro. If the definition (in both unexec.c and malloc.c) is wrong, +it can cause problems like this. You might be able to find the correct +value in the man page for a.out (5). -* Emacs gets error message from linker on Sun. +2) Some systems allocate variables declared static among the +initialized variables. Emacs makes all initialized variables in most +of its files pure after dumping, but the variables declared static and +not initialized are not supposed to be pure. On these systems you +may need to add "#define static" to the m- or the s- file. -If the error message says that a symbol such as `f68881_used' or -`ffpa_used' or `start_float' is undefined, this probably indicates -that you have compiled some libraries, such as the X libraries, -with a floating point option other than the default. +* Emacs 19 problems -It's not terribly hard to make this work with small changes in -crt0.c together with linking with Fcrt1.o, Wcrt1.o or Mcrt1.o. -However, the easiest approach is to build Xlib with the default -floating point option: -fsoft. +** Error messages `Wrong number of arguments: #, 5'. -* Emacs fails to get default settings from X Windows server. +This typically results from having the powerkey library loaded. +Powerkey was designed for Emacs 19.22. It is obsolete now because +Emacs 19 now has this feature built in; and powerkey also calls +where-is-internal in an obsolete way. -The X library in X11R4 has a bug; it interchanges the 2nd and 3rd -arguments to XGetDefaults. Define the macro XBACKWARDS in config.h to -tell Emacs to compensate for this. +So the fix is to arrange not to load powerkey. -I don't believe there is any way Emacs can determine for itself -whether this problem is present on a given system. +* Runtime problems on legacy systems -* Keyboard input gets confused after a beep when using a DECserver - as a concentrator. +This section covers bugs reported on very old hardware or software. +If you are using hardware and an operating system shipped after 2000, +it is unlikely you will see any of these. -This problem seems to be a matter of configuring the DECserver to use -7 bit characters rather than 8 bit characters. +** Ancient operating systems -* M-x shell persistently reports "Process shell exited abnormally with code 1". +AIX 4.2 was end-of-lifed on Dec 31st, 1999. -This happened on Suns as a result of what is said to be a bug in Sunos -version 4.0.x. The only fix was to reboot the machine. +*** AIX: You get this compiler error message: -* Programs running under terminal emulator do not recognize `emacs' - terminal type. + Processing include file ./XMenuInt.h + 1501-106: (S) Include file X11/Xlib.h not found. -The cause of this is a shell startup file that sets the TERMCAP -environment variable. The terminal emulator uses that variable to -provide the information on the special terminal type that Emacs -emulates. +This means your system was installed with only the X11 runtime i.d +libraries. You have to find your sipo (bootable tape) and install +X11Dev... with smit. -Rewrite your shell startup file so that it does not change TERMCAP -in such a case. You could use the following conditional which sets -it only if it is undefined. +(This report must be ancient. Bootable tapes are long dead.) - if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file +*** AIX 3.2.4: Releasing Ctrl/Act key has no effect, if Shift is down. -Or you could set TERMCAP only when you set TERM--which should not -happen in a non-login shell. +Due to a feature of AIX, pressing or releasing the Ctrl/Act key is +ignored when the Shift, Alt or AltGr keys are held down. This can +lead to the keyboard being "control-locked"--ordinary letters are +treated as control characters. -* X Windows doesn't work if DISPLAY uses a hostname. +You can get out of this "control-locked" state by pressing and +releasing Ctrl/Act while not pressing or holding any other keys. -People have reported kernel bugs in certain systems that cause Emacs -not to work with X Windows if DISPLAY is set using a host name. But -the problem does not occur if DISPLAY is set to `unix:0.0'. I think -the bug has to do with SIGIO or FIONREAD. +*** AIX 3.2.5: You get this message when running Emacs: -You may be able to compensate for the bug by doing (set-input-mode nil nil). -However, that has the disadvantage of turning off interrupts, so that -you are unable to quit out of a Lisp program by typing C-g. + Could not load program emacs + Symbol smtcheckinit in csh is undefined + Error was: Exec format error -The easy way to do this is to put +or this one: - (setq x-sigio-bug t) + Could not load program .emacs + Symbol _system_con in csh is undefined + Symbol _fp_trapsta in csh is undefined + Error was: Exec format error -in your site-init.el file. +These can happen when you try to run on AIX 3.2.5 a program that was +compiled with 3.2.4. The fix is to recompile. -* Problem with remote X server on Suns. +*** AIX 4.2: Emacs gets a segmentation fault at startup. -On a Sun, running Emacs on one machine with the X server on another -may not work if you have used the unshared system libraries. This -is because the unshared libraries fail to use YP for host name lookup. -As a result, the host name you specify may not be recognized. +If you are using IBM's xlc compiler, compile emacs.c +without optimization; that should avoid the problem. -* Shell mode ignores interrupts on Apollo Domain +*** ISC Unix -You may find that M-x shell prints the following message: +**** ISC: display-time causes kernel problems on ISC systems. - Warning: no access to tty; thus no job control in this shell... +Under Interactive Unix versions 3.0.1 and 4.0 (and probably other +versions), display-time causes the loss of large numbers of STREVENT +cells. Eventually the kernel's supply of these cells is exhausted. +This makes emacs and the whole system run slow, and can make other +processes die, in particular pcnfsd. -This can happen if there are not enough ptys on your system. -Here is how to make more of them. +Other emacs functions that communicate with remote processes may have +the same problem. Display-time seems to be far the worst. - % cd /dev - % ls pty* - # shows how many pty's you have. I had 8, named pty0 to pty7) - % /etc/crpty 8 - # creates eight new pty's +The only known fix: Don't run display-time. -* Fatal signal in the command temacs -l loadup inc dump +*** SunOS -This command is the final stage of building Emacs. It is run by the -Makefile in the src subdirectory, or by build.com on VMS. +SunOS 4.1.4 stopped shipping on Sep 30 1998. -It has been known to get fatal errors due to insufficient swapping -space available on the machine. +**** SunOS: You get linker errors + ld: Undefined symbol + _get_wmShellWidgetClass + _get_applicationShellWidgetClass -On 68000's, it has also happened because of bugs in the -subroutine `alloca'. Verify that `alloca' works right, even -for large blocks (many pages). +**** Sun 4.0.x: M-x shell persistently reports "Process shell exited abnormally with code 1". -* test-distrib says that the distribution has been clobbered -* or, temacs prints "Command key out of range 0-127" -* or, temacs runs and dumps emacs, but emacs totally fails to work. -* or, temacs gets errors dumping emacs +This happened on Suns as a result of what is said to be a bug in Sunos +version 4.0.x. The only fix was to reboot the machine. -This can be because the .elc files have been garbled. Do not be -fooled by the fact that most of a .elc file is text: these are -binary files and can contain all 256 byte values. +**** SunOS4.1.1 and SunOS4.1.3: Mail is lost when sent to local aliases. -In particular `shar' cannot be used for transmitting GNU Emacs. -It typically truncates "lines". What appear to be "lines" in -a binary file can of course be of any length. Even once `shar' -itself is made to work correctly, `sh' discards null characters -when unpacking the shell archive. +Many emacs mail user agents (VM and rmail, for instance) use the +sendmail.el library. This library can arrange for mail to be +delivered by passing messages to the /usr/lib/sendmail (usually) +program . In doing so, it passes the '-t' flag to sendmail, which +means that the name of the recipient of the message is not on the +command line and, therefore, that sendmail must parse the message to +obtain the destination address. -I have also seen character \177 changed into \377. I do not know -what transfer means caused this problem. Various network -file transfer programs are suspected of clobbering the high bit. +There is a bug in the SunOS4.1.1 and SunOS4.1.3 versions of sendmail. +In short, when given the -t flag, the SunOS sendmail won't recognize +non-local (i.e. NIS) aliases. It has been reported that the Solaris +2.x versions of sendmail do not have this bug. For those using SunOS +4.1, the best fix is to install sendmail V8 or IDA sendmail (which +have other advantages over the regular sendmail as well). At the time +of this writing, these official versions are available: -If you have a copy of Emacs that has been damaged in its -nonprinting characters, you can fix them: + Sendmail V8 on ftp.cs.berkeley.edu in /ucb/sendmail: + sendmail.8.6.9.base.tar.Z (the base system source & documentation) + sendmail.8.6.9.cf.tar.Z (configuration files) + sendmail.8.6.9.misc.tar.Z (miscellaneous support programs) + sendmail.8.6.9.xdoc.tar.Z (extended documentation, with postscript) - 1) Record the names of all the .elc files. - 2) Delete all the .elc files. - 3) Recompile alloc.c with a value of PURESIZE twice as large. - (See puresize.h.) You might as well save the old alloc.o. - 4) Remake emacs. It should work now. - 5) Running emacs, do Meta-x byte-compile-file repeatedly - to recreate all the .elc files that used to exist. - You may need to increase the value of the variable - max-lisp-eval-depth to succeed in running the compiler interpreted - on certain .el files. 400 was sufficient as of last report. - 6) Reinstall the old alloc.o (undoing changes to alloc.c if any) - and remake temacs. - 7) Remake emacs. It should work now, with valid .elc files. + IDA sendmail on vixen.cso.uiuc.edu in /pub: + sendmail-5.67b+IDA-1.5.tar.gz -* temacs prints "Pure Lisp storage exhausted" +**** Sunos 4: You get the error ld: Undefined symbol __lib_version. -This means that the Lisp code loaded from the .elc and .el -files during temacs -l loadup inc dump took up more -space than was allocated. +This is the result of using cc or gcc with the shared library meant +for acc (the Sunpro compiler). Check your LD_LIBRARY_PATH and delete +/usr/lang/SC2.0.1 or some similar directory. -This could be caused by - 1) adding code to the preloaded Lisp files - 2) adding more preloaded files in loadup.el - 3) having a site-init.el or site-load.el which loads files. - Note that ANY site-init.el or site-load.el is nonstandard; - if you have received Emacs from some other site - and it contains a site-init.el or site-load.el file, consider - deleting that file. - 4) getting the wrong .el or .elc files - (not from the directory you expected). - 5) deleting some .elc files that are supposed to exist. - This would cause the source files (.el files) to be - loaded instead. They take up more room, so you lose. - 6) a bug in the Emacs distribution which underestimates - the space required. +**** SunOS 4.1.3: Emacs unpredictably crashes in _yp_dobind_soft. -If the need for more space is legitimate, change the definition -of PURESIZE in puresize.h. +This happens if you configure Emacs specifying just `sparc-sun-sunos4' +on a system that is version 4.1.3. You must specify the precise +version number (or let configure figure out the configuration, which +it can do perfectly well for SunOS). -But in some of the cases listed above, this problem is a consequence -of something else that is wrong. Be sure to check and fix the real -problem. +**** Sunos 4.1.3: Emacs gets hung shortly after startup. -* Changes made to .el files do not take effect. +We think this is due to a bug in Sunos. The word is that +one of these Sunos patches fixes the bug: -You may have forgotten to recompile them into .elc files. -Then the old .elc files will be loaded, and your changes -will not be seen. To fix this, do M-x byte-recompile-directory -and specify the directory that contains the Lisp files. +100075-11 100224-06 100347-03 100482-05 100557-02 100623-03 100804-03 101080-01 +100103-12 100249-09 100496-02 100564-07 100630-02 100891-10 101134-01 +100170-09 100296-04 100377-09 100507-04 100567-04 100650-02 101070-01 101145-01 +100173-10 100305-15 100383-06 100513-04 100570-05 100689-01 101071-03 101200-02 +100178-09 100338-05 100421-03 100536-02 100584-05 100784-01 101072-01 101207-01 -Emacs should print a warning when loading a .elc file which is older -than the corresponding .el file. +We don't know which of these patches really matter. If you find out +which ones, please inform bug-gnu-emacs@gnu.org. -* The dumped Emacs crashes when run, trying to write pure data. +**** SunOS 4: Emacs processes keep going after you kill the X server +(or log out, if you logged in using X). -Two causes have been seen for such problems. +Someone reported that recompiling with GCC 2.7.0 fixed this problem. -1) On a system where getpagesize is not a system call, it is defined -as a macro. If the definition (in both unexec.c and malloc.c) is wrong, -it can cause problems like this. You might be able to find the correct -value in the man page for a.out (5). +The fix to this is to install patch 100573 for OpenWindows 3.0 +or link libXmu statically. -2) Some systems allocate variables declared static among the -initialized variables. Emacs makes all initialized variables in most -of its files pure after dumping, but the variables declared static and -not initialized are not supposed to be pure. On these systems you -may need to add "#define static" to the m- or the s- file. +**** Sunos 5.3: Subprocesses remain, hanging but not zombies. -* Compilation errors on VMS. +A bug in Sunos 5.3 causes Emacs subprocesses to remain after Emacs +exits. Sun patch # 101415-02 is part of the fix for this, but it only +applies to ptys, and doesn't fix the problem with subprocesses +communicating through pipes. -You will get warnings when compiling on VMS because there are -variable names longer than 32 (or whatever it is) characters. -This is not an error. Ignore it. +*** Apollo Domain -VAX C does not support #if defined(foo). Uses of this construct -were removed, but some may have crept back in. They must be rewritten. +**** Shell mode ignores interrupts on Apollo Domain. -There is a bug in the C compiler which fails to sign extend characters -in conditional expressions. The bug is: - char c = -1, d = 1; - int i; +You may find that M-x shell prints the following message: - i = d ? c : d; -The result is i == 255; the fix is to typecast the char in the -conditional expression as an (int). Known occurrences of such -constructs in Emacs have been fixed. + Warning: no access to tty; thus no job control in this shell... -* rmail gets error getting new mail +This can happen if there are not enough ptys on your system. +Here is how to make more of them. -rmail gets new mail from /usr/spool/mail/$USER using a program -called `movemail'. This program interlocks with /bin/mail using -the protocol defined by /bin/mail. + % cd /dev + % ls pty* + # shows how many pty's you have. I had 8, named pty0 to pty7) + % /etc/crpty 8 + # creates eight new pty's -There are two different protocols in general use. One of them uses -the `flock' system call. The other involves creating a lock file; -`movemail' must be able to write in /usr/spool/mail in order to do -this. You control which one is used by defining, or not defining, -the macro MAIL_USE_FLOCK in config.h or the m- or s- file it includes. -IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR -SYSTEM, YOU CAN LOSE MAIL! +*** Irix -If your system uses the lock file protocol, and fascist restrictions -prevent ordinary users from writing the lock files in /usr/spool/mail, -you may need to make `movemail' setgid to a suitable group such as -`mail'. You can use these commands (as root): +*** Irix 6.2: No visible display on mips-sgi-irix6.2 when compiling with GCC 2.8.1. - chgrp mail movemail - chmod 2755 movemail +This problem went away after installing the latest IRIX patches +as of 8 Dec 1998. -If your system uses the lock file protocol, and fascist restrictions -prevent ordinary users from writing the lock files in /usr/spool/mail, -you may need to make `movemail' setgid to a suitable group such as -`mail'. To do this, use the following commands (as root) after doing the -make install. +The same problem has been reported on Irix 6.3. + +*** Irix 6.3: substituting environment variables in file names +in the minibuffer gives peculiar error messages such as + + Substituting nonexistent environment variable "" + +This is not an Emacs bug; it is caused by something in SGI patch +003082 August 11, 1998. + +*** OPENSTEP + +**** OPENSTEP 4.2: Compiling syntax.c with gcc 2.7.2.1 fails. + +The compiler was reported to crash while compiling syntax.c with the +following message: + + cc: Internal compiler error: program cc1obj got fatal signal 11 + +To work around this, replace the macros UPDATE_SYNTAX_TABLE_FORWARD, +INC_BOTH, and INC_FROM with functions. To this end, first define 3 +functions, one each for every macro. Here's an example: + + static int update_syntax_table_forward(int from) + { + return(UPDATE_SYNTAX_TABLE_FORWARD(from)); + }/*update_syntax_table_forward*/ + +Then replace all references to UPDATE_SYNTAX_TABLE_FORWARD in syntax.c +with a call to the function update_syntax_table_forward. + +*** Solaris 2.x + +**** Strange results from format %d in a few cases, on a Sun. + +Sun compiler version SC3.0 has been found to miscompile part of +editfns.c. The workaround is to compile with some other compiler such +as GCC. + +**** On Solaris, Emacs dumps core if lisp-complete-symbol is called. + +If you compile Emacs with the -fast or -xO4 option with version 3.0.2 +of the Sun C compiler, Emacs dumps core when lisp-complete-symbol is +called. The problem does not happen if you compile with GCC. + +**** On Solaris, Emacs crashes if you use (display-time). + +This can happen if you configure Emacs without specifying the precise +version of Solaris that you are using. + +**** Solaris 2.3 and 2.4: Unpredictable segmentation faults. + +A user reported that this happened in 19.29 when it was compiled with +the Sun compiler, but not when he recompiled with GCC 2.7.0. + +We do not know whether something in Emacs is partly to blame for this. + +**** Solaris 2.4: Emacs dumps core on startup. + +Bill Sebok says that the cause of this is Solaris 2.4 vendor patch +102303-05, which extends the Solaris linker to deal with the Solaris +Common Desktop Environment's linking needs. You can fix the problem +by removing this patch and installing patch 102049-02 instead. +However, that linker version won't work with CDE. + +Solaris 2.5 comes with a linker that has this bug. It is reported that if +you install all the latest patches (as of June 1996), the bug is fixed. +We suspect the crucial patch is one of these, but we don't know +for certain. + + 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) + 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) + 103242-04: [README] SunOS 5.5: linker patch (595363 bytes) + +(One user reports that the bug was fixed by those patches together +with patches 102980-04, 103279-01, 103300-02, and 103468-01.) + +If you can determine which patch does fix the bug, please tell +bug-gnu-emacs@gnu.org. + +Meanwhile, the GNU linker links Emacs properly on both Solaris 2.4 and +Solaris 2.5. + +**** Solaris 2.4: Dired hangs and C-g does not work. Or Emacs hangs +forever waiting for termination of a subprocess that is a zombie. + +casper@fwi.uva.nl says the problem is in X11R6. Rebuild libX11.so +after changing the file xc/config/cf/sunLib.tmpl. Change the lines + + #if ThreadedX + #define SharedX11Reqs -lthread + #endif + +to: + + #if OSMinorVersion < 4 + #if ThreadedX + #define SharedX11Reqs -lthread + #endif + #endif + +Be sure also to edit x/config/cf/sun.cf so that OSMinorVersion is 4 +(as it should be for Solaris 2.4). The file has three definitions for +OSMinorVersion: the first is for x86, the second for SPARC under +Solaris, and the third for SunOS 4. Make sure to update the +definition for your type of machine and system. + +Then do `make Everything' in the top directory of X11R6, to rebuild +the makefiles and rebuild X. The X built this way work only on +Solaris 2.4, not on 2.3. + +For multithreaded X to work it is necessary to install patch +101925-02 to fix problems in header files [2.4]. You need +to reinstall gcc or re-run just-fixinc after installing that +patch. + +However, Frank Rust used a simpler solution: +he changed + #define ThreadedX YES +to + #define ThreadedX NO +in sun.cf and did `make World' to rebuild X11R6. Removing all +`-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and +typing 'make install' in that directory also seemed to work. + +**** Solaris 2.x: GCC complains "64 bit integer types not supported". + +This suggests that GCC is not installed correctly. Most likely you +are using GCC 2.7.2.3 (or earlier) on Solaris 2.6 (or later); this +does not work without patching. To run GCC 2.7.2.3 on Solaris 2.6 or +later, you must patch fixinc.svr4 and reinstall GCC from scratch as +described in the Solaris FAQ +. A better fix is +to upgrade to GCC 2.8.1 or later. + +**** Solaris 2.7: Building Emacs with WorkShop Compilers 5.0 98/12/15 +C 5.0 failed, apparently with non-default CFLAGS, most probably due to +compiler bugs. Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C +release was reported to work without problems. It worked OK on +another system with Solaris 8 using apparently the same 5.0 compiler +and the default CFLAGS. + +**** Solaris 2.x: Emacs dumps core when built with Motif. + +The Solaris Motif libraries are buggy, at least up through Solaris 2.5.1. +Install the current Motif runtime library patch appropriate for your host. +(Make sure the patch is current; some older patch versions still have the bug.) +You should install the other patches recommended by Sun for your host, too. +You can obtain Sun patches from ftp://sunsolve.sun.com/pub/patches/; +look for files with names ending in `.PatchReport' to see which patches +are currently recommended for your host. + +On Solaris 2.6, Emacs is said to work with Motif when Solaris patch +105284-12 is installed, but fail when 105284-15 is installed. +105284-18 might fix it again. + +**** Solaris 2.6 and 7: the Compose key does not work. + +This is a bug in Motif in Solaris. Supposedly it has been fixed for +the next major release of Solaris. However, if someone with Sun +support complains to Sun about the bug, they may release a patch. +If you do this, mention Sun bug #4188711. + +One workaround is to use a locale that allows non-ASCII characters. +For example, before invoking emacs, set the LC_ALL environment +variable to "en_US" (American English). The directory /usr/lib/locale +lists the supported locales; any locale other than "C" or "POSIX" +should do. + +pen@lysator.liu.se says (Feb 1998) that the Compose key does work +if you link with the MIT X11 libraries instead of the Solaris X11 +libraries. + +*** HP/UX versions before 11.0 + +HP/UX 9 was end-of-lifed in December 1998. +HP/UX 10 was end-of-lifed in May 1999. + +**** HP/UX 9: Emacs crashes with SIGBUS or SIGSEGV after you delete a frame. + +We think this is due to a bug in the X libraries provided by HP. With +the alternative X libraries in /usr/contrib/mitX11R5/lib, the problem +does not happen. + +*** HP/UX 10: Large file support is disabled. + +See the comments in src/s/hpux10.h. + +*** HP/UX: Emacs is slow using X11R5. + +This happens if you use the MIT versions of the X libraries--it +doesn't run as fast as HP's version. People sometimes use the version +because they see the HP version doesn't have the libraries libXaw.a, +libXmu.a, libXext.a and others. HP/UX normally doesn't come with +those libraries installed. To get good performance, you need to +install them and rebuild Emacs. + +*** Ultrix and Digital Unix + +**** Ultrix 4.2: `make install' fails on install-doc with `Error 141'. + +This happens on Ultrix 4.2 due to failure of a pipeline of tar +commands. We don't know why they fail, but the bug seems not to be in +Emacs. The workaround is to run the shell command in install-doc by +hand. + +**** Digital Unix 4.0: Garbled display on non-X terminals when Emacs runs. + +So far it appears that running `tset' triggers this problem (when TERM +is vt100, at least). If you do not run `tset', then Emacs displays +properly. If someone can tell us precisely which effect of running +`tset' actually causes the problem, we may be able to implement a fix +in Emacs. + +**** Ultrix: `expand-file-name' fails to work on any but the machine you dumped Emacs on. + +On Ultrix, if you use any of the functions which look up information +in the passwd database before dumping Emacs (say, by using +expand-file-name in site-init.el), then those functions will not work +in the dumped Emacs on any host but the one Emacs was dumped on. + +The solution? Don't use expand-file-name in site-init.el, or in +anything it loads. Yuck - some solution. + +I'm not sure why this happens; if you can find out exactly what is +going on, and perhaps find a fix or a workaround, please let us know. +Perhaps the YP functions cache some information, the cache is included +in the dumped Emacs, and is then inaccurate on any other host. + +*** SVr4 + +**** SVr4: On some variants of SVR4, Emacs does not work at all with X. + +Try defining BROKEN_FIONREAD in your config.h file. If this solves +the problem, please send a bug report to tell us this is needed; be +sure to say exactly what type of machine and system you are using. + +**** SVr4: After running emacs once, subsequent invocations crash. + +Some versions of SVR4 have a serious bug in the implementation of the +mmap () system call in the kernel; this causes emacs to run correctly +the first time, and then crash when run a second time. + +Contact your vendor and ask for the mmap bug fix; in the mean time, +you may be able to work around the problem by adding a line to your +operating system description file (whose name is reported by the +configure script) that reads: +#define SYSTEM_MALLOC +This makes Emacs use memory less efficiently, but seems to work around +the kernel bug. + +*** Irix 5 and earlier + +Exactly when Irix-5 end-of-lifed is obscure. But since Irix 6.0 +shipped in 1994, it has been some years. + +**** Irix 5.2: unexelfsgi.c can't find cmplrs/stsupport.h. + +The file cmplrs/stsupport.h was included in the wrong file set in the +Irix 5.2 distribution. You can find it in the optional fileset +compiler_dev, or copy it from some other Irix 5.2 system. A kludgy +workaround is to change unexelfsgi.c to include sym.h instead of +syms.h. + +**** Irix 5.3: "out of virtual swap space". + +This message occurs when the system runs out of swap space due to too +many large programs running. The solution is either to provide more +swap space or to reduce the number of large programs being run. You +can check the current status of the swap space by executing the +command `swap -l'. + +You can increase swap space by changing the file /etc/fstab. Adding a +line like this: + +/usr/swap/swap.more swap swap pri=3 0 0 + +where /usr/swap/swap.more is a file previously created (for instance +by using /etc/mkfile), will increase the swap space by the size of +that file. Execute `swap -m' or reboot the machine to activate the +new swap area. See the manpages for `swap' and `fstab' for further +information. + +The objectserver daemon can use up lots of memory because it can be +swamped with NIS information. It collects information about all users +on the network that can log on to the host. + +If you want to disable the objectserver completely, you can execute +the command `chkconfig objectserver off' and reboot. That may disable +some of the window system functionality, such as responding CDROM +icons. + +You can also remove NIS support from the objectserver. The SGI `admin' +FAQ has a detailed description on how to do that; see question 35 +("Why isn't the objectserver working?"). The admin FAQ can be found at +ftp://viz.tamu.edu/pub/sgi/faq/. + +**** Irix 5.3: Emacs crashes in utmpname. + +This problem is fixed in Patch 3175 for Irix 5.3. +It is also fixed in Irix versions 6.2 and up. + +**** Irix 6.0: Make tries (and fails) to build a program named unexelfsgi. + +A compiler bug inserts spaces into the string "unexelfsgi . o" +in src/Makefile. Edit src/Makefile, after configure is run, +find that string, and take out the spaces. + +Compiler fixes in Irix 6.0.1 should eliminate this problem. + +*** SCO Unix and UnixWare + +**** SCO 3.2v4: Unusable default font. + +The Open Desktop environment comes with default X resource settings +that tell Emacs to use a variable-width font. Emacs cannot use such +fonts, so it does not work. + +This is caused by the file /usr/lib/X11/app-defaults/ScoTerm, which is +the application-specific resource file for the `scoterm' terminal +emulator program. It contains several extremely general X resources +that affect other programs besides `scoterm'. In particular, these +resources affect Emacs also: + + *Font: -*-helvetica-medium-r-*--12-*-p-* + *Background: scoBackground + *Foreground: scoForeground + +The best solution is to create an application-specific resource file for +Emacs, /usr/lib/X11/sco/startup/Emacs, with the following contents: + + Emacs*Font: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1 + Emacs*Background: white + Emacs*Foreground: black + +(These settings mimic the Emacs defaults, but you can change them to +suit your needs.) This resource file is only read when the X server +starts up, so you should restart it by logging out of the Open Desktop +environment or by running `scologin stop; scologin start` from the shell +as root. Alternatively, you can put these settings in the +/usr/lib/X11/app-defaults/Emacs resource file and simply restart Emacs, +but then they will not affect remote invocations of Emacs that use the +Open Desktop display. + +These resource files are not normally shared across a network of SCO +machines; you must create the file on each machine individually. - chgrp mail movemail - chmod 2755 movemail +**** SCO 4.2.0: Regular expressions matching bugs on SCO systems. -Installation normally copies movemail from the build directory to an -installation directory which is usually under /usr/local/lib. The -installed copy of movemail is usually in the directory -/usr/local/lib/emacs/VERSION/TARGET. You must change the group and -mode of the installed copy; changing the group and mode of the build -directory copy is ineffective. +On SCO, there are problems in regexp matching when Emacs is compiled +with the system compiler. The compiler version is "Microsoft C +version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick +C Compiler Version 1.00.46 (Beta). The solution is to compile with +GCC. -* Emacs spontaneously displays "I-search: " at the bottom of the screen. +**** UnixWare 2.1: Error 12 (virtual memory exceeded) when dumping Emacs. -This means that Control-S/Control-Q (XON/XOFF) "flow control" is being -used. C-s/C-q flow control is bad for Emacs editors because it takes -away C-s and C-q as user commands. Since editors do not output long -streams of text without user commands, there is no need for a -user-issuable "stop output" command in an editor; therefore, a -properly designed flow control mechanism would transmit all possible -input characters without interference. Designing such a mechanism is -easy, for a person with at least half a brain. +Paul Abrahams (abrahams@acm.org) reports that with the installed +virtual memory settings for UnixWare 2.1.2, an Error 12 occurs during +the "make" that builds Emacs, when running temacs to dump emacs. That +error indicates that the per-process virtual memory limit has been +exceeded. The default limit is probably 32MB. Raising the virtual +memory limit to 40MB should make it possible to finish building Emacs. -There are three possible reasons why flow control could be taking place: +You can do this with the command `ulimit' (sh) or `limit' (csh). +But you have to be root to do it. - 1) Terminal has not been told to disable flow control - 2) Insufficient padding for the terminal in use - 3) Some sort of terminal concentrator or line switch is responsible +According to Martin Sohnius, you can also retune this in the kernel: -First of all, many terminals have a set-up mode which controls whether -they generate XON/XOFF flow control characters. This must be set to -"no XON/XOFF" in order for Emacs to work. Sometimes there is an -escape sequence that the computer can send to turn flow control off -and on. If so, perhaps the termcap `ti' string should turn flow -control off, and the `te' string should turn it on. + # /etc/conf/bin/idtune SDATLIM 33554432 ## soft data size limit + # /etc/conf/bin/idtune HDATLIM 33554432 ## hard " + # /etc/conf/bin/idtune SVMMSIZE unlimited ## soft process size limit + # /etc/conf/bin/idtune HVMMSIZE unlimited ## hard " + # /etc/conf/bin/idbuild -B -Once the terminal has been told "no flow control", you may find it -needs more padding. The amount of padding Emacs sends is controlled -by the termcap entry for the terminal in use, and by the output baud -rate as known by the kernel. The shell command `stty' will print -your output baud rate; `stty' with suitable arguments will set it if -it is wrong. Setting to a higher speed causes increased padding. If -the results are wrong for the correct speed, there is probably a -problem in the termcap entry. You must speak to a local Unix wizard -to fix this. Perhaps you are just using the wrong terminal type. +(He recommends you not change the stack limit, though.) +These changes take effect when you reboot. -For terminals that lack a "no flow control" mode, sometimes just -giving lots of padding will prevent actual generation of flow control -codes. You might as well try it. +*** Linux 1.x -If you are really unlucky, your terminal is connected to the computer -through a concentrator which sends XON/XOFF flow control to the -computer, or it insists on sending flow control itself no matter how -much padding you give it. Unless you can figure out how to turn flow -control off on this concentrator (again, refer to your local wizard), -you are screwed! You should have the terminal or concentrator -replaced with a properly designed one. In the mean time, some drastic -measures can make Emacs semi-work. +**** Linux 1.0-1.04: Typing C-c C-c in Shell mode kills your X server. -You can make Emacs ignore C-s and C-q and let the operating system -handle them. To do this on a per-session basis, just type M-x -enable-flow-control RET. You will see a message that C-\ and C-^ are -now translated to C-s and C-q. (Use the same command M-x -enable-flow-control to turn *off* this special mode. It toggles flow -control handling.) +This happens with Linux kernel 1.0 thru 1.04, approximately. The workaround is +to define SIGNALS_VIA_CHARACTERS in config.h and recompile Emacs. +Newer Linux kernel versions don't have this problem. -If C-\ and C-^ are inconvenient for you (for example, if one of them -is the escape character of your terminal concentrator), you can choose -other characters by setting the variables flow-control-c-s-replacement -and flow-control-c-q-replacement. But choose carefully, since all -other control characters are already used by emacs. +**** Linux 1.3: Output from subprocess (such as man or diff) is randomly +truncated on GNU/Linux systems. + +This is due to a kernel bug which seems to be fixed in Linux version +1.3.75. + +** Windows 3.1, 95, 98, and ME + +*** MS-Windows NT/95: Problems running Perl under Emacs + +`perl -de 0' just hangs when executed in an Emacs subshell. +The fault lies with Perl (indirectly with Windows NT/95). + +The problem is that the Perl debugger explicitly opens a connection to +"CON", which is the DOS/NT equivalent of "/dev/tty", for interacting +with the user. + +On Unix, this is okay, because Emacs (or the shell?) creates a +pseudo-tty so that /dev/tty is really the pipe Emacs is using to +communicate with the subprocess. + +On NT, this fails because CON always refers to the handle for the +relevant console (approximately equivalent to a tty), and cannot be +redirected to refer to the pipe Emacs assigned to the subprocess as +stdin. + +A workaround is to modify perldb.pl to use STDIN/STDOUT instead of CON. + +For Perl 4: + + *** PERL/LIB/PERLDB.PL.orig Wed May 26 08:24:18 1993 + --- PERL/LIB/PERLDB.PL Mon Jul 01 15:28:16 1996 + *************** + *** 68,74 **** + $rcfile=".perldb"; + } + else { + ! $console = "con"; + $rcfile="perldb.ini"; + } + + --- 68,74 ---- + $rcfile=".perldb"; + } + else { + ! $console = ""; + $rcfile="perldb.ini"; + } + + + For Perl 5: + *** perl/5.001/lib/perl5db.pl.orig Sun Jun 04 21:13:40 1995 + --- perl/5.001/lib/perl5db.pl Mon Jul 01 17:00:08 1996 + *************** + *** 22,28 **** + $rcfile=".perldb"; + } + elsif (-e "con") { + ! $console = "con"; + $rcfile="perldb.ini"; + } + else { + --- 22,28 ---- + $rcfile=".perldb"; + } + elsif (-e "con") { + ! $console = ""; + $rcfile="perldb.ini"; + } + else { + +*** MS-Windows 95: Alt-f6 does not get through to Emacs. + +This character seems to be trapped by the kernel in Windows 95. +You can enter M-f6 by typing ESC f6. + +*** MS-Windows 95/98/ME: subprocesses do not terminate properly. + +This is a limitation of the Operating System, and can cause problems +when shutting down Windows. Ensure that all subprocesses are exited +cleanly before exiting Emacs. For more details, see the FAQ at +http://www.gnu.org/software/emacs/windows/. + +*** MS-Windows 95/98/ME: crashes when Emacs invokes non-existent programs. + +When a program you are trying to run is not found on the PATH, +Windows might respond by crashing or locking up your system. In +particular, this has been reported when trying to compile a Java +program in JDEE when javac.exe is installed, but not on the system +PATH. + +** MS-DOS + +*** When compiling with DJGPP on MS-Windows NT, "config msdos" fails. + +If the error message is "VDM has been already loaded", this is because +Windows has a program called `redir.exe' that is incompatible with a +program by the same name supplied with DJGPP, which is used by +config.bat. To resolve this, move the DJGPP's `bin' subdirectory to +the front of your PATH environment variable. + +*** When compiling with DJGPP on MS-Windows 95, Make fails for some targets +like make-docfile. + +This can happen if long file name support (the setting of environment +variable LFN) when Emacs distribution was unpacked and during +compilation are not the same. See the MSDOG section of INSTALL for +the explanation of how to avoid this problem. + +*** Emacs compiled with DJGPP complains at startup: + + "Wrong type of argument: internal-facep, msdos-menu-active-face" + +This can happen if you define an environment variable `TERM'. Emacs +on MSDOS uses an internal terminal emulator which is disabled if the +value of `TERM' is anything but the string "internal". Emacs then +works as if its terminal were a dumb glass teletype that doesn't +support faces. To work around this, arrange for `TERM' to be +undefined when Emacs runs. The best way to do that is to add an +[emacs] section to the DJGPP.ENV file which defines an empty value for +`TERM'; this way, only Emacs gets the empty value, while the rest of +your system works as before. + +*** MS-DOS: Emacs crashes at startup. + +Some users report that Emacs 19.29 requires dpmi memory management, +and crashes on startup if the system does not have it. We don't yet +know why this happens--perhaps these machines don't have enough real +memory, or perhaps something is wrong in Emacs or the compiler. +However, arranging to use dpmi support is a workaround. + +You can find out if you have a dpmi host by running go32 without +arguments; it will tell you if it uses dpmi memory. For more +information about dpmi memory, consult the djgpp FAQ. (djgpp +is the GNU C compiler as packaged for MSDOS.) + +Compiling Emacs under MSDOS is extremely sensitive for proper memory +configuration. If you experience problems during compilation, consider +removing some or all memory resident programs (notably disk caches) +and make sure that your memory managers are properly configured. See +the djgpp faq for configuration hints. + +*** Emacs compiled with DJGPP for MS-DOS/MS-Windows cannot access files +in the directory with the special name `dev' under the root of any +drive, e.g. `c:/dev'. + +This is an unfortunate side-effect of the support for Unix-style +device names such as /dev/null in the DJGPP runtime library. A +work-around is to rename the problem directory to another name. + +*** MS-DOS+DJGPP: Problems on MS-DOG if DJGPP v2.0 is used to compile Emacs. + +There are two DJGPP library bugs which cause problems: + + * Running `shell-command' (or `compile', or `grep') you get + `Searching for program: permission denied (EACCES), c:/command.com'; + * After you shell to DOS, Ctrl-Break kills Emacs. + +To work around these bugs, you can use two files in the msdos +subdirectory: `is_exec.c' and `sigaction.c'. Compile them and link +them into the Emacs executable `temacs'; then they will replace the +incorrect library functions. + +*** MS-DOS: Emacs compiled for MSDOS cannot find some Lisp files, or other +run-time support files, when long filename support is enabled. + +Usually, this problem will manifest itself when Emacs exits +immediately after flashing the startup screen, because it cannot find +the Lisp files it needs to load at startup. Redirect Emacs stdout +and stderr to a file to see the error message printed by Emacs. + +Another manifestation of this problem is that Emacs is unable to load +the support for editing program sources in languages such as C and +Lisp. + +This can happen if the Emacs distribution was unzipped without LFN +support, thus causing long filenames to be truncated to the first 6 +characters and a numeric tail that Windows 95 normally attaches to it. +You should unzip the files again with a utility that supports long +filenames (such as djtar from DJGPP or InfoZip's UnZip program +compiled with DJGPP v2). The MSDOG section of the file INSTALL +explains this issue in more detail. + +Another possible reason for such failures is that Emacs compiled for +MSDOS is used on Windows NT, where long file names are not supported +by this version of Emacs, but the distribution was unpacked by an +unzip program that preserved the long file names instead of truncating +them to DOS 8+3 limits. To be useful on NT, the MSDOS port of Emacs +must be unzipped by a DOS utility, so that long file names are +properly truncated. -IMPORTANT: if you type C-s by accident while flow control is enabled, -Emacs output will freeze, and you will have to remember to type C-q in -order to continue. +** Archaic window managers and toolkits -If you work in an environment where a majority of terminals of a -certain type are flow control hobbled, you can use the function -`enable-flow-control-on' to turn on this flow control avoidance scheme -automatically. Here is an example: +*** OpenLook: Under OpenLook, the Emacs window disappears when you type M-q. -(enable-flow-control-on "vt200" "vt300" "vt101" "vt131") +Some versions of the Open Look window manager interpret M-q as a quit +command for whatever window you are typing at. If you want to use +Emacs with that window manager, you should try to configure the window +manager to use some other command. You can disable the +shortcut keys entirely by adding this line to ~/.OWdefaults: -If this isn't quite correct (e.g. you have a mixture of flow-control hobbled -and good vt200 terminals), you can still run enable-flow-control -manually. + OpenWindows.WindowMenuAccelerators: False -I have no intention of ever redesigning the Emacs command set for the -assumption that terminals use C-s/C-q flow control. XON/XOFF flow -control technique is a bad design, and terminals that need it are bad -merchandise and should not be purchased. Now that X is becoming -widespread, XON/XOFF seems to be on the way out. If you can get some -use out of GNU Emacs on inferior terminals, more power to you, but I -will not make Emacs worse for properly designed systems for the sake -of inferior systems. +**** twm: A position you specified in .Xdefaults is ignored, using twm. -* Control-S and Control-Q commands are ignored completely. +twm normally ignores "program-specified" positions. +You can tell it to obey them with this command in your `.twmrc' file: -For some reason, your system is using brain-damaged C-s/C-q flow -control despite Emacs's attempts to turn it off. Perhaps your -terminal is connected to the computer through a concentrator -that wants to use flow control. + UsePPosition "on" #allow clients to request a position -You should first try to tell the concentrator not to use flow control. -If you succeed in this, try making the terminal work without -flow control, as described in the preceding section. +** Bugs related to old DEC hardware -If that line of approach is not successful, map some other characters -into C-s and C-q using keyboard-translate-table. The example above -shows how to do this with C-^ and C-\. +*** The Compose key on a DEC keyboard does not work as Meta key. -* Control-S and Control-Q commands are ignored completely on a net connection. +This shell command should fix it: -Some versions of rlogin (and possibly telnet) do not pass flow -control characters to the remote system to which they connect. -On such systems, emacs on the remote system cannot disable flow -control on the local system. + xmodmap -e 'keycode 0xb1 = Meta_L' -One way to cure this is to disable flow control on the local host -(the one running rlogin, not the one running rlogind) using the -stty command, before starting the rlogin process. On many systems, -"stty start u stop u" will do this. +*** Keyboard input gets confused after a beep when using a DECserver +as a concentrator. -Some versions of tcsh will prevent even this from working. One way -around this is to start another shell before starting rlogin, and -issue the stty command to disable flow control from that shell. +This problem seems to be a matter of configuring the DECserver to use +7 bit characters rather than 8 bit characters. -If none of these methods work, the best solution is to type -M-x enable-flow-control at the beginning of your emacs session, or -if you expect the problem to continue, add a line such as the -following to your .emacs (on the host running rlogind): +* Build problems on legacy systems -(enable-flow-control-on "vt200" "vt300" "vt101" "vt131") +** BSD/386 1.0: --with-x-toolkit option configures wrong. -See the entry about spontaneous display of I-search (above) for more -info. +This problem is due to bugs in the shell in version 1.0 of BSD/386. +The workaround is to edit the configure file to use some other shell, +such as bash. -* Screen is updated wrong, but only on one kind of terminal. +** Digital Unix 4.0: Emacs fails to build, giving error message + Invalid dimension for the charset-ID 160 -This could mean that the termcap entry you are using for that -terminal is wrong, or it could mean that Emacs has a bug handing -the combination of features specified for that terminal. +This is due to a bug or an installation problem in GCC 2.8.0. +Installing a more recent version of GCC fixes the problem. -The first step in tracking this down is to record what characters -Emacs is sending to the terminal. Execute the Lisp expression -(open-termscript "./emacs-script") to make Emacs write all -terminal output into the file ~/emacs-script as well; then do -what makes the screen update wrong, and look at the file -and decode the characters using the manual for the terminal. -There are several possibilities: +** Digital Unix 4.0: Failure in unexec while dumping emacs. -1) The characters sent are correct, according to the terminal manual. +This problem manifests itself as an error message -In this case, there is no obvious bug in Emacs, and most likely you -need more padding, or possibly the terminal manual is wrong. + unexec: Bad address, writing data section to ... -2) The characters sent are incorrect, due to an obscure aspect - of the terminal behavior not described in an obvious way - by termcap. +The user suspects that this happened because his X libraries +were built for an older system version, -This case is hard. It will be necessary to think of a way for -Emacs to distinguish between terminals with this kind of behavior -and other terminals that behave subtly differently but are -classified the same by termcap; or else find an algorithm for -Emacs to use that avoids the difference. Such changes must be -tested on many kinds of terminals. + ./configure --x-includes=/usr/include --x-libraries=/usr/shlib -3) The termcap entry is wrong. +made the problem go away. -See the file etc/TERMS for information on changes -that are known to be needed in commonly used termcap entries -for certain terminals. +** Sunos 4.1.1: there are errors compiling sysdep.c. -4) The characters sent are incorrect, and clearly cannot be - right for any terminal with the termcap entry you were using. +If you get errors such as -This is unambiguously an Emacs bug, and can probably be fixed -in termcap.c, tparam.c, term.c, scroll.c, cm.c or dispnew.c. + "sysdep.c", line 2017: undefined structure or union + "sysdep.c", line 2017: undefined structure or union + "sysdep.c", line 2019: nodename undefined -* Output from Control-V is slow. +This can result from defining LD_LIBRARY_PATH. It is very tricky +to use that environment variable with Emacs. The Emacs configure +script links many test programs with the system libraries; you must +make sure that the libraries available to configure are the same +ones available when you build Emacs. -On many bit-map terminals, scrolling operations are fairly slow. -Often the termcap entry for the type of terminal in use fails -to inform Emacs of this. The two lines at the bottom of the screen -before a Control-V command are supposed to appear at the top after -the Control-V command. If Emacs thinks scrolling the lines is fast, -it will scroll them to the top of the screen. +** SunOS 4.1.1: You get this error message from GNU ld: -If scrolling is slow but Emacs thinks it is fast, the usual reason is -that the termcap entry for the terminal you are using does not -specify any padding time for the `al' and `dl' strings. Emacs -concludes that these operations take only as much time as it takes to -send the commands at whatever line speed you are using. You must -fix the termcap entry to specify, for the `al' and `dl', as much -time as the operations really take. + /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment -Currently Emacs thinks in terms of serial lines which send characters -at a fixed rate, so that any operation which takes time for the -terminal to execute must also be padded. With bit-map terminals -operated across networks, often the network provides some sort of -flow control so that padding is never needed no matter how slow -an operation is. You must still specify a padding time if you want -Emacs to realize that the operation takes a long time. This will -cause padding characters to be sent unnecessarily, but they do -not really cost much. They will be transmitted while the scrolling -is happening and then discarded quickly by the terminal. +The problem is in the Sun shared C library, not in GNU ld. -Most bit-map terminals provide commands for inserting or deleting -multiple lines at once. Define the `AL' and `DL' strings in the -termcap entry to say how to do these things, and you will have -fast output without wasted padding characters. These strings should -each contain a single %-spec saying how to send the number of lines -to be scrolled. These %-specs are like those in the termcap -`cm' string. +The solution is to install Patch-ID# 100267-03 from Sun. -You should also define the `IC' and `DC' strings if your terminal -has a command to insert or delete multiple characters. These -take the number of positions to insert or delete as an argument. +** Sunos 4.1: Undefined symbols when linking using --with-x-toolkit. -A `cs' string to set the scrolling region will reduce the amount -of motion you see on the screen when part of the screen is scrolled. +If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace, +_iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after +-lXaw in the command that links temacs. -* Your Delete key sends a Backspace to the terminal, using an AIXterm. +This problem seems to arise only when the international language +extensions to X11R5 are installed. -The solution is to include in your .Xdefaults the lines: +** SunOS: Emacs gets error message from linker on Sun. - *aixterm.Translations: #override BackSpace: string(0x7f) - aixterm*ttyModes: erase ^? +If the error message says that a symbol such as `f68881_used' or +`ffpa_used' or `start_float' is undefined, this probably indicates +that you have compiled some libraries, such as the X libraries, +with a floating point option other than the default. -This makes your Backspace key send DEL (ASCII 127). +It's not terribly hard to make this work with small changes in +crt0.c together with linking with Fcrt1.o, Wcrt1.o or Mcrt1.o. +However, the easiest approach is to build Xlib with the default +floating point option: -fsoft. -* You type Control-H (Backspace) expecting to delete characters. +** SunOS: Undefined symbols _dlopen, _dlsym and/or _dlclose. -Put `stty dec' in your .login file and your problems will disappear -after a day or two. +If you see undefined symbols _dlopen, _dlsym, or _dlclose when linking +with -lX11, compile and link against the file mit/util/misc/dlsym.c in +the MIT X11R5 distribution. Alternatively, link temacs using shared +libraries with s/sunos4shr.h. (This doesn't work if you use the X +toolkit.) -The choice of Backspace for erasure was based on confusion, caused by -the fact that backspacing causes erasure (later, when you type another -character) on most display terminals. But it is a mistake. Deletion -of text is not the same thing as backspacing followed by failure to -overprint. I do not wish to propagate this confusion by conforming -to it. +If you get the additional error that the linker could not find +lib_version.o, try extracting it from X11/usr/lib/X11/libvim.a in +X11R4, then use it in the link. -For this reason, I believe `stty dec' is the right mode to use, -and I have designed Emacs to go with that. If there were a thousand -other control characters, I would define Control-h to delete as well; -but there are not very many other control characters, and I think -that providing the most mnemonic possible Help character is more -important than adapting to people who don't use `stty dec'. +** SunOS4, DGUX 5.4.2: --with-x-toolkit version crashes when used with shared libraries. -If you are obstinate about confusing buggy overprinting with deletion, -you can redefine Backspace in your .emacs file: - (global-set-key "\b" 'delete-backward-char) -You can probably access help-command via f1. +On some systems, including Sunos 4 and DGUX 5.4.2 and perhaps others, +unexec doesn't work properly with the shared library for the X +toolkit. You might be able to work around this by using a nonshared +libXt.a library. The real fix is to upgrade the various versions of +unexec and/or ralloc. We think this has been fixed on Sunos 4 +and Solaris in version 19.29. -* Editing files through RFS gives spurious "file has changed" warnings. -It is possible that a change in Emacs 18.37 gets around this problem, -but in case not, here is a description of how to fix the RFS bug that -causes it. +** HPUX 10.20: Emacs crashes during dumping on the HPPA machine. - There was a serious pair of bugs in the handling of the fsync() system - call in the RFS server. +This seems to be due to a GCC bug; it is fixed in GCC 2.8.1. - The first is that the fsync() call is handled as another name for the - close() system call (!!). It appears that fsync() is not used by very - many programs; Emacs version 18 does an fsync() before closing files - to make sure that the bits are on the disk. +** VMS: Compilation errors on VMS. - This is fixed by the enclosed patch to the RFS server. +You will get warnings when compiling on VMS because there are +variable names longer than 32 (or whatever it is) characters. +This is not an error. Ignore it. - The second, more serious problem, is that fsync() is treated as a - non-blocking system call (i.e., it's implemented as a message that - gets sent to the remote system without waiting for a reply). Fsync is - a useful tool for building atomic file transactions. Implementing it - as a non-blocking RPC call (when the local call blocks until the sync - is done) is a bad idea; unfortunately, changing it will break the RFS - protocol. No fix was supplied for this problem. +VAX C does not support #if defined(foo). Uses of this construct +were removed, but some may have crept back in. They must be rewritten. - (as always, your line numbers may vary) +There is a bug in the C compiler which fails to sign extend characters +in conditional expressions. The bug is: + char c = -1, d = 1; + int i; - % rcsdiff -c -r1.2 serversyscall.c - RCS file: RCS/serversyscall.c,v - retrieving revision 1.2 - diff -c -r1.2 serversyscall.c - *** /tmp/,RCSt1003677 Wed Jan 28 15:15:02 1987 - --- serversyscall.c Wed Jan 28 15:14:48 1987 - *************** - *** 163,169 **** - /* - * No return sent for close or fsync! - */ - ! if (syscall == RSYS_close || syscall == RSYS_fsync) - proc->p_returnval = deallocate_fd(proc, msg->m_args[0]); - else - { - --- 166,172 ---- - /* - * No return sent for close or fsync! - */ - ! if (syscall == RSYS_close) - proc->p_returnval = deallocate_fd(proc, msg->m_args[0]); - else - { + i = d ? c : d; +The result is i == 255; the fix is to typecast the char in the +conditional expression as an (int). Known occurrences of such +constructs in Emacs have been fixed. -* Vax C compiler bugs affecting Emacs. +** Vax C compiler bugs affecting Emacs. You may get one of these problems compiling Emacs: @@ -3279,22 +3549,22 @@ causes the problem to go away. The `contents' field of a Lisp vector is an array of Lisp_Objects, so you may see the problem happening with indexed references to that. -* 68000 C compiler problems +** 68000 C compiler problems Various 68000 compilers have different problems. These are some that have been observed. -** Using value of assignment expression on union type loses. +*** Using value of assignment expression on union type loses. This means that x = y = z; or foo (x = z); does not work if x is of type Lisp_Object. -** "cannot reclaim" error. +*** "cannot reclaim" error. This means that an expression is too complicated. You get the correct line number in the error message. The code must be rewritten with simpler expressions. -** XCONS, XSTRING, etc macros produce incorrect code. +*** XCONS, XSTRING, etc macros produce incorrect code. If temacs fails to run at all, this may be the cause. Compile this test program and look at the assembler code: @@ -3314,7 +3584,7 @@ In the XCONS, etc., macros in lisp.h you must replace (a).u.val with This problem will not happen if the m-...h file for your type of machine defines NO_UNION_TYPE. That is the recommended setting now. -* C compilers lose on returning unions +*** C compilers lose on returning unions. I hear that some C compilers cannot handle returning a union type. Most of the functions in GNU Emacs return type Lisp_Object, which is @@ -3324,8 +3594,8 @@ This problem will not happen if the m-...h file for your type of machine defines NO_UNION_TYPE. -Copyright 1987,88,89,93,94,95,96,97,98,1999,2001,2002 - Free Software Foundation, Inc. +Copyright 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copying and redistribution of this file with or without modification are permitted without royalty provided this notice is preserved. @@ -3334,3 +3604,5 @@ Local variables: mode: outline paragraph-separate: "[ ]*$" end: + +arch-tag: 49fc0d95-88cb-4715-b21c-f27fb5a4764a diff --git a/etc/SERVICE b/etc/SERVICE index 38628433426..40b12ac4a01 100644 --- a/etc/SERVICE +++ b/etc/SERVICE @@ -1365,3 +1365,4 @@ A current version should be available on our web site at http://www.gnu.org. ** Please keep the entries in this file alphabetical ** +arch-tag: 1253ce32-1cbd-428a-ac36-70ed9e3999fc diff --git a/etc/TODO b/etc/TODO index 74dfb05289c..6e517f11e86 100644 --- a/etc/TODO +++ b/etc/TODO @@ -1,104 +1,214 @@ - -*-text-*- + -*-outline-*- If you are ready to start working on any of these TODO items, we appreciate your help; please write to emacs-devel@gnu.org so we can be aware that the problem is being addressed, and talk with you how to do -it best. Since Emacs is an FSF-copyrighted packages, please be +it best. Since Emacs is an FSF-copyrighted package, please be prepared to sign legal papers to transfer the copyright on your work to the FSF. -Small but important fixes needed in existing features: +* Small but important fixes needed in existing features: -* Make compile.el record the markers that point to error loci - on text properties in the error message lines. +** revert-buffer should eliminate overlays and the mark. -Important features: +** erase-buffer should perhaps disregard read-only properties of text. -* Provide user-friendly ways to list all available font families, - display a font as a sample, etc. [fx is looking at multilingual - font selection for Emacs 22.] +** Make occur correctly handle matches that span more than one line, + as well as overlapping matches. -* Program Enriched mode to read and save in RTF. [Is there actually a - decent single definition of RTF?] +** Fix the kill/yank treatment of invisible text. At the moment, + invisible text is placed in the kill-ring, so that the contents of + the ring may not correspond to the text as displayed to the user. + It ought to be possible to omit text which is invisible (due to a + text-property, overlay, or selective display) from the kill-ring. -* Implement something better than the current Refill mode. This +** Change the way define-minor-mode handles autoloading. + It should not generate :require. Or :require in defcustom + should not be recorded in the user's custom-set-variables call. + +** The buttons at the top of a custom buffer should not omit + variables whose values are currently hidden. + +** Clean up the variables in browse-url. Perhaps use a shell command string to + specify the browser instead of the mushrooming set of functions. + See also ESR's proposal for a BROWSER environment variable + . + +** Enhance scroll-bar to handle tall line (similar to line-move). + +** Make occur handle multi-line matches cleanly with context. + +** In Custom buffers, put the option that turns a mode on or off first, + using a heuristic of some kind? + +** Define recompute-arg and recompute-arg-if for fix_command to use. + See rms message of 11 Dec 05. + +** Height returned by frame-parameter ... and height given to + make-frame does not mean the same thing. The former includes menu and + tool bar lines, the latter don't. frame-parameter should return height + without menu and tool bar lines. + +** In Emacs Info, examples of using Customize should be clickable + and they should create Custom buffers. + +** The toolbar should show keyboard equivalents in its tooltips. + +* Important features: + +** Provide user-friendly ways to list all available font families, + list fonts, display a font as a sample, etc. [fx is looking at + multilingual font selection for the Unicode branch of Emacs.] + +** Rewrite the face code to be simpler, clearer and faster. + +** Program Enriched mode to read and save in RTF. [Is there actually a + decent single definition of RTF? Maybe see info at + http://latex2rtf.sourceforge.net/.] This task seems to be addressed + by http://savannah.nongnu.org/projects/emacs-rtf/, which is still in + very early stages. + +** Implement something better than the current Refill mode. This probably needs some primitive support. -* Implement primitive and higher-level functions to allow filling +** Add a command to make a "Local Variables" section in the current buffer + and/or add a variable to the list. + +** Implement primitive and higher-level functions to allow filling properly with variable-pitch faces. -* Implement a smoother vertical scroll facility, one that allows - C-v to scroll through a tall image. +** Implement a smoother vertical scroll facility, one that allows + C-v to scroll through a tall image. The primitive operations + posn-at-point and posn-at-x-y should now make it doable in elisp. + +** Implement intelligent search/replace, going beyond query-replace + (see http://graphics.csail.mit.edu/~rcm/chi04.pdf). -* Implement other text formatting properties. -** Footnotes that can appear either in place or at the end of the page. -** text property that says "don't break line in middle of this". +** Implement other text formatting properties. +*** Footnotes that can appear either in place or at the end of the page. +*** text property that says "don't break line in middle of this". Don't break the line between two characters that have the same value of this property. -** Discretionary hyphens that are not visible when they are at end of line. +*** Discretionary hyphens that are not visible when they are at end of line. + +** Internationalize Emacs's messages. + +** Install mmc@maruska.dyndns.org's no-flicker change. -* Make movemail work with IMAP. +** Add a "current vertical pixel level" value that goes with point, + so that motion commands can also move through tall images. + This value would be to point as window-vscroll is to window-start. -* Internationalize Emacs's messages. [Note that this is of limited - use until the menus can display multilingual text. It also doesn't - address important issues like using the names of symbols essentially - as documentation, e.g. in command names and Custom. -- fx] +** Address internationalization of symbols names essentially + as documentation, e.g. in command names and Custom. -* Make the Lucid menu widget display multilingual text. [This +** Make the Lucid menu widget display multilingual text. [This probably needs to be done from actual Emacs buffers, either directly in the menu or by rendering in an unmapped window and copying the - pixels. Note that the relevant Xlib functions assume a specific - locale; that isn't good enough even if X can render the arbitrary - text, which it often can't as far as I can tell. -- fx] - -* Remove the limitation that window and frame widths and heights can + pixels. The current code assumes a specific locale; that isn't good + enough even if X can render the arbitrary text] [The gtk + port now displays multilingual text in menus, but only insofar as + Emacs can encode it as utf-8 and gtk can display the result.] + Maybe making Lucid menus work like Gtk's (i.e. just force utf-8) is good + enough now that Emacs can encode most chars into utf-8. + +** Remove the limitation that window and frame widths and heights can be only full columns/lines. -* Move fringe to be displayed between display margins and text area. - [KFS is looking into this]. +* Other features we would like: + +** Create a category of errors called `process-error' + for some or all errors associated with using subprocesses. + +** Maybe reinterpret `parse-error' as a category of errors + and put some other errors under it. + +** A function to tell you the argument pattern of functions. + See `function-arity' in http://www.loveshack.ukfsn.org/emacs/fx-misc.el. + +** Make byte-compile warn when a doc string is too wide. + +** A function to check for customizable options that have been + set but not saved, and ask the user whether to save them. + This could go in kill-emacs-query-functions, to remind people + to save their changes. If the user says yes, show them + in a Custom buffer using customize-customized. + +** Emacs Lisp mode could put an overlay on the defun for every + function that has advice. The overlay could have `after-text' like " + [Function has advice]". It might look like + (defun foo [Function has advice] (x y) + The overlay could also be a button that you could use to view the advice. + +** ange-ftp +*** understand sftp + This is hard to make work because sftp doesn't print status + messages. + +*** Use MLS for ange-ftp-insert-directory if a list of files is specified. -* Set fringe widths per-window/per-buffer. +** Ability to map a key, including all modified-combinations. + E.g map mouse-4 to wheel-up as well as M-mouse-4 -> M-wheel-up + M-C-mouse-4 -> M-C-wheel-up, H-S-C-M-s-double-mouse-4 -> + H-S-C-M-s-double-wheel-up, ... -* Make fringe bitmaps user configurable. Maybe add ability to add - additional bitmaps to the fringe from lisp. +** Beefed-up syntax-tables. +*** recognize multi-character syntactic entities like `begin' and `end'. +*** nested string-delimiters (for Postscript's (foo(bar)baz) strings). +*** support for infix operators (with precedence). +*** support for the $ (paired delimiter) in parse-partial-sexp. +*** support for hook-chars whose effect on the parsing-state is specified + by elisp code. Thus a char could both close a string and open a comment + at the same time and do it in a context-sensitive way. +*** ability to add mode-specific data to the partial-parse-state. -Other features we would like: +** Add a way to convert a keyboard macro to equivalent Lisp code. -* Have a command suggestion help system that recognizes patterns +** Have a command suggestion help system that recognizes patterns of commands which could be replaced with a simpler common command. It should not make more than one suggestion per 10 minutes. -* Add a way to define input methods by computing them (when first used) +** Add a way to define input methods by computing them (when first used) from other input methods. Then redefine C-x 8 to use a user-selected input method, with the default being the union of latin-1-prefix and latin-1-postfix. -* Implement a clean way to use different major modes for - different parts of a buffer. +** Implement a clean way to use different major modes for + different parts of a buffer. This could be useful in editing + Bison input files, for instance, or other kinds of text + where one language is embedded in another language. See + http://www.loveshack.ukfsn.org/emacs/multi-mode.el and also + mmm-mode, as reference for approaches took by others. -* Give start-process the ability to direct standard-error +** Arrange a way for an input method to return the first character + immediately, then replace it later. So that C-s a with + input method latin-1-postfix would immediately search for an a. + +** Give start-process the ability to direct standard-error output to a different filter. -* Make desktop.el save the "frame configuration" of Emacs (in some +** Make desktop.el save the "frame configuration" of Emacs (in some useful sense). -* Give desktop.el a feature to switch between different named +** Give desktop.el a feature to switch between different named desktops. -* Replace finder.el with something that generates an Info file +** Replace finder.el with something that generates an Info file which gives the same information through a menu structure. [Dave Love started on this.] -* Implement a variant of uncompress.el or jka-compr.el that works with - GNU Privacy Guard for encryption. [Code exists but isn't assigned.] +** Add a cpio mode, more or less like tar mode. -* Save undo information in files, and reload it when needed - for undoing. +** Implement a variant of uncompress.el or jka-compr.el that works with + GNU Privacy Guard for encryption. [Code exists but isn't assigned. + See the Gnus development sources for assigned code concerning GPG + use with mail, which is probably a good start.] See also + http://www.loveshack.ukfsn.org/emacs/auto-crypt.tgz. -* Merge the Emacs regex.c with the Glibc regex.c. - They split off a few years ago through negligence. +** Save undo information in special temporary files, and reload it + when needed for undoing. This could extend undo capacity. -* Change the Windows NT menu code +** Change the Windows NT menu code so that it handles the deep_p argument and avoids regenerating the whole menu bar menu tree except when the user tries to use the menubar. @@ -108,90 +218,80 @@ Other features we would like: thread has processed the MENU_BAR_ACTIVATE_EVENT and regenerated the whole menu bar. In the mean time, it should process other messages. -* Get some major packages installed: W3/url (development version needs - significant work), PSGML, Mule-UCS. Check the assignments file for other +** Get some major packages installed: W3 (development version needs + significant work), PSGML. Check the assignments file for other packages which might go in and have been missed. -* Make keymaps a first-class Lisp object (this means a rewrite of +** Make keymaps a first-class Lisp object (this means a rewrite of keymap.c). What should it do apart from being opaque ? multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? what else ? -* Provide real menus on ttys. The MS-DOS implementation can serve as +** Provide real menus on ttys. The MS-DOS implementation can serve as an example how to do part of this. -* Implement popular parts of the rest of the CL functions as compiler +** Implement popular parts of the rest of the CL functions as compiler macros in cl-macs. -* Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, +** Make compiler warnings about functions that might be undefined at run time + smarter, so that they know which files are required by the file being + compiled and don't warn about functions defined in them. + +** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, but it's a valuable feature worth making more general. -* Support simultaneous tty and X frames. +** Support simultaneous tty and X frames. [See the multi-tty branch of Emacs + at http://lorentey.hu/project/emacs.] -* Provide MIME support for Rmail using the Gnus MIME library. [Maybe +** Provide MIME support for Rmail using the Gnus MIME library. [Maybe not now feasible, given Gnus maintenance decisions. fx looked at this and can say where some of the problems are.] -* Eliminate the storm of warnings concerning char/unsigned char - mismatches that we get with proprietary compilers on various systems. - They make it difficult to spot the important warnings. +** Eliminate the storm of warnings concerning char/unsigned char + mismatches that we get with GCC 4.x and proprietary compilers on + various systems. They make it difficult to spot the important + warnings. -* Fix anything necessary to use `long long' EMACS_INTs with GCC. +** Fix anything necessary to use `long long' EMACS_INTs with GCC. -* Split out parts of lisp.h and generate Makefile dependencies +** Split out parts of lisp.h and generate Makefile dependencies automatically. -* Update the FAQ. +** Update the FAQ. -* Allow auto-compression-mode to use zlib calls if zlib is available. +** Allow auto-compression-mode to use zlib calls if zlib is available. [It's required for PNG, so may be linked anyhow.] -* Add a --pristine startup flag which does -q --no-site-file plus +** Add a --pristine startup flag which does -q --no-site-file plus ignoring X resources (Doze equivalents?) and most of the environment. What should not be ignored needs consideration. -* Investigate using the language environment (or locale?) to set up - more things, such as the default Ispell dictionary, calendar - holidays, quoting characters?,... - -* Improve the GC (generational, incremental). (We may be able to use - the Boehm collector.) [fx is working on this.] - -* Check what hooks would help Emacspeak -- see the defadvising in W3. +** Improve the GC (generational, incremental). (We may be able to use + the Boehm collector.) [See the Boehm-GC branch in CVS for work on + this.] -* Implement some variety of (non-gtk) drag-and-drop support under X. - Using libdnd might be a good start. +** Check what hooks would help Emacspeak -- see the defadvising in W3. -* Add horizontal scroll bars. +** Add horizontal scroll bars. -* Provide an optional feature which computes a scroll bar slider's +** Provide an optional feature which computes a scroll bar slider's size and its position from lines instead of characters. -* Make the Custom themes support do useful things. - -* Adapt the gnuserv/gnudoit features for server/emacsclient. - -* Investigate using GNU Lightning or similar system for incremental - compilation of selected bytecode functions to subrs. Converting CCL - programs to native code is probably the first thing to try, though. - -* Add a feature to Info similar to "info --apropos SUBJECT". - -* Add support for SVG (Scalable Vector Graphics) rendering to +** Add support for SVG (Scalable Vector Graphics) rendering to Emacs. -* Allow unknown image types to be rendered via an external program +** Allow unknown image types to be rendered via an external program converting them to, say, PBM (in the same way as PostScript?). -* Allow displaying an X window from an external program in a buffer, +** Allow displaying an X window from an external program in a buffer, e.g. to render graphics from Java applets. [gerd and/or wmperry thought this was feasible.] -* Allow images (not just text) in the margin to be mouse-sensitive. +** Allow images (not just text) in the margin to be mouse-sensitive. (Requires recursing through display properties). Provide some way to simulate mouse-clicks on marginal text without a mouse. -* Implement Lisp functions to determine properly whether a character +** Implement Lisp functions to determine properly whether a character is displayable (particularly needed in XFree 4, sigh). Use it to define useful glyphs that may be displayed as images or unicodes (with ASCIIfied fallback via latin1-disp). Examples include @@ -199,37 +299,42 @@ Other features we would like: tree displays generally, mode-line mail indicator. [See work done already for Emacs 22 and consult fx.] -* Do something to make rms happy with fx's dynamic loading, and use it +** Do something to make rms happy with fx's dynamic loading, and use it to implement things like auto-loaded buffer parsers and database access in cases which need more than Lisp. -* Extend ps-print to deal with multiple font sizes, images, and extra +** Extend ps-print to deal with multiple font sizes, images, and extra encodings. -* Provide portable undumping using mmap (per gerd design). +** Provide portable undumping using mmap (per gerd design). -* Replace gmalloc.c with the modified Doug Lea code from the current - GNU libc so that the special mmapping of buffers can be removed -- - that apparently loses under Solaris, at least. [fx has mostly done - this.] +** Make byte-compile avoid binding an expanded defsubst's args +when the body only calls primitives. -* Use the XIE X extension, if available, for image display. +** Use the XIE X extension, if available, for image display. -* Add support for rendering antialiased text, probably using - XRender/Freetype. +** Make monochrome images display using the foreground and background + colors of the applicable faces. -* Rewrite make-docfile to be clean and maintainable. +** Face remapping. -* Port the conservative stack marking code of Emacs' garbage collector - to more systems, so that we can completely get rid of GCPROs. +** Optionally make the cursor a little thinner at the end of a line + or the end of the buffer. -* Reorder defcustom's in each package so that the more important +** Add support for rendering antialiased text, probably using + XRender/Freetype. + +** Port the conservative stack marking code of Emacs' garbage collector + to more systems, so that we can completely get rid of GCPROs. Note + that Boehm garbage collector provides this. + +** Reorder defcustom's in each package so that the more important options come first in the Customize buffers. This could be done by either rearranging the file (since options are shown in the order they appear in the *.el files), or by adding a few :set-after attributes. -* Maybe document the features of libraries missing from the manual (or +** Maybe document the features of libraries missing from the manual (or ancillary manuals, including the Lisp manual in some cases). This is not worth doing for all of these packages and we need not aim for completeness, but some may be worth documenting. @@ -250,17 +355,95 @@ Other features we would like: cvs-status (should be described in PCL-CVS manual); other progmodes, probably in separate manual. -* Provide a means to extract image-relative coordinates from mouse - clicks on images. (Needed for W3, at least.) Also useful for W3 - and Gnus: allow images to scroll properly. - -* Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap +** Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap the XPMs so that the colour versions work generally. (Requires care with the colour used for the transparent regions.) -* Convenient access to the `values' variable. It would be nice to have an +** Convenient access to the `values' variable. It would be nice to have an interface that would show you the printed reps of the elements of the list in a menu, let you select one of the values, and put it into some other variable, without changing the value of `values'. -* Fix skip-chars-{for,back}ward to allow character classes. +** (Controlled by a flag) make open and close syntax match exactly, + i.e. `(' doesn't match `]'. + +** Specify parameter ID-FORMAT in all calls to `file-attributes' and + `directory-files-and-attributes' where attributes UID or GID are used. + Whenever possible, use value 'string. + When done, change meaning of default value from 'integer to 'string. + If value 'integer is used nowhere, remove the parameter ID-FORMAT from + the definition of `file-attributes' and `directory-files-and-attributes' + and from the calls. + +** Make language-info-alist customizable. Currently a user can customize + only the variable `current-language-environment'. + +** Improve language environment handling so that Emacs can fit + better to a users locale. Currently Emacs uses utf-8 language + environment for all utf-8 locales, thus a user in ja_JP.UTF-8 locale + are also put in utf-8 lang. env. In such a case, it is + better to use Japanese lang. env. but prefer utf-8 coding system. + +** Enhance locale handling: handle language, territory and charset + orthogonally and de-emphasize language environments. Use the locale + to set up more things, such as fontsets, the default Ispell + dictionary, diary format, calendar holidays and display, quoting + characters and phrase boundaries, sentence endings, collation for + sorting (at least for unicodes), HTTP Accept-language, patterns for + directory listings and compilation messages, yes-or-no replies, + common menu items when the toolkit supports it ... `locale-info' + needs extending for LC_COLLATE &c. [fx started on this.] + +** Eliminate the current restriction on header printing by ps-print. + Currently, a header can contain only single 1-byte charset in + addition to ASCII. + +** In ps-print, provide an user friendly interface to specify fonts. + +** OpenType font support for various complex scripts (e.g. Devanagari). + As X protocal doesn't provide a way to access OpenType Layout Tables + in a OpenType font of a server side, we need a way to utilize local + fonts (perhaps by directly using the Freetype library or indirectly + via Xft library). + +** Enhance word boundary detection for such a script that doesn't use + space at word boundary (e.g. Thai). + +** Implement interface programs with major Japanese conversion server + in lib-src so that they can be used from the input method + "japanese". Currently, most Japanese users are using external + packages (e.g. tamago, anthy) or an input method via XIM. + +** Provide the toolbar on ttys. This could map a bit like tmm-menubar + for the menubar and buttons could look a bit like those used by customize. + +** Improve Help buffers: Change the face of previously visited links (like + Info, but also with regard to namespace), add a forward button to make the + Help buffer more browser like and gives the value of lisp expressions + e.g auto-mode-alist, the right face. [nickrob@snap.net.nz has a patch + for this for inclusion after 22.1]. + +* Internal changes + +** Replace gmalloc.c with the modified Doug Lea code from the current + GNU libc so that the special mmapping of buffers can be removed -- + that apparently loses under Solaris, at least. [fx has mostly done + this.] + +** Rewrite make-docfile to be clean and maintainable. + +** Add an inferior-comint-minor-mode to capture the common set of operations + offered by major modes that offer an associated inferior + comint-derived mode. I.e. basically make cmuscheme.el/inf-lisp.el generic. + For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode, + haskell-mode, tuareg-mode, ... + +* Other known bugs: + +** a two-char comment-starter whose two chars are symbol constituents will +not be noticed if it appears within a word. + +** Fix unexelf.c to handle the .data.rel and .data.rel.local + sections made by GCC 3.4 on IRIX. + +;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036 diff --git a/etc/TUTORIAL b/etc/TUTORIAL index d2aaf79e9ce..0df9a6f2711 100644 --- a/etc/TUTORIAL +++ b/etc/TUTORIAL @@ -1,5 +1,4 @@ -You are looking at the Emacs tutorial. See end for copying conditions. -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. +Emacs tutorial. See end for copying conditions. Emacs commands generally involve the CONTROL key (sometimes labeled CTRL or CTL) or the META key (sometimes labeled EDIT or ALT). Rather than @@ -259,9 +258,9 @@ If you type one of the disabled commands, Emacs displays a message saying what the command was, and asking you whether you want to go ahead and execute the command. -If you really want to try the command, type Space in answer to the -question. Normally, if you do not want to execute the disabled -command, answer the question with "n". +If you really want to try the command, type (the Space bar) in +answer to the question. Normally, if you do not want to execute the +disabled command, answer the question with "n". >> Type C-x C-l (which is a disabled command), then type n to answer the question. @@ -352,27 +351,27 @@ You've now learned the most basic way of typing something in Emacs and correcting errors. You can delete by words or lines as well. Here is a summary of the delete operations: - delete the character just before the cursor - C-d delete the next character after the cursor + Delete the character just before the cursor + C-d Delete the next character after the cursor - M- kill the word immediately before the cursor - M-d kill the next word after the cursor + M- Kill the word immediately before the cursor + M-d Kill the next word after the cursor - C-k kill from the cursor position to end of line - M-k kill to the end of the current sentence + C-k Kill from the cursor position to end of line + M-k Kill to the end of the current sentence Notice that and C-d vs M- and M-d extend the parallel started by C-f and M-f (well, is not really a control character, but let's not worry about that). C-k and M-k are like C-e and M-e, sort of, in that lines are opposite sentences. -You can also kill any part of the buffer with one uniform method. -Move to one end of that part, and type C-@ or C-SPC (either one). -(SPC is the Space bar.) Move to the other end of that part, and type -C-w. That kills all the text between the two positions. +You can also kill any part of the text with one uniform method. Move +to one end of that part, and type C-@ or C- (either one). ( +is the Space bar.) Move to the other end of that part, and type C-w. +That kills all the text between the two positions. >> Move the cursor to the Y at the start of the previous paragraph. ->> Type C-SPC. Emacs should display a message "Mark set" +>> Type C-. Emacs should display a message "Mark set" at the bottom of the screen. >> Move the cursor to the n in "end", on the second line of the paragraph. @@ -401,9 +400,9 @@ lines and their newlines; typing C-k twice would not do that. Bringing back killed text is called "yanking". (Think of it as yanking back, or pulling back, some text that was taken away.) You can yank the killed text either at the same place where it was killed, -or at some other place in the buffer, or even in a different file. -You can yank the same text several times; that makes multiple copies -of it. +or at some other place in the text you are editing, or even in a +different file. You can yank the same text several times; that makes +multiple copies of it. The command for yanking is C-y. It reinserts the last killed text, at the current cursor position. @@ -638,11 +637,12 @@ the X (eXtend) command. This comes in two flavors: M-x Named command eXtend. Followed by a long name. These are commands that are generally useful but used less than the -commands you have already learned about. You have already seen two of -them: the file commands C-x C-f to Find and C-x C-s to Save. Another -example is the command to end the Emacs session--this is the command -C-x C-c. (Do not worry about losing changes you have made; C-x C-c -offers to save each changed file before it kills the Emacs.) +commands you have already learned about. You have already seen a few +of them: the file commands C-x C-f to Find and C-x C-s to Save, for +example. Another example is the command to end the Emacs +session--this is the command C-x C-c. (Do not worry about losing +changes you have made; C-x C-c offers to save each changed file before +it kills the Emacs.) C-z is the command to exit Emacs *temporarily*--so that you can go back to the same Emacs session afterward. @@ -666,12 +666,14 @@ with C-z instead of exiting Emacs. There are many C-x commands. Here is a list of the ones you have learned: - C-x C-f Find file. - C-x C-s Save file. - C-x C-b List buffers. - C-x C-c Quit Emacs. - C-x 1 Delete all but one window. - C-x u Undo. + C-x C-f Find file + C-x C-s Save file + C-x s Save some buffers + C-x C-b List buffers + C-x b Switch buffer + C-x C-c Quit Emacs + C-x 1 Delete all but one window + C-x u Undo Named eXtended commands are commands which are used even less frequently, or commands which are used only in certain modes. An @@ -727,18 +729,18 @@ shows them to you at the bottom of the screen in an area called the The line immediately above the echo area is called the "mode line". The mode line says something like this: ---:** TUTORIAL (Fundamental)--L670--58%---------------- +--:** TUTORIAL 63% L749 (Fundamental)----------------------- This line gives useful information about the status of Emacs and the text you are editing. You already know what the filename means--it is the file you have -found. -NN%-- indicates your current position in the text; it means -that NN percent of the text is above the top of the screen. If the -top of the file is on the screen, it will say --Top-- instead of ---00%--. If the bottom of the text is on the screen, it will say ---Bot--. If you are looking at text so small that all of it fits on -the screen, the mode line says --All--. +found. NN% indicates your current position in the text; it means that +NN percent of the text is above the top of the screen. If the top of +the file is on the screen, it will say "Top" instead of " 0%". If the +bottom of the text is on the screen, it will say "Bot". If you are +looking at text so small that all of it fits on the screen, the mode +line says "All". The L and digits indicate position in another way: they give the current line number of point. @@ -767,6 +769,7 @@ switch to Fundamental mode. If you are going to be editing human-language text, such as this file, you should probably use Text Mode. + >> Type M-x text mode. Don't worry, none of the Emacs commands you have learned changes in @@ -897,7 +900,7 @@ window on the screen at the same time. Both windows display this tutorial. The cursor stays in the top window. >> Type C-M-v to scroll the bottom window. - (If you do not have a real META key, type ESC C-v.) + (If you do not have a real META key, type C-v.) >> Type C-x o ("o" for "other") to move the cursor to the bottom window. >> Use C-v and M-v in the bottom window to scroll it. @@ -921,10 +924,10 @@ META key, you can type C-M-v by holding down both CONTROL and META while typing v. It does not matter whether CONTROL or META "comes first," because both of these keys act by modifying the characters you type. -If you do not have a real META key, and you use ESC instead, the order -does matter: you must type ESC followed by CONTROL-v, because -CONTROL-ESC v will not work. This is because ESC is a character in -its own right, not a modifier key. +If you do not have a real META key, and you use instead, the +order does matter: you must type followed by CONTROL-v, because +CONTROL- v will not work. This is because is a character +in its own right, not a modifier key. >> Type C-x 1 (in the top window) to get rid of the bottom window. @@ -955,11 +958,12 @@ level". This is indicated by square brackets in the mode line, surrounding the parentheses around the major mode name. For example, you might see [(Fundamental)] instead of (Fundamental). -To get out of the recursive editing level, type ESC ESC ESC. That is -an all-purpose "get out" command. You can also use it for eliminating -extra windows, and getting out of the minibuffer. +To get out of the recursive editing level, type . +That is an all-purpose "get out" command. You can also use it for +eliminating extra windows, and getting out of the minibuffer. ->> Type M-x to get into a minibuffer; then type ESC ESC ESC to get out. +>> Type M-x to get into a minibuffer; then type to + get out. You cannot use C-g to get out of a recursive editing level. This is because C-g is used for canceling commands and arguments WITHIN the @@ -1099,7 +1103,8 @@ starting with the one written by Stuart Cracraft for the original Emacs. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -1116,3 +1121,5 @@ The conditions for copying Emacs itself are more complex, but in the same spirit. Please read the file COPYING and then do give copies of GNU Emacs to your friends. Help stamp out software obstructionism ("ownership") by using, writing, and sharing free software! + +;;; arch-tag: a0f84628-777f-4238-8865-451a73167f55 diff --git a/etc/TUTORIAL.bg b/etc/TUTORIAL.bg index 5741a5bea25..8f51458381f 100644 --- a/etc/TUTORIAL.bg +++ b/etc/TUTORIAL.bg @@ -1,1174 +1,1176 @@ -÷ÉÅ ÇÌÅÄÁÔÅ ×ß×ÅÄÅÎÉÅÔÏ ÎÁ åÍÁËÓ. õÓÌÏ×ÉÑÔÁ ÚÁ ËÏÐÉÒÁÎÅ ÓÁ × ËÒÁÑ ÎÁ ÔÅËÓÔÁ. -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. - -ëÏÍÁÎÄÉÔÅ ÎÁ åÍÁËÓ ÎÁÊ-ÞÅÓÔÏ ×ËÌÀÞ×ÁÔ ËÌÁ×ÉÛÉÔÅ CONTROL (ÐÏÎÑËÏÇÁ -ÏÔÂÅÌÑÚ×ÁÎ Ó CTRL ÉÌÉ CTL) É META (ÐÏÎÑËÏÇÁ ÏÔÂÅÌÑÚ×ÁÎ Ó EDIT ÉÌÉ -ALT). ÷ÍÅÓÔÏ ÄÁ ÓÅ ÉÚÐÉÓ×ÁÔ Ó ÐßÌÎÏ ÉÍÅ ×ÓÅËÉ ÐßÔ, ÎÉÅ ÝÅ ÉÚÐÏÌÚ×ÁÍÅ -ÓÌÅÄÎÉÔÅ ÓßËÒÁÝÅÎÉÑ: - - C-<ÚÎÁË> ÏÚÎÁÞÁ×Á ÚÁÄßÒÖÁÎÅ ÎÁ ËÌÁ×ÉÛÁ CONTROL ÄÏËÁÔÏ ÓÅ - ÎÁÔÉÓËÁ ÚÎÁËÁ <ÚÎÁË>. ôÁËÁ C-f ÝÅ ÏÚÎÁÞÁ×Á: ÄÏËÁÔÏ - ÓÅ ÚÁÄßÒÖÁ ÎÁÔÉÓÎÁÔ ËÌÁ×ÉÛÁ CONTROL ÓÅ ÎÁÔÉÓËÁ f. - M-<ÚÎÁË> ÏÚÎÁÞÁ×Á ÚÁÄßÒÖÁÎÅ ÎÁÔÉÓÎÁÔ ÎÁ ËÌÁ×ÉÛÁ META (ÉÌÉ EDIT - ÉÌÉ ALT) ÄÏËÁÔÏ ÓÅ ÎÁÔÉÓËÁ <ÚÎÁË>. áËÏ ÎÑÍÁ ËÌÁ×ÉÛ - META, EDIT ÉÌÉ ALT, ×ÍÅÓÔÏ ÎÅÇÏ ÎÁÔÉÓÎÅÔÅ É ÏÔÐÕÓÎÅÔÅ - ËÌÁ×ÉÛÁ ESC É ÓÌÅÄ ÔÏ×Á ×ß×ÅÄÅÔÅ <ÚÎÁË>. îÉÅ - ÚÁÐÉÓ×ÁÍÅ ÚÁ ÄÁ ÏÔÂÅÌÅÖÉÍ ËÌÁ×ÉÛÁ ESC. - -÷ÁÖÎÁ ÂÅÌÅÖËÁ: × ËÒÁÑ ÎÁ åÍÁËÓ ÓÅÓÉÑÔÁ ×ß×ÅÄÅÔÅ Ä×ÁÔÁ ÚÎÁËÁ C-x C-c. -úÎÁÃÉÔÅ ">>" ÏÔÌÑ×Ï ×É ÄÁ×ÁÔ ÕËÁÚÁÎÉÅ ÄÁ ÉÚÐßÌÎÉÔÅ ËÏÍÁÎÄÁ. îÁÐÒÉÍÅÒ: +Âúâåäåíèå â Emacs. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà. + +Êîìàíäèòå íà Emacs íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà +îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè +ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå +ñëåäíèòå ñúêðàùåíèÿ: + + C-<çíàê> îçíà÷àâà çàäúðæàíå íà êëàâèøà CONTROL, äîêàòî ñå + íàòèñêà çíàêà <çíàê>. Òàêà C-f ùå îçíà÷àâà: äîêàòî + ñå çàäúðæà íàòèñíàò êëàâèøà CONTROL, ñå íàòèñêà f. + M-<çíàê> îçíà÷àâà çàäúðæàíå íàòèñíàò íà êëàâèøà META (èëè EDIT, + èëè ALT), äîêàòî ñå íàòèñêà <çíàê>. Àêî íÿìà êëàâèø + META, EDIT èëè ALT, âìåñòî íåãî íàòèñíåòå è îòïóñíåòå + êëàâèøà ESC è ñëåä òîâà âúâåäåòå <çíàê>. Íèå + çàïèñâàìå , çà äà îòáåëåæèì êëàâèøà ESC. + +Âàæíà áåëåæêà: â êðàÿ íà Emacs ñåñèÿòà âúâåäåòå äâàòà çíàêà C-x C-c. +Çíàöèòå ">>" îòëÿâî âè äàâàò óêàçàíèå äà èçïúëíèòå êîìàíäà. Íàïðèìåð: <> ->> óÅÇÁ ×ß×ÅÄÅÔÅ C-v (ðÏËÁÖÉ ÓÌÅÄ×ÁÝÉÑ ÅËÒÁÎ) ÚÁ ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ ËßÍ -ÓÌÅÄ×ÁÝÉÑ ÅËÒÁÎ. - (îÁÐÒÁ×ÅÔÅ ÇÏ ÓÅÇÁ, ÚÁÄÒßÖÔÅ CONTROL ÄÏËÁÔÏ ÎÁÔÉÓËÁÔÅ v). - ïÔÓÅÇÁ ÎÁÔÁÔßË ×ÉÅ ÝÅ ÐÒÁ×ÉÔÅ ÔÏ×Á ×ÉÎÁÇÉ ËÏÇÁÔÏ ÐÒÏÞÅÔÅÔÅ - ÅËÒÁÎÁ. +>> Ñåãà âúâåäåòå C-v (Ïîêàæè ñëåäâàùèÿ åêðàí), çà äà ñå ïðèäâèæèòå êúì +ñëåäâàùèÿ åêðàí. + (Íàïðàâåòå ãî ñåãà, çàäðúæòå CONTROL, äîêàòî íàòèñêàòå v). + Îòñåãà íàòàòúê âèå ùå ïðàâèòå òîâà âèíàãè, êîãàòî ïðî÷åòåòå + åêðàíà. -úÁÂÅÌÅÖÅÔÅ, ÞÅ ÉÍÁ ÐÒÉÐÏËÒÉ×ÁÎÅ ÎÁ Ä×Á ÒÅÄÁ, ËÏÇÁÔÏ ÓÅ ÐÒÉÄ×ÉÖ×ÁÔÅ ÏÔ -ÅËÒÁÎ × ÅËÒÁÎ; ÔÏ×Á ÏÓÉÇÕÒÑ×Á ÎÑËÁË×Á ÐÒÉÅÍÓÔ×ÅÎÏÓÔ, ÔÁËÁ ÞÅ ÄÁ ÍÏÖÅÔÅ -ÐÏ-ÌÅÓÎÏ ÄÁ ÐÒÏÄßÌÖÉÔÅ Ó ÞÅÔÅÎÅÔÏ ÎÁ ÔÅËÓÔÁ. +Çàáåëåæåòå, ÷å èìà ïðèïîêðèâàíå íà äâà ðåäà, êîãàòî ñå ïðèäâèæâàòå îò +åêðàí â åêðàí; òîâà îñèãóðÿâà íÿêàêâà ïðèåìñòâåíîñò, òàêà ÷å äà ìîæåòå +ïî-ëåñíî äà ïðîäúëæèòå ñ ÷åòåíåòî íà òåêñòà. -ðßÒ×ÏÔÏ ÎÅÝÏ, ËÏÅÔÏ ÔÒÑÂ×Á ÄÁ ÚÎÁÅÔÅ, Å ËÁË ÄÁ ÓÅ ÐÒÉÄ×ÉÖ×ÁÔÅ ÏÔ ÅÄÎÏ -ÍÑÓÔÏ ÎÁ ÔÅËÓÔÁ ËßÍ ÄÒÕÇÏ. ÷ÉÅ ×ÅÞÅ ÚÎÁÅÔÅ ËÁË ÄÁ ÓÅ ÐÒÉÄ×ÉÖ×ÁÔÅ -ÅËÒÁÎ ÎÁÐÒÅÄ, Ó C-v. úÁ ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ ÅËÒÁÎ ÎÁÚÁÄ, ×ß×ÅÄÅÔÅ M-v -(ÚÁÄÒßÖÔÅ ËÌÁ×ÉÛÁ META É ÎÁÔÉÓÎÅÔÅ v, ÉÌÉ ×ß×ÅÄÅÔÅ v ÁËÏ ÎÑÍÁÔÅ -ËÌÁ×ÉÛ META, EDIT ÉÌÉ ALT). +Ïúðâîòî íåùî, êîåòî òðÿáâà äà çíàåòå, å êàê äà ñå ïðèäâèæâàòå îò åäíî +ìÿñòî íà òåêñòà êúì äðóãî. Âèå âå÷å çíàåòå êàê äà ñå ïðèäâèæâàòå +åêðàí íàïðåä, ñ C-v. Çà äà ñå ïðèäâèæèòå åêðàí íàçàä, âúâåäåòå M-v +(çàäðúæòå êëàâèøà META è íàòèñíåòå v, èëè âúâåäåòå v, àêî íÿìàòå +êëàâèø META, EDIT èëè ALT). ->> ïÐÉÔÁÊÔÅ ÓÅ ÄÁ ×ß×ÅÄÅÔÅ M-v É ÓÌÅÄ ÔÏ×Á C-v ÎÑËÏÌËÏ ÐßÔÉ. +>> Îïèòàéòå ñå äà âúâåäåòå M-v è ñëåä òîâà C-v íÿêîëêî ïúòè. -* ïâïâýåîéå +* ÎÁÎÁÙÅÍÈÅ ----------- -óÌÅÄ×ÁÝÉÔÅ ËÏÍÁÎÄÉ ÓÁ ÐÏÌÅÚÎÉ ÐÒÉ ÐßÌÎÏÅËÒÁÎÎÏ ÒÁÚÇÌÅÖÄÁÎÅ: +Ñëåäâàùèòå êîìàíäè ñà ïîëåçíè ïðè ïúëíîåêðàííî ðàçãëåæäàíå: - C-v ðÒÉÄ×ÉÖ×ÁÎÅ ÎÁÐÒÅÄ Ó ÅÄÉÎ ÅËÒÁÎ - M-v ðÒÉÄ×ÉÖ×ÁÎÅ ÎÁÚÁÄ Ó ÅÄÉÎ ÅËÒÁÎ - C-l éÚÞÉÓÔ×ÁÎÅ ÎÁ ÅËÒÁÎÁ É ÐÒÅÞÅÒÔÁ×ÁÎÅ ÎÁ ÃÅÌÉÑ ÔÅËÓÔ, - ÐÒÅÍÅÓÔ×ÁÊËÉ ÔÅËÓÔÁ ÏËÏÌÏ ËÕÒÓÏÒÁ - × ÓÒÅÄÁÔÁ ÎÁ ÅËÒÁÎÁ. - (ôÏ×Á Å CONTROL-L, ÎÅ CONTROL-1.) + C-v Ïðèäâèæâàíå íàïðåä ñ åäèí åêðàí + M-v Ïðèäâèæâàíå íàçàä ñ åäèí åêðàí + C-l Èç÷èñòâàíå íà åêðàíà è ïðå÷åðòàâàíå íà öåëèÿ òåêñò, + ïðåìåñòâàéêè òåêñòà îêîëî êóðñîðà â ñðåäàòà íà åêðàíà. + (Òîâà å CONTROL-L, íå CONTROL-1.) ->> îÁÍÅÒÅÔÅ ËÕÒÓÏÒÁ É ÓÉ ÚÁÐÏÍÎÅÔÅ ËÁËß× Å ÔÅËÓÔßÔ ÏËÏÌÏ ÎÅÇÏ. - óÌÅÄ ÔÏ×Á ×ß×ÅÄÅÔÅ C-l. - îÁÍÅÒÅÔÅ ÐÁË ËÕÒÓÏÒÁ É ×ÉÖÔÅ, ÞÅ ÓßÝÉÑÔ ÔÅËÓÔ Å ÐÁË ÏËÏÌÏ ËÕÒÓÏÒÁ. +>> Íàìåðåòå êóðñîðà è ñè çàïîìíåòå êàêúâ å òåêñòúò îêîëî íåãî. + Ñëåä òîâà âúâåäåòå C-l. + Íàìåðåòå ïàê êóðñîðà è âèæòå, ÷å ñúùèÿò òåêñò å ïàê îêîëî êóðñîðà. -íÏÖÅ ÓßÝÏ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ËÌÁ×ÉÛÉÔÅ PageUp É PageDn ÚÁ ÐÒÉÄ×ÉÖ×ÁÎÅ ÐÏ -ÅËÒÁÎÉ ÁËÏ ×ÁÛÉÑÔ ÔÅÒÍÉÎÁÌ ÇÉ ÐÒÉÔÅÖÁ×Á, ÎÏ ×ÉÅ ÍÏÖÅÔÅ ÄÁ ÒÅÄÁËÔÉÒÁÔÅ -ÐÏ-ÅÆÅËÔÉ×ÎÏ ÁËÏ ÉÚÐÏÌÚ×ÁÔÅ C-v É M-v. +Ìîæå ñúùî äà èçïîëçâàòå êëàâèøèòå PageUp è PageDown çà ïðèäâèæâàíå ïî +åêðàíè, àêî âàøèÿò òåðìèíàë ãè ïðèòåæàâà, íî âèå ìîæåòå äà ðåäàêòèðàòå +ïî-åôåêòèâíî, àêî èçïîëçâàòå C-v è M-v. -* ïóîï÷é îá õðòá÷ìåîéåôï îá ëõòóïòá +* ÎÑÍÎÂÈ ÍÀ ÓÏÐÀÂËÅÍÈÅÒÎ ÍÀ ÊÓÐÑÎÐÀ ----------------------------------- -ðÒÉÄ×ÉÖ×ÁÎÅÔÏ ÏÔ ÅËÒÁÎ ÎÁ ÅËÒÁÎ Å ÐÏÌÅÚÎÏ, ÎÏ ËÁË ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ ÄÏ -ÏÐÒÅÄÅÌÅÎÏ ÍÑÓÔÏ ×ßÔÒÅ × ÔÅËÓÔÁ ÎÁ ÅËÒÁÎÁ? +Ïðèäâèæâàíåòî îò åêðàí íà åêðàí å ïîëåçíî, íî êàê äà ñå ïðèäâèæèòå äî +îïðåäåëåíî ìÿñòî âúòðå â òåêñòà íà åêðàíà? -éÍÁ ÎÑËÏÌËÏ ÎÁÞÉÎÁ ÄÁ ÇÏ ÎÁÐÒÁ×ÉÔÅ. íÏÖÅ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ËÌÁ×ÉÛÉÔÅ -ÓÔÒÅÌËÉ, ÎÏ Å ÐÏ-ÅÆÅËÔÉ×ÎÏ ÄÁ ÄßÒÖÉÔÅ ÒßÃÅÔÅ ÓÉ × ÓÔÁÎÄÁÒÔÎÏ ÐÏÌÏÖÅÎÉÅ -É ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ËÏÍÁÎÄÉÔÅ C-p, C-b, C-f É C-n. ôÅÚÉ ÚÎÁÃÉ ÓÁ -ÅË×É×ÁÌÅÎÔÎÉ ÎÁ ÞÅÔÉÒÉÔÅ ËÌÁ×ÉÛÉ ÓÔÒÅÌËÉ, ÅÔÏ ÔÁËÁ: +Èìà íÿêîëêî íà÷èíà äà ãî íàïðàâèòå. Ìîæå äà èçïîëçâàòå êëàâèøèòå +ñòðåëêè, íî å ïî-åôåêòèâíî äà äúðæèòå ðúöåòå ñè â ñòàíäàðòíî ïîëîæåíèå +è äà èçïîëçâàòå êîìàíäèòå C-p, C-b, C-f è C-n. Òåçè çíàöè ñà +åêâèâàëåíòíè íà ÷åòèðèòå êëàâèøè ñòðåëêè, åòî òàêà: - ðÒÅÄÉÛÅÎ ÒÅÄ (Previous), C-p + Ïðåäèøåí ðåä (Previous), C-p : : - îÁÚÁÄ, C-b .... ôÅËÕÝÁ ÐÏÚÉÃÉÑ ÎÁ ËÕÒÓÏÒÁ .... îÁÐÒÅÄ, C-f + Íàçàä, C-b .... Òåêóùà ïîçèöèÿ íà êóðñîðà .... Íàïðåä, C-f (Backward) : (Forward) : - óÌÅÄ×ÁÝ ÒÅÄ (Next), C-n + Ñëåäâàù ðåä (Next), C-n ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÒÅÄÁ × ÓÒÅÄÁÔÁ ÎÁ ÔÁÚÉ ÄÉÁÇÒÁÍÁ ÉÚÐÏÌÚ×ÁÊËÉ - C-n É C-p. óÌÅÄ ÔÏ×Á ÎÁÔÉÓÎÅÔÅ C-l ÚÁ ÄÁ ×ÉÄÉÔÅ ÃÑÌÁÔÁ ÄÉÁÇÒÁÍÁ - ÃÅÎÔÒÉÒÁÎÁ ÎÁ ÅËÒÁÎÁ. +>> Ïðèäâèæåòå êóðñîðà äî ðåäà â ñðåäàòà íà òàçè äèàãðàìà, èçïîëçâàéêè + C-n è C-p. Ñëåä òîâà íàòèñíåòå C-l, çà äà âèäèòå öÿëàòà äèàãðàìà, + öåíòðèðàíà íà åêðàíà. -ýÅ ÎÁÍÅÒÉÔÅ, ÞÅ ÚÁÐÏÍÎÑÎÅÔÏ ÎÁ ÔÅÚÉ ÂÕË×É ÐÏ ÄÕÍÉÔÅ ÎÁ ÁÎÇÌÉÊÓËÉ ÎÁ -ÄÅÊÓÔ×ÉÑÔÁ, ËÏÉÔÏ ÉÚ×ßÒÛ×ÁÔ, Å ÌÅÓÎÏ: P ÚÁ Previous (ÐÒÅÄÉÛÅÎ), N ÚÁ -Next (ÓÌÅÄ×ÁÝ), B ÚÁ Backward (ÎÁÚÁÄ) É F ÚÁ Forward (ÎÁÐÒÅÄ). ÷ÉÅ ÝÅ -ÉÚÐÏÌÚ×ÁÔÅ ÔÅÚÉ ÏÓÎÏ×ÎÉ ËÏÍÁÎÄÉ ÚÁ ÐÒÉÄ×ÉÖ×ÁÎÅ ÎÁ ËÕÒÓÏÒÁ ÐÒÅÚ ÃÑÌÏÔÏ -×ÒÅÍÅ. +Ùå íàìåðèòå, ÷å çàïîìíÿíåòî íà òåçè áóêâè ïî äóìèòå íà àíãëèéñêè íà +äåéñòâèÿòà, êîèòî èçâúðøâàò, å ëåñíî: P çà Previous (ïðåäèøåí), N çà +Next (ñëåäâàù), B çà Backward (íàçàä) è F çà Forward (íàïðåä). Âèå ùå +èçïîëçâàòå òåçè îñíîâíè êîìàíäè çà ïðèäâèæâàíå íà êóðñîðà ïðåç öÿëîòî +âðåìå. ->> îÁÐÒÁ×ÅÔÅ ÎÑËÏÌËÏ C-n ÚÁ ÄÁ ÄÏ×ÅÄÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÔÏÚÉ ÒÅÄ. +>> Âúâåäåòå íÿêîëêî C-n, çà äà äîâåäåòå êóðñîðà äî òîçè ðåä. ->> ðÒÉÄ×ÉÖÅÔÅ ÓÅ × ÒÅÄÁ Ó ÎÑËÏÌËÏ C-f É ÓÌÅÄ ÔÏ×Á Ó ÎÑËÏÌËÏ C-p. - ÷ÉÖÔÅ ËÁË×Ï ÐÒÁ×É C-p, ËÏÇÁÔÏ ËÕÒÓÏÒßÔ Å × ÓÒÅÄÁÔÁ ÎÁ ÒÅÄÁ. +>> Ïðèäâèæåòå ñå â ðåäà ñ íÿêîëêî C-f è ñëåä òîâà ñ íÿêîëêî C-p. + Âèæòå êàêâî ïðàâè C-p, êîãàòî êóðñîðúò å â ñðåäàòà íà ðåäà. -÷ÓÅËÉ ÒÅÄ ÏÔ ÔÅËÓÔ ÚÁ×ßÒÛ×Á ÓßÓ ÚÎÁË ÚÁ ÎÏ× ÒÅÄ, ËÏÊÔÏ ÓÌÕÖÉ ÚÁ -ÏÔÄÅÌÑÎÅÔÏ ÎÁ ÒÅÄÁ ÏÔ ÓÌÅÄ×ÁÝÉÑ ÒÅÄ. ðÏÓÌÅÄÎÉÑÔ ÒÅÄ ×ß× ×ÁÛÉÑ ÆÁÊÌ -ÔÒÑÂ×Á ÄÁ ÉÍÁ ÚÎÁË ÚÁ ÎÏ× ÒÅÄ × ËÒÁÑ (ÎÏ åÍÁËÓ ÎÅ ÉÚÉÓË×Á ÔÁËß×, -ËÏÇÁÔÏ ÐÒÏÞÉÔÁ ÆÁÊÌÁ). +Âñåêè ðåä îò òåêñò çàâúðøâà ñúñ çíàê çà íîâ ðåä, êîéòî ñëóæè çà +îòäåëÿíåòî íà ðåäà îò ñëåäâàùèÿ ðåä. Ïîñëåäíèÿò ðåä âúâ âàøèÿ ôàéë +òðÿáâà äà èìà çíàê çà íîâ ðåä â êðàÿ (íî Emacs íå èçèñêâà òàêúâ, +êîãàòî ïðî÷èòà ôàéëà). ->> ïÐÉÔÁÊÔÅ C-b × ÎÁÞÁÌÏÔÏ ÎÁ ÒÅÄ. ôÏ×Á ÔÒÑÂ×Á ÄÁ ×É ÐÒÉÄ×ÉÖÉ × ËÒÁÑ - ÎÁ ÐÒÅÄÉÛÎÉÑ ÒÅÄ. ôÏ×Á Å ÔÁËÁ, ÚÁÝÏÔÏ ËÕÒÓÏÒßÔ ÓÅ ÐÒÉÄ×ÉÖ×Á ËßÍ - ÚÎÁËÁ ÚÁ ÎÏ× ÒÅÄ ÎÁ ÐÒÅÄÉÛÎÉÑ ÒÅÄ. +>> Îïèòàéòå C-b â íà÷àëîòî íà ðåä. Òîâà òðÿáâà äà âè ïðèäâèæè â êðàÿ + íà ïðåäèøíèÿ ðåä. Òîâà å òàêà, çàùîòî êóðñîðúò ñå ïðèäâèæâà êúì + çíàêà çà íîâ ðåä íà ïðåäèøíèÿ ðåä. -C-f ÍÏÖÅ ÄÁ ÐÒÉÄ×ÉÖ×Á ÐÒÅÚ ÚÎÁË ÚÁ ÎÏ× ÒÅÄ ÔÏÞÎÏ ËÁËÔÏ C-b. +C-f ìîæå äà ïðèäâèæâà ïðåç çíàê çà íîâ ðåä òî÷íî êàêòî C-b. ->> îÁÐÒÁ×ÅÔÅ ÎÑËÏÌËÏ C-b ÐÒÉÄ×ÉÖ×ÁÎÉÑ, ÔÁËÁ ÞÅ ÄÁ ÄÏÂÉÅÔÅ ÕÓÅÝÁÎÅ ËßÄÅ - ÓÅ ÎÁÍÉÒÁ ËÕÒÓÏÒÁ. óÌÅÄ ÔÏ×Á ÎÑËÏÌËÏ C-f ÚÁ ÄÁ ÓÅ ×ßÒÎÅÔÅ × ËÒÁÑ - ÎÁ ÒÅÄÁ. óÌÅÄ ÔÏ×Á ÏÝÅ ÎÑËÏÌËÏ C-f ÚÁ ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ ÄÏ - ÓÌÅÄ×ÁÝÉÑ ÒÅÄ. - -ëÏÇÁÔÏ ÓÅ ÐÒÉÄ×ÉÖ×ÁÔÅ ÓÌÅÄ ÇÏÒÎÉÑ ÉÌÉ ÄÏÌÎÉÑ ËÒÁÊ ÎÁ ÅËÒÁÎÁ, ÔÅËÓÔßÔ -ÏÔ×ßÄ ËÒÁÑ ÓÅ ÉÚÍÅÓÔ×Á ËßÍ ÅËÒÁÎÁ. ôÏ×Á ÓÅ ÎÁÒÉÞÁ "ÓËÒÏÌÉÒÁÎÅ". ôÏ -ÐÏÚ×ÏÌÑ×Á ÎÁ åÍÁËÓ ÄÁ ÐÒÉÄ×ÉÖ×Á ËÕÒÓÏÒÁ ËßÍ ÚÁÄÁÄÅÎÏÔÏ ÍÑÓÔÏ × ÔÅËÓÔÁ -ÂÅÚ ÄÁ ÇÏ ÉÚËÁÒ×Á ÉÚ×ßÎ ÅËÒÁÎÁ. +>> Íàïðàâåòå íÿêîëêî C-b ïðèäâèæâàíèÿ, òàêà ÷å äà äîáèåòå óñåùàíå êúäå + ñå íàìèðà êóðñîðúò. Ñëåä òîâà íÿêîëêî C-f, çà äà ñå âúðíåòå â êðàÿ + íà ðåäà. Ñëåä òîâà îùå íÿêîëêî C-f, çà äà ñå ïðèäâèæèòå äî + ñëåäâàùèÿ ðåä. + +Êîãàòî ñå ïðèäâèæâàòå ñëåä ãîðíèÿ èëè äîëíèÿ êðàé íà åêðàíà, òåêñòúò +îòâúä êðàÿ ñå èçìåñòâà êúì åêðàíà. Òîâà ñå íàðè÷à "ñêðîëèðàíå". Òî +ïîçâîëÿâà íà Emacs äà ïðèäâèæâà êóðñîðà êúì çàäàäåíîòî ìÿñòî â òåêñòà, +áåç äà ãî èçêàðâà èçâúí åêðàíà. ->> ïÐÉÔÁÊÔÅ ÓÅ ÄÁ ÐÒÉÄ×ÉÖÉÔÅ ËÕÒÓÏÒÁ ÓÌÅÄ ÄÏÌÎÉÑ ËÒÁÊ ÎÁ ÅËÒÁÎÁ Ó C-n - É ×ÉÖÔÅ ËÁË×Ï ÓÅ ÓÌÕÞ×Á. +>> Îïèòàéòå ñå äà ïðèäâèæèòå êóðñîðà ñëåä äîëíèÿ êðàé íà åêðàíà ñ C-n + è âèæòå êàêâî ñå ñëó÷âà. -áËÏ ÐÒÉÄ×ÉÖ×ÁÎÅÔÏ ÐÏ ÚÎÁÃÉ Å Ô×ßÒÄÅ ÂÁ×ÎÏ, ÍÏÖÅ ÄÁ ÐÒÏÂ×ÁÔÅ -ÐÒÉÄ×ÉÖ×ÁÎÅ ÐÏ ÄÕÍÉ. M-f (META-f) ÐÒÉÄ×ÉÖ×Á ËÕÒÓÏÒÁ ÄÕÍÁ ÎÁÐÒÅÄ, Á -M-b ÐÒÉÄ×ÉÖ×Á ÄÕÍÁ ÎÁÚÁÄ. - ->> ÷ß×ÅÄÅÔÅ ÎÑËÏÌËÏ M-f É M-b. +Àêî ïðèäâèæâàíåòî ïî çíàöè å òâúðäå áàâíî, ìîæå äà ïðîáâàòå +ïðèäâèæâàíå ïî äóìè. M-f (META-f) ïðèäâèæâà êóðñîðà äóìà íàïðåä, à +M-b ïðèäâèæâà äóìà íàçàä. + +>> Âúâåäåòå íÿêîëêî M-f è M-b. -ëÏÇÁÔÏ ÓÔÅ × ÓÒÅÄÁÔÁ ÎÁ ÄÕÍÁ, M-f ÐÒÉÄ×ÉÖ×Á × ËÒÁÑ ÎÁ ÄÕÍÁÔÁ. ëÏÇÁÔÏ -ÓÔÅ × ÐÒÁÚÎÏ ÍÑÓÔÏ ÍÅÖÄÕ ÄÕÍÉ, M-f ÐÒÉÄ×ÉÖ×Á × ËÒÁÑ ÎÁ ÓÌÅÄ×ÁÝÁÔÁ -ÄÕÍÁ. M-b ÒÁÂÏÔÉ ÐÏ ÐÏÄÏÂÅÎ ÎÁÞÉÎ × ÐÒÏÔÉ×ÏÐÏÌÏÖÎÁÔÁ ÐÏÓÏËÁ. +Êîãàòî ñòå â ñðåäàòà íà äóìà, M-f ïðèäâèæâà â êðàÿ íà äóìàòà. Êîãàòî +ñòå â ïðàçíî ìÿñòî ìåæäó äóìè, M-f ïðèäâèæâà â êðàÿ íà ñëåäâàùàòà +äóìà. M-b ðàáîòè ïî ïîäîáåí íà÷èí â ïðîòèâîïîëîæíàòà ïîñîêà. ->> ÷ß×ÅÄÅÔÅ M-f É M-b ÎÑËÏÌËÏ ÐßÔÉ, ÒÁÚÍÅÓÅÎÉ Ó C-f É C-b, ÔÁËÁ ÞÅ ÄÁ - ÍÏÖÅÔÅ ÄÁ ÎÁÂÌÀÄÁ×ÁÔÅ ÄÅÊÓÔ×ÉÅÔÏ ÎÁ M-f É M-b × ÒÁÚÌÉÞÎÉ ÍÅÓÔÁ - ×ßÔÒÅ É ÍÅÖÄÕ ÄÕÍÉÔÅ. +>> Âúâåäåòå M-f è M-b íÿêîëêî ïúòè, ðàçìåñåíè ñ C-f è C-b, òàêà ÷å äà + ìîæåòå äà íàáëþäàâàòå äåéñòâèåòî íà M-f è M-b â ðàçëè÷íè ìåñòà + âúòðå è ìåæäó äóìèòå. -úÁÂÅÌÅÖÅÔÅ ÐÒÉÌÉËÁÔÁ ÍÅÖÄÕ C-f É C-b ÏÔ ÅÄÎÁ ÓÔÒÁÎÁ, É M-f É M-b ÏÔ -ÄÒÕÇÁ. íÎÏÇÏ ÞÅÓÔÏ Meta-ÚÎÁÃÉÔÅ ÓÁ ÉÚÐÏÌÚ×ÁÎÉ ÚÁ ÄÅÊÓÔ×ÉÑ ×ßÒÈÕ -ÅÄÉÎÉÃÉ ÄÅÆÉÎÉÒÁÎÉ ÏÔ ÅÚÉËÁ (ÄÕÍÉ, ÉÚÒÅÞÅÎÉÑ, ÁÂÚÁÃÉ), ÄÏËÁÔÏ -Control-ÚÎÁÃÉÔÅ ÄÅÊÓÔ×ÁÔ ×ßÒÈÕ ÏÓÎÏ×ÎÉ ÅÄÉÎÉÃÉ, ËÏÉÔÏ ÓÁ ÎÅÚÁ×ÉÓÉÍÉ ÏÔ -ÔÏ×Á ËÁË×Ï ÒÅÄÁËÔÉÒÁÔÅ (ÚÎÁÃÉ, ÒÅÄÏ×Å É ÄÒÕÇÉ). +Çàáåëåæåòå ïðèëèêàòà ìåæäó C-f è C-b, îò åäíà ñòðàíà, è M-f è M-b, îò +äðóãà. Ìíîãî ÷åñòî Meta-çíàöèòå ñà èçïîëçâàíè çà äåéñòâèÿ âúðõó +åäèíèöè, äåôèíèðàíè îò åçèêà (äóìè, èçðå÷åíèÿ, àáçàöè), äîêàòî +Control-çíàöèòå äåéñòâàò âúðõó îñíîâíè åäèíèöè, êîèòî ñà íåçàâèñèìè îò +òîâà, êàêâî ðåäàêòèðàòå (çíàöè, ðåäîâå è äðóãè). -ôÁÚÉ ÐÒÉÌÉËÁ ÓÅ ÐÒÉÌÁÇÁ ×ßÒÈÕ ÒÅÄÏ×Å É ÉÚÒÅÞÅÎÉÑ: C-a É C-e ÐÒÉÄ×ÉÖ×ÁÔ -ÄÏ ÎÁÞÁÌÏÔÏ ÉÌÉ ËÒÁÑ ÎÁ ÒÅÄ, Á M-a É M-e ÐÒÉÄ×ÉÖ×ÁÔ ÄÏ ÎÁÞÁÌÏÔÏ É ËÒÁÑ -ÎÁ ÉÚÒÅÞÅÎÉÅ. +Òàçè ïðèëèêà ñå ïðèëàãà âúðõó ðåäîâå è èçðå÷åíèÿ: C-a è C-e ïðèäâèæâàò +äî íà÷àëîòî èëè êðàÿ íà ðåä, à M-a è M-e ïðèäâèæâàò äî íà÷àëîòî è êðàÿ +íà èçðå÷åíèå. ->> ïÐÉÔÁÊÔÅ ÎÑËÏÌËÏ C-a, Á ÓÌÅÄ ÔÏ×Á ÎÑËÏÌËÏ C-e. - ïÐÉÔÁÊÔÅ ÎÑËÏÌËÏ M-a, Á ÓÌÅÄ ÔÏ×Á ÎÑËÏÌËÏ M-e. - -÷ÉÖÔÅ ËÁË ÐÏ×ÔÁÒÑÎÅÔÏ ÎÁ C-a ÎÅ ÐÒÁ×É ÎÉÝÏ, ÄÏËÁÔÏ ÐÏ×ÔÁÒÑÎÅÔÏ ÎÁ M-a -ÐÒÏÄßÌÖÁ×Á ÐÒÉÄ×ÉÖ×ÁÎÅÔÏ Ó ÏÝÅ ÅÄÎÏ ÉÚÒÅÞÅÎÉÅ. ÷ßÐÒÅËÉ ÞÅ ÔÅÚÉ -ËÌÁ×ÉÛÎÉ ËÏÍÂÉÎÁÃÉÉ ÎÅ ÓÁ ÔÏÞÎÏ ÁÎÁÌÏÇÉÞÎÉ, ×ÓÑËÁ ÅÄÎÁ ÏÔ ÔÑÈ ÉÚÇÌÅÖÄÁ -ÅÓÔÅÓÔ×ÅÎÁ. +>> Îïèòàéòå íÿêîëêî C-a, à ñëåä òîâà íÿêîëêî C-e. + Îïèòàéòå íÿêîëêî M-a, à ñëåä òîâà íÿêîëêî M-e. + +Âèæòå êàê ïîâòàðÿíåòî íà C-a íå ïðàâè íèùî, äîêàòî ïîâòàðÿíåòî íà M-a +ïðîäúëæàâà ïðèäâèæâàíåòî ñ îùå åäíî èçðå÷åíèå. Âúïðåêè ÷å òåçè +êëàâèøíè êîìáèíàöèè íå ñà òî÷íî àíàëîãè÷íè, âñÿêà åäíà îò òÿõ èçãëåæäà +åñòåñòâåíà. -ðÏÌÏÖÅÎÉÅÔÏ ÎÁ ËÕÒÓÏÒÁ × ÔÅËÓÔÁ ÓÅ ÎÁÒÉÞÁ ÓßÝÏ "ÔÏÞËÁ". -ðÅÒÅÆÒÁÚÉÒÁÎÏ, ËÕÒÓÏÒßÔ ÐÏËÁÚ×Á ÎÁ ÅËÒÁÎÁ ËßÄÅ Å ÒÁÚÐÏÌÏÖÅÎÁ ÔÏÞËÁÔÁ × -ÔÅËÓÔÁ. +Ïîëîæåíèåòî íà êóðñîðà â òåêñòà ñå íàðè÷à ñúùî "òî÷êà". +Ïåðåôðàçèðàíî, êóðñîðúò ïîêàçâà íà åêðàíà êúäå å ðàçïîëîæåíà òî÷êàòà â +òåêñòà. -åÔÏ ÏÂÏÂÝÅÎÉÅ ÎÁ ÐÒÏÓÔÉÔÅ ÄÅÊÓÔ×ÉÑ Ä×ÉÖÅÝÉ ËÕÒÓÏÒÁ, ×ËÌÀÞÉÔÅÌÎÏ -ÐÒÉÄ×ÉÖ×ÁÝÉÔÅ ÐÏ ÄÕÍÁ É ÉÚÒÅÞÅÎÉÅ: +Åòî îáîáùåíèå íà ïðîñòèòå äåéñòâèÿ, äâèæåùè êóðñîðà, âêëþ÷èòåëíî +ïðèäâèæâàùèòå ïî äóìà è èçðå÷åíèå: - C-f ðÒÉÄ×ÉÖ×Á ÎÁÐÒÅÄ Ó ÅÄÉÎ ÚÎÁË - C-b ðÒÉÄ×ÉÖ×Á ÎÁÚÁÄ Ó ÅÄÉÎ ÚÎÁË + C-f Ïðèäâèæâà íàïðåä ñ åäèí çíàê + C-b Ïðèäâèæâà íàçàä ñ åäèí çíàê - M-f ðÒÉÄ×ÉÖ×Á ÎÁÐÒÅÄ Ó ÅÄÎÁ ÄÕÍÁ - M-b ÐÒÉÄ×ÉÖ×Á ÎÁÚÁÄ Ó ÅÄÎÁ ÄÕÍÁ + M-f Ïðèäâèæâà íàïðåä ñ åäíà äóìà + M-b ïðèäâèæâà íàçàä ñ åäíà äóìà - C-n ðÒÉÄ×ÉÖ×Á ÄÏ ÓÌÅÄ×ÁÝÉÑ ÒÅÄ - C-p ðÒÉÄ×ÉÖ×Á ÄÏ ÐÒÅÄÉÛÎÉÑ ÒÅÄ + C-n Ïðèäâèæâà äî ñëåäâàùèÿ ðåä + C-p Ïðèäâèæâà äî ïðåäèøíèÿ ðåä - C-a ðÒÉÄ×ÉÖ×Á ÄÏ ÎÁÞÁÌÏÔÏ ÎÁ ÒÅÄ - C-e ðÒÉÄ×ÉÖ×Á ÄÏ ËÒÁÑ ÎÁ ÒÅÄ + C-a Ïðèäâèæâà äî íà÷àëîòî íà ðåä + C-e Ïðèäâèæâà äî êðàÿ íà ðåä - M-a ðÒÉÄ×ÉÖ×Á ÄÏ ÎÁÞÁÌÏÔÏ ÎÁ ÉÚÒÅÞÅÎÉÅ - M-e ðÒÉÄ×ÉÖ×Á ÄÏ ËÒÁÑ ÎÁ ÉÚÒÅÞÅÎÉÅ + M-a Ïðèäâèæâà äî íà÷àëîòî íà èçðå÷åíèå + M-e Ïðèäâèæâà äî êðàÿ íà èçðå÷åíèå ->> óÅÇÁ ÏÐÉÔÁÊÔÅ ×ÓÉÞËÉ ÔÅÚÉ ËÏÍÁÎÄÉ ÎÑËÏÌËÏ ÐßÔÉ ÚÁ ÐÒÁËÔÉËÁ. ôÅÚÉ - ÓÁ ÎÁÊ-ÞÅÓÔÏ ÉÚÐÏÌÚ×ÁÎÉÔÅ ËÏÍÁÎÄÉ. +>> Ñåãà îïèòàéòå âñè÷êè òåçè êîìàíäè íÿêîëêî ïúòè çà ïðàêòèêà. Òåçè + ñà íàé-÷åñòî èçïîëçâàíèòå êîìàíäè. -ä×Å ÄÒÕÇÉ ×ÁÖÎÉ ËÏÍÁÎÄÉ ÚÁ Ä×ÉÖÅÎÉÅ ÎÁ ËÕÒÓÏÒÁ ÓÁ M-< (Meta ÐÏ-ÍÁÌËÏ), -ËÏÑÔÏ ÐÒÉÄ×ÉÖ×Á ÄÏ ÎÁÞÁÌÏÔÏ ÎÁ ÃÅÌÉÑ ÔÅËÓÔ, É M-> (Meta ÐÏ-ÇÏÌÑÍÏ), -ËÏÑÔÏ ÐÒÅÍÅÓÔ×Á ÄÏ ËÒÁÑ ÎÁ ÃÅÌÉÑ ÔÅËÓÔ. +Äâå äðóãè âàæíè êîìàíäè çà äâèæåíèå íà êóðñîðà ñà M-< (Meta ïî-ìàëêî), +êîÿòî ïðèäâèæâà äî íà÷àëîòî íà öåëèÿ òåêñò, è M-> (Meta ïî-ãîëÿìî), +êîÿòî ïðåìåñòâà äî êðàÿ íà öåëèÿ òåêñò. -ðÒÉ ÐÏ×ÅÞÅÔÏ ÔÅÒÍÉÎÁÌÉ, ÚÎÁËßÔ "<" Å ÏÔÂÅÌÑÚÁÎ ÎÁÄ ÚÁÐÅÔÁÑÔÁ, ÔÁËÁ ÞÅ -ÔÒÑÂ×Á ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ËÌÁ×ÉÛÁ Shift ÚÁ ÄÁ ÇÏ ÎÁÐÉÛÅÔÅ. îÁ ÔÅÚÉ -ÔÅÒÍÉÎÁÌÉ ÔÒÑÂ×Á ÄÁ ÉÚÐÏÌÚ×ÁÔÅ Shift ÚÁ ÄÁ ×ß×ÅÄÅÔÅ É M-<; ÂÅÚ ËÌÁ×ÉÛÁ -Shift ÂÉÈÔÅ ×ß×ÅÌÉ M-ÚÁÐÅÔÁÑ. +Ïðè ïîâå÷åòî òåðìèíàëè çíàêúò "<" å îòáåëÿçàí íàä çàïåòàÿòà, òàêà ÷å +òðÿáâà äà èçïîëçâàòå êëàâèøà Shift, çà äà ãî íàïèøåòå. Íà òåçè +òåðìèíàëè òðÿáâà äà èçïîëçâàòå Shift, çà äà âúâåäåòå è M-<; áåç êëàâèøà +Shift áèõòå âúâåëè M-çàïåòàÿ. ->> ïÐÉÔÁÊÔÅ M-< ÓÅÇÁ, ÚÁ ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ ÄÏ ÎÁÞÁÌÏÔÏ ÎÁ ×ß×ÅÄÅÎÉÅÔÏ. - óÌÅÄ ÔÏ×Á ÉÚÐÏÌÚ×ÁÊÔÅ C-v ËÏÌËÏÔÏ Å ÎÕÖÎÏ ÐßÔÉ, ÚÁ ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ - ÄÏ ÔÕË. +>> Îïèòàéòå M-< ñåãà, çà äà ñå ïðèäâèæèòå äî íà÷àëîòî íà âúâåäåíèåòî. + Ñëåä òîâà èçïîëçâàéòå C-v êîëêîòî å íóæíî ïúòè, çà äà ñå ïðèäâèæèòå + äî òóê. ->> ïÐÉÔÁÊÔÅ M-> ÓÅÇÁ, ÚÁ ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ ÄÏ ËÒÁÑ ÎÁ ×ß×ÅÄÅÎÉÅÔÏ. - óÌÅÄ ÔÏ×Á ÉÚÐÏÌÚ×ÁÊÔÅ M-v ËÏÌËÏÔÏ Å ÎÕÖÎÏ ÐßÔÉ, ÚÁ ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ - ÄÏ ÔÕË. +>> Îïèòàéòå M-> ñåãà, çà äà ñå ïðèäâèæèòå äî êðàÿ íà âúâåäåíèåòî. + Ñëåä òîâà èçïîëçâàéòå M-v êîëêîòî å íóæíî ïúòè, çà äà ñå ïðèäâèæèòå + äî òóê. -÷ÉÅ ÍÏÖÅÔÅ ÓßÝÏ ÄÁ ÓÅ ÐÒÉÄ×ÉÖ×ÁÔÅ Ó ËÌÁ×ÉÛÉÔÅ-ÓÔÒÅÌËÉ, ÁËÏ ×ÁÛÉÑÔ -ÔÅÒÍÉÎÁÌ ÉÍÁ ÔÁËÉ×Á. îÉÅ ÐÒÅÐÏÒßÞ×ÁÍÅ ÄÁ ÎÁÕÞÉÔÅ C-b, C-f, C-n É C-p -ÐÏ ÔÒÉ ÐÒÉÞÉÎÉ. ðßÒ×Ï, ÔÅ ÒÁÂÏÔÑÔ ÎÁ ×ÓÉÞËÉ ×ÉÄÏ×Å ÔÅÒÍÉÎÁÌÉ. ÷ÔÏÒÏ, -×ÅÄÎßÖ ÓÌÅÄ ËÁÔÏ ÄÏÂÉÅÔÅ ÐÒÁËÔÉËÁ × ÉÚÐÏÌÚ×ÁÎÅÔÏ ÎÁ åÍÁËÓ, ÝÅ -ÏÔËÒÉÅÔÅ, ÞÅ ×ß×ÅÖÄÁÎÅÔÏ ÎÁ ÔÅÚÉ Control-ÚÎÁÃÉ Å ÐÏ-ÂßÒÚÏ ÏÔ -×ß×ÅÖÄÁÎÅÔÏ ÎÁ ËÌÁ×ÉÛÉÔÅ ÓÔÒÅÌËÉ, ÚÁÝÏÔÏ ÎÅ ÔÒÑÂ×Á ÄÁ ÐÒÅÍÅÓÔ×ÁÔÅ -ÒßËÁÔÁ ÓÉ ÄÁÌÅÞ ÏÔ ÏÂÌÁÓÔÔÁ ÎÁ ËÌÁ×ÉÛÉÔÅ Ó ÂÕË×É. ôÒÅÔÏ, ×ÅÄÎßÖ ÓÌÅÄ -ËÁÔÏ ÓÉ ÏÆÏÒÍÉÔÅ ÎÁ×ÉË ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ÔÅÚÉ ËÏÍÁÎÄÉ Ó Control ÚÎÁÃÉ, ×ÉÅ -ÍÏÖÅÔÅ ÓßÝÏ ÔÁËÁ ÌÅÓÎÏ ÄÁ ÎÁÕÞÉÔÅ ÐÏ-ÎÁÐÒÅÄÎÁÌÉÔÅ ËÏÍÁÎÄÉ ÚÁ Ä×ÉÖÅÎÉÅ -ÎÁ ËÕÒÓÏÒÁ. +Âèå ìîæåòå ñúùî äà ñå ïðèäâèæâàòå ñ êëàâèøèòå-ñòðåëêè, àêî âàøèÿò +òåðìèíàë èìà òàêèâà. Íèå ïðåïîðú÷âàìå äà íàó÷èòå C-b, C-f, C-n è C-p +ïî òðè ïðè÷èíè. Ïúðâî, òå ðàáîòÿò íà âñè÷êè âèäîâå òåðìèíàëè. Âòîðî, +âåäíúæ ñëåä êàòî äîáèåòå ïðàêòèêà â èçïîëçâàíåòî íà Emacs, ùå +îòêðèåòå, ÷å âúâåæäàíåòî íà òåçè Control-çíàöè å ïî-áúðçî îò +âúâåæäàíåòî íà êëàâèøèòå ñòðåëêè, çàùîòî íå òðÿáâà äà ïðåìåñòâàòå +ðúêàòà ñè äàëå÷ îò îáëàñòòà íà êëàâèøèòå ñ áóêâè. Òðåòî, âåäíúæ ñëåä +êàòî ñè îôîðìèòå íàâèê äà èçïîëçâàòå òåçè êîìàíäè ñ Control çíàöè, âèå +ìîæåòå ñúùî òàêà ëåñíî äà íàó÷èòå ïî-íàïðåäíàëèòå êîìàíäè çà äâèæåíèå +íà êóðñîðà. -ðÏ×ÅÞÅÔÏ åÍÁËÓ ËÏÍÁÎÄÉ ÐÒÉÅÍÁÔ ÞÉÓÌÏ× ÁÒÇÕÍÅÎÔ; ÚÁ ÐÏ×ÅÞÅÔÏ ÏÔ ÔÑÈ ÔÏÊ -ÓÌÕÖÉ ËÁÔÏ ÂÒÏÑÞ ÎÁ ÐÏ×ÔÏÒÅÎÉÑ. îÁÞÉÎßÔ, ÐÏ ËÏÊÔÏ ÄÁ×ÁÔÅ ÞÉÓÌÏ× -ÂÒÏÑÞ, Å Ó ×ß×ÅÖÄÁÎÅ ÎÁ C-u, ÐÏÓÌÅÄ×ÁÎÏ ÏÔ ×ß×ÅÖÄÁÎÅ ÎÁ ÃÉÆÒÉÔÅ, É -×ÓÉÞËÏ ÔÏ×Á ÐÒÅÄÉ ×ß×ÅÖÄÁÎÅ ÎÁ ÓÁÍÁÔÁ ËÏÍÁÎÄÁ. áËÏ ÉÍÁÔÅ ËÌÁ×ÉÛ META -(ÉÌÉ EDIT ÉÌÉ ALT), ÉÍÁ ÄÒÕÇ, ÁÌÔÅÒÎÁÔÉ×ÅÎ ÎÁÞÉÎ ÄÁ ×ß×ÅÄÅÔÅ ÞÉÓÌÏ× -ÁÒÇÕÍÅÎÔ: ×ß×ÅÄÅÔÅ ÃÉÆÒÉÔÅ ÄÏËÁÔÏ ÚÁÄßÒÖÁÔÅ ËÌÁ×ÉÛÁ META. îÉÅ -ÐÒÅÐÏÒßÞ×ÁÍÅ ÄÁ ÎÁÕÞÉÔÅ ÎÁÞÉÎÁ Ó C-u, ÚÁÝÏÔÏ ÔÏÊ ÒÁÂÏÔÉ ÎÁ ËÏÊÔÏ É ÄÁ -Å ÔÅÒÍÉÎÁÌ. þÉÓÌÏ×ÉÑÔ ÁÒÇÕÍÅÎÔ ÓÅ ÎÁÒÉÞÁ ÓßÝÏ "ÐÒÅÆÉËÓÅÎ ÁÒÇÕÍÅÎÔ", -ÚÁÝÏÔÏ ÇÏ ×ß×ÅÖÄÁÔÅ ÐÒÅÄÉ ËÏÍÁÎÄÁÔÁ, ÚÁ ËÏÑÔÏ Å ÐÒÅÄÎÁÚÎÁÞÅÎ. +Ïîâå÷åòî Emacs êîìàíäè ïðèåìàò ÷èñëîâ àðãóìåíò; çà ïîâå÷åòî îò òÿõ òîé +ñëóæè êàòî áðîÿ÷ íà ïîâòîðåíèÿ. Íà÷èíúò, ïî êîéòî äàâàòå ÷èñëîâ +áðîÿ÷, å ñ âúâåæäàíå íà C-u, ïîñëåäâàíî îò âúâåæäàíå íà öèôðèòå, è +âñè÷êî òîâà ïðåäè âúâåæäàíå íà ñàìàòà êîìàíäà. Àêî èìàòå êëàâèø META +(èëè EDIT èëè ALT), èìà äðóã, àëòåðíàòèâåí íà÷èí äà âúâåäåòå ÷èñëîâ +àðãóìåíò: âúâåäåòå öèôðèòå, äîêàòî çàäúðæàòå êëàâèøà META. Íèå +ïðåïîðú÷âàìå äà íàó÷èòå íà÷èíà ñ C-u, çàùîòî òîé ðàáîòè íà êîéòî è äà +å òåðìèíàë. ×èñëîâèÿò àðãóìåíò ñå íàðè÷à ñúùî "ïðåôèêñåí àðãóìåíò", +çàùîòî ãî âúâåæäàòå ïðåäè êîìàíäàòà, çà êîÿòî å ïðåäíàçíà÷åí. -îÁÐÒÉÍÅÒ, C-u 8 C-f ÐÒÉÄ×ÉÖ×Á ÏÓÅÍ ÚÎÁËÁ ÎÁÐÒÅÄ. +Íàïðèìåð, C-u 8 C-f ïðèäâèæâà îñåì çíàêà íàïðåä. ->> ïÐÉÔÁÊÔÅ ÉÚÐÏÌÚ×ÁÎÅÔÏ ÎÁ C-n ÉÌÉ C-p Ó ÞÉÓÌÏ× ÁÒÇÕÍÅÎÔ, ÚÁ ÄÁ - ÐÒÉÄ×ÉÖÉÔÅ ËÕÒÓÏÒÁ ÄÏ ÒÅÄ ÂÌÉÚßË ÄÏ ÔÏÚÉ ÓÁÍÏ Ó ÅÄÎÁ ËÏÍÁÎÄÁ. +>> Îïèòàéòå èçïîëçâàíåòî íà C-n èëè C-p ñ ÷èñëîâ àðãóìåíò, çà äà + ïðèäâèæèòå êóðñîðà äî ðåä, áëèçúê äî òîçè, ñàìî ñ åäíà êîìàíäà. -ðÏ×ÅÞÅÔÏ ËÏÍÁÎÄÉ ÉÚÐÏÌÚ×ÁÔ ÞÉÓÌÏ×ÉÑ ÁÒÇÕÍÅÎÔ ËÁÔÏ ÂÒÏÑÞ ÎÁ -ÐÏ×ÔÏÒÅÎÉÑÔÁ, ÎÏ ÎÑËÏÉ ÇÏ ÉÚÐÏÌÚ×ÁÔ ÚÁ ÄÒÕÇÉ ÃÅÌÉ. îÑËÏÌËÏ ËÏÍÁÎÄÉ -(ÎÏ ÎÉËÏÑ ÏÔ ÔÅÚÉ, ËÏÉÔÏ ÓÔÅ ÎÁÕÞÉÌÉ ÄÏÓÅÇÁ) ÇÏ ÉÚÐÏÌÚ×ÁÔ ËÁÔÏ ÆÌÁÇ -- -ÐÒÉÓßÓÔ×ÉÅÔÏ ÎÁ ÞÉÓÌÏ× ÁÒÇÕÍÅÎÔ, ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÓÔÏÊÎÏÓÔÁ ÍÕ, ËÁÒÁ -ËÏÍÁÎÄÁÔÁ ÄÁ ×ßÒÛÉ ÎÅÝÏ ÒÁÚÌÉÞÎÏ. +Ïîâå÷åòî êîìàíäè èçïîëçâàò ÷èñëîâèÿ àðãóìåíò êàòî áðîÿ÷ íà +ïîâòîðåíèÿòà, íî íÿêîè ãî èçïîëçâàò çà äðóãè öåëè. Íÿêîëêî êîìàíäè +(íî íèêîÿ îò òåçè, êîèòî ñòå íàó÷èëè äîñåãà) ãî èçïîëçâàò êàòî ôëàã -- +ïðèñúñòâèåòî íà ÷èñëîâ àðãóìåíò, íåçàâèñèìî îò ñòîéíîñòà ìó, êàðà +êîìàíäàòà äà âúðøè íåùî ðàçëè÷íî. -C-v É M-v ÓÁ ÄÒÕÇ ×ÉÄ ÉÚËÌÀÞÅÎÉÅ. ëÏÇÁÔÏ ÉÍ Å ÄÁÄÅÎ ÁÒÇÕÍÅÎÔ, ÔÅ -ÓËÒÏÌÉÒÁÔ ÅËÒÁÎÁ ÎÁÇÏÒÅ ÉÌÉ ÎÁÄÏÌÕ ÓßÓ ÚÁÄÁÄÅÎÉÑ ÂÒÏÊ ÒÅÄÁ, ×ÍÅÓÔÏ Ó -ÅËÒÁÎÉ. îÁÐÒÉÍÅÒ, C-u 8 C-v ÓËÒÏÌÉÒÁ ÅËÒÁÎÁ Ó 8 ÒÅÄÁ. +C-v è M-v ñà äðóã âèä èçêëþ÷åíèå. Êîãàòî èì å äàäåí àðãóìåíò, òå +ñêðîëèðàò åêðàíà íàãîðå èëè íàäîëó ñúñ çàäàäåíèÿ áðîé ðåäîâå, âìåñòî ñ +åêðàíè. Íàïðèìåð, C-u 8 C-v ñêðîëèðà åêðàíà ñ 8 ðåäà. ->> óÅÇÁ ÏÐÉÔÁÊÔÅ C-u 8 C-v. +>> Ñåãà îïèòàéòå C-u 8 C-v. -ôÏ×Á ÂÉ ÔÒÑÂ×ÁÌÏ ÄÁ ÓËÒÏÌÉÒÁ ÅËÒÁÎÁ Ó 8 ÒÅÄÁ. áËÏ ÉÓËÁÔÅ ÄÁ -ÓËÒÏÌÉÒÁÔÅ ÏÔÎÏ×Ï ÎÁÄÏÌÕ, ÍÏÖÅ ÄÁ ÄÁÄÅÔÅ ÁÒÇÕÍÅÎÔ ÎÁ M-v. - -áËÏ ÉÚÐÏÌÚ×ÁÔÅ ÇÒÁÆÉÞÅÎ ÉÎÔÅÒÆÅÊÓ, ËÁÔÏ X11 ÉÌÉ MS-Windows, ÂÉ -ÔÒÑÂ×ÁÌÏ ÄÁ ÉÍÁ ÔßÎËÁ ÐÒÁ×ÏßÇßÌÎÁ ÏÂÌÁÓÔ ÎÁÒÅÞÅÎÁ ÐÌßÚÇÁÞ (scroll bar) -× ÌÑ×ÁÔÁ ÓÔÒÁÎÁ ÎÁ ÐÒÏÚÏÒÅÃÁ ÎÁ åÍÁËÓ. ÷ÉÅ ÍÏÖÅÔÅ ÄÁ ÓËÒÏÌÉÒÁÔÅ -ÔÅËÓÔÁ ÝÒÁËÁÊËÉ Ó ÍÉÛËÁÔÁ × ÐÌßÚÇÁÞÁ. +Òîâà áè òðÿáâàëî äà ñêðîëèðà åêðàíà ñ 8 ðåäà. Àêî èñêàòå äà +ñêðîëèðàòå îòíîâî íàäîëó, ìîæå äà äàäåòå àðãóìåíò íà M-v. + +Àêî èçïîëçâàòå ãðàôè÷åí èíòåðôåéñ, êàòî X11 èëè MS-Windows, áè +òðÿáâàëî äà èìà òúíêà ïðàâîúãúëíà îáëàñò, íàðå÷åíà ïëúçãà÷ (scroll +bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Emacs. Âèå ìîæåòå äà ñêðîëèðàòå +òåêñòà, ùðàêàéêè ñ ìèøêàòà â ïëúçãà÷à. ->> ïÐÉÔÁÊÔÅ ÄÁ ÎÁÔÉÓÎÅÔÅ ÓÒÅÄÎÉÑ ÂÕÔÏÎ ÎÁ ×ßÒÈÁ ÎÁ ÏÓ×ÅÔÅÎÁÔÁ ÏÂÌÁÓÔ - ×ßÔÒÅ × ÐÌßÚÇÁÞÁ. ôÏ×Á ÂÉ ÔÒÑÂ×ÁÌÏ ÄÁ ÓËÒÏÌÉÒÁ ÔÅËÓÔÁ ËßÍ - ÐÏÌÏÖÅÎÉÅ, ÏÐÒÅÄÅÌÅÎÏ ÏÔ ÔÏ×Á ËÏÌËÏ ×ÉÓÏËÏ ÉÌÉ ÎÉÓËÏ ÓÔÅ ÝÒÁËÎÁÌÉ. +>> Îïèòàéòå äà íàòèñíåòå ñðåäíèÿ áóòîí íà âúðõà íà îñâåòåíàòà îáëàñò + âúòðå â ïëúçãà÷à. Òîâà áè òðÿáâàëî äà ñêðîëèðà òåêñòà êúì + ïîëîæåíèå, îïðåäåëåíî îò òîâà êîëêî âèñîêî èëè íèñêî ñòå ùðàêíàëè. ->> ïÐÉÔÁÊÔÅ ÓÅ ÄÁ Ä×ÉÖÉÔÅ ÍÉÛËÁÔÁ ÎÁÇÏÒÅ É ÎÁÄÏÌÕ, ÄÏËÁÔÏ ÓÔÅ - ÚÁÄßÒÖÁÌÉ ÄÅÓÎÉÑ ÂÕÔÏÎ ÎÁÔÉÓÎÁÔ. ýÅ ×ÉÄÉÔÅ, ÞÅ ÔÅËÓÔßÔ ÓÅ ÓËÒÏÌÉÒÁ - ÎÁÇÏÒÅ É ÎÁÄÏÌÕ ËÁÔÏ Ä×ÉÖÉÔÅ ÍÉÛËÁÔÁ. +>> Îïèòàéòå ñå äà äâèæèòå ìèøêàòà íàãîðå è íàäîëó, äîêàòî ñòå + çàäúðæàëè äåñíèÿ áóòîí íàòèñíàò. Ùå âèäèòå, ÷å òåêñòúò ñå ñêðîëèðà + íàãîðå è íàäîëó, êàòî äâèæèòå ìèøêàòà. -* ëïçáôï åíáëó å âìïëéòáì +* ÊÎÃÀÒÎ EMACS Å ÁËÎÊÈÐÀË ------------------------- -áËÏ åÍÁËÓ ÓÐÒÅ ÄÁ ÏÔÇÏ×ÁÒÑ ÎÁ ×ÁÛÉÔÅ ËÏÍÁÎÄÉ, ×ÉÅ ÍÏÖÅÔÅ ÄÁ ÇÏ ÓÐÒÅÔÅ -ÂÅÚÏÐÁÓÎÏ ËÁÔÏ ×ß×ÅÄÅÔÅ C-g. íÏÖÅ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ C-g ÚÁ ÄÁ ÓÐÒÅÔÅ -ËÏÍÁÎÄÁ, ËÏÑÔÏ ÓÅ ÉÚÐßÌÎÑ×Á Ô×ßÒÄÅ ÄßÌÇÏ. +Àêî Emacs ñïðå äà îòãîâàðÿ íà âàøèòå êîìàíäè, âèå ìîæåòå äà ãî ñïðåòå +áåçîïàñíî, êàòî âúâåäåòå C-g. Ìîæå äà èçïîëçâàòå C-g, çà äà ñïðåòå +êîìàíäà, êîÿòî ñå èçïúëíÿâà òâúðäå äúëãî. -óßÝÏ ÍÏÖÅÔÅ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ C-g ÚÁ ÄÁ ÏÔÍÅÎÉÔÅ ÞÉÓÌÏ× ÁÒÇÕÍÅÎÔ ÉÌÉ -ÎÁÞÁÌÏÔÏ ÎÁ ËÏÍÁÎÄÁ, ËÏÑÔÏ ÎÅ ÉÓËÁÔÅ ÄÁ ÚÁ×ßÒÛÉÔÅ. +Ñúùî ìîæåòå äà èçïîëçâàòå C-g, çà äà îòìåíèòå ÷èñëîâ àðãóìåíò èëè +íà÷àëîòî íà êîìàíäà, êîÿòî íå èñêàòå äà çàâúðøèòå. ->> ÷ß×ÅÄÅÔÅ C-u 100 ÚÁ ÄÁ ÎÁÐÒÁ×ÉÔÅ ÞÉÓÌÏ× ÁÒÇÕÍÅÎÔ 100, É ×ß×ÅÄÅÔÅ - C-g. óÅÇÁ ×ß×ÅÄÅÔÅ C-f. ôÒÑÂ×Á ÄÁ ÓÅ ÐÒÉÄ×ÉÖÉÔÅ Ó ÔÏÞÎÏ ÅÄÉÎ - ÚÎÁË, ÚÁÝÏÔÏ ×ÉÅ ÐÒÅËÒÁÔÉÈÔÅ ÁÒÇÕÍÅÎÔßÔ Ó C-g. +>> Âúâåäåòå C-u 100, çà äà íàïðàâèòå ÷èñëîâ àðãóìåíò 100, è âúâåäåòå + C-g. Ñåãà âúâåäåòå C-f. Òðÿáâà äà ñå ïðèäâèæèòå ñ òî÷íî åäèí + çíàê, çàùîòî âèå ïðåêðàòèõòå àðãóìåíòúò ñ C-g. -áËÏ ÓÔÅ ×ß×ÅÌÉ ÐÏ ÐÏÇÒÅÛËÁ, ÍÏÖÅÔÅ ÄÁ ÓÅ ÉÚÍßËÎÅÔÅ Ó C-g. +Àêî ñòå âúâåëè ïî ïîãðåøêà, ìîæåòå äà ñå èçìúêíåòå ñ C-g. -* úáâòáîåîé ëïíáîäé +* ÇÀÁÐÀÍÅÍÈ ÊÎÌÀÍÄÈ ------------------- -îÑËÏÉ ËÏÍÁÎÄÉ ÎÁ åÍÁËÓ ÓÁ "ÚÁÂÒÁÎÅÎÉ", ÔÁËÁ ÞÅ ÎÁÞÉÎÁÅÝÉÔÅ ÐÏÔÒÅÂÉÔÅÌÉ -ÄÁ ÎÅ ÍÏÇÁÔ ÄÁ ÇÉ ÕÐÏÔÒÅÂÑÔ ÐÏ ÐÏÇÒÅÛËÁ. +Íÿêîè êîìàíäè íà Emacs ñà "çàáðàíåíè", òàêà ÷å íà÷èíàåùèòå ïîòðåáèòåëè +äà íå ìîãàò äà ãè óïîòðåáÿò ïî ïîãðåøêà. -áËÏ ×ß×ÅÄÅÔÅ ÎÑËÏÑ ÏÔ ÚÁÂÒÁÎÅÎÉÔÅ ËÏÍÁÎÄÉ, åÍÁËÓ ÉÚ×ÅÖÄÁ ÓßÏÂÝÅÎÉÅ, -ËÁÚ×ÁÊËÉ ËÁË×Á Å ÂÉÌÁ ËÏÍÁÎÄÁÔÁ É ÐÉÔÁÊËÉ ×É ÄÁÌÉ ÉÓËÁÔÅ ÄÁ ÐÒÏÄßÌÖÉÔÅ -ÎÁÐÒÅÄ É ÄÁ ÉÚÐßÌÎÉÔÅ ËÏÍÁÎÄÁÔÁ. +Àêî âúâåäåòå íÿêîÿ îò çàáðàíåíèòå êîìàíäè, Emacs èçâåæäà ñúîáùåíèå, +êàçâàéêè êàêâà å áèëà êîìàíäàòà è ïèòàéêè âè äàëè èñêàòå äà ïðîäúëæèòå +íàïðåä è äà èçïúëíèòå êîìàíäàòà. -áËÏ ÎÁÉÓÔÉÎÁ ÉÓËÁÔÅ ÄÁ ÉÚÐÒÏÂ×ÁÔÅ ËÏÍÁÎÄÁÔÁ, ×ß×ÅÄÅÔÅ ËÌÁ×ÉÛÁ ÉÎÔÅÒ×ÁÌ -× ÏÔÇÏ×ÏÒ ÎÁ ×ßÐÒÏÓÁ. ïÂÉËÎÏ×ÅÎÏ ÁËÏ ÎÅ ÉÓËÁÔÅ ÄÁ ÉÚÐßÌÎÉÔÅ -ÚÁÂÒÁÎÅÎÁÔÁ ËÏÍÁÎÄÁ, ÏÔÇÏ×ÁÒÑÔÅ ÎÁ ×ßÐÒÏÓÁ Ó "n". +Àêî íàèñòèíà èñêàòå äà èçïðîáâàòå êîìàíäàòà, âúâåäåòå (êëàâèøà +èíòåðâàë) â îòãîâîð íà âúïðîñà. Îáèêíîâåíî àêî íå èñêàòå äà èçïúëíèòå +çàáðàíåíàòà êîìàíäà, îòãîâàðÿòå íà âúïðîñà ñ "n". ->> ÷ß×ÅÄÅÔÅ C-x C-l (ËÏÑÔÏ Å ÚÁÂÒÁÎÅÎÁ ËÏÍÁÎÄÁ), É ÓÌÅÄ ÔÏ×Á ×ß×ÅÄÅÔÅ - "n" × ÏÔÇÏ×ÏÒ ÎÁ ×ßÐÒÏÓÁ. +>> Âúâåäåòå C-x C-l (êîÿòî å çàáðàíåíà êîìàíäà), è ñëåä òîâà âúâåäåòå + "n" â îòãîâîð íà âúïðîñà. -* ðòïúïòãé +* ÏÐÎÇÎÐÖÈ ---------- -åÍÁËÓ ÍÏÖÅ ÄÁ ÕÐÒÁ×ÌÑ×Á ÎÑËÏÌËÏ ÐÒÏÚÏÒÅÃÁ, ×ÓÅËÉ ÉÚ×ÅÖÄÁÊËÉ Ó×ÏÊ -ÓÏÂÓÔ×ÅÎ ÔÅËÓÔ. îÉÅ ÝÅ ÏÂÑÓÎÉÍ ÐÏ-ËßÓÎÏ ËÁË ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ÎÑËÏÌËÏ -ÐÒÏÚÏÒÅÃÁ. ôÏÞÎÏ ÓÅÇÁ ÎÉÅ ÉÓËÁÍÅ ÄÁ ÏÂÑÓÎÉÍ ËÁË ÄÁ ÓÅ ÏÔßÒ×ÅÔÅ ÏÔ -ÄÏÐßÌÎÉÔÅÌÎÉ ÐÒÏÚÏÒÃÉ É ÄÁ ÓÅ ×ßÒÎÅÔÅ ËßÍ ÏÓÎÏ×ÎÏÔÏ ÒÅÄÁËÔÉÒÁÎÅ Ó ÅÄÉÎ -ÐÒÏÚÏÒÅÃ. ðÒÏÓÔÏ Å: +Emacs ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé +ñîáñòâåí òåêñò. Íèå ùå îáÿñíèì ïî-êúñíî êàê äà èçïîëçâàòå íÿêîëêî +ïðîçîðåöà. Òî÷íî ñåãà íèå èñêàìå äà îáÿñíèì êàê äà ñå îòúðâåòå îò +äîïúëíèòåëíè ïðîçîðöè è äà ñå âúðíåòå êúì îñíîâíîòî ðåäàêòèðàíå ñ åäèí +ïðîçîðåö. Ïðîñòî å: - C-x 1 åÄÉÎ ÐÒÏÚÏÒÅà (Ô.Å. ÐÒÅÍÁÈÎÉ ×ÓÉÞËÉ ÄÒÕÇÉ ÐÒÏÚÏÒÃÉ). + C-x 1 Åäèí ïðîçîðåö (ò.å. ïðåìàõíè âñè÷êè äðóãè ïðîçîðöè). -ôÏ×Á Å CONTROL-x ÐÏÓÌÅÄ×ÁÎÏ ÏÔ ÃÉÆÒÁÔÁ 1. C-x 1 ÒÁÚÛÉÒÑ×Á ÐÒÏÚÏÒÅÃÁ -ÓßÄßÒÖÁÝ ËÕÒÓÏÒÁ, ÚÁ ÄÁ ÍÏÖÅ ÄÁ ÚÁÐßÌÎÉ ÃÅÌÉÑ ÅËÒÁÎ. ôÑ ÐÒÅÍÁÈ×Á -×ÓÉÞËÉ ÄÒÕÇÉ ÐÒÏÚÏÒÃÉ. +Òîâà å CONTROL-x, ïîñëåäâàí îò öèôðàòà 1. C-x 1 ðàçøèðÿâà ïðîçîðåöà, +ñúäúðæàù êóðñîðà, çà äà ìîæå äà çàïúëíè öåëèÿ åêðàí. Òÿ ïðåìàõâà +âñè÷êè äðóãè ïðîçîðöè. ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÔÏÚÉ ÒÅÄ É ×ß×ÅÄÅÔÅ C-u 0 C-l. ->> ÷ß×ÅÄÅÔÅ C-h k C-f. - ÷ÉÖÔÅ ËÁË ÔÏÚÉ ÐÒÏÚÏÒÅà ÓÅ Ó×É×Á, ÄÏËÁÔÏ ÄÒÕÇ ÓÅ ÐÏÑ×Ñ×Á ÚÁ ÄÁ - ÉÚ×ÅÄÅ ÄÏËÕÍÅÎÔÁÃÉÑ ÎÁ ËÏÍÁÎÄÁÔÁ C-f. +>> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-u 0 C-l. +>> Âúâåäåòå C-h k C-f. + Âèæòå êàê òîçè ïðîçîðåö ñå ñâèâà, äîêàòî äðóã ñå ïîÿâÿâà, çà äà + èçâåäå äîêóìåíòàöèÿòà íà êîìàíäàòà C-f. ->> ÷ß×ÅÄÅÔÅ C-x 1 É ×ÉÖÔÅ ËÁË ÐÒÏÚÏÒÅÃÁ Ó ÄÏËÕÍÅÎÔÁÃÉÑÔÁ ÉÚÞÅÚ×Á. +>> Âúâåäåòå C-x 1 è âèæòå êàê ïðîçîðåöúò ñ äîêóìåíòàöèÿòà èç÷åçâà. -ôÁÚÉ ËÏÍÁÎÄÁ ÎÅ Å ËÁÔÏ ÄÒÕÇÉÔÅ ËÏÍÁÎÄÉ, ËÏÉÔÏ ÓÔÅ ÎÁÕÞÉÌÉ, × ÔÏ×Á -ÏÔÎÏÛÅÎÉÅ, ÞÅ ÓÅ ÓßÓÔÏÉ ÏÔ Ä×Á ÚÎÁËÁ. úÁÐÏÞ×Á ÓßÓ ÚÎÁËÁ C-x. éÍÁ -ÃÑÌÁ ÒÅÄÉÃÁ ÏÔ ËÏÍÁÎÄÉ, ËÏÉÔÏ ÚÁÐÏÞ×ÁÔ Ó C-x; ÍÎÏÇÏ ÏÔ ÔÑÈ ÉÍÁÔ ÎÅÝÏ -ÏÂÝÏ Ó ÐÒÏÚÏÒÃÉ, ÆÁÊÌÏ×Å, ÂÕÆÅÒÉ É Ó×ßÒÚÁÎÉÔÅ Ó ÔÑÈ ÎÅÝÁ. ôÅÚÉ -ËÏÍÁÎÄÉ ÓÁ ÏÔ Ä×Á, ÔÒÉ ÉÌÉ ÞÅÔÉÒÉ ÚÎÁËÁ. +Òàçè êîìàíäà íå å êàòî äðóãèòå êîìàíäè, êîèòî ñòå íàó÷èëè, â òîâà +îòíîøåíèå, ÷å ñå ñúñòîè îò äâà çíàêà. Çàïî÷âà ñúñ çíàêà C-x. Èìà +öÿëà ðåäèöà îò êîìàíäè, êîèòî çàïî÷âàò ñ C-x; ìíîãî îò òÿõ èìàò íåùî +îáùî ñ ïðîçîðöè, ôàéëîâå, áóôåðè è ñâúðçàíèòå ñ òÿõ íåùà. Òåçè +êîìàíäè ñà îò äâà, òðè èëè ÷åòèðè çíàêà. -* ÷íÿë÷áîå é éúôòé÷áîå +* ÂÌÚÊÂÀÍÅ È ÈÇÒÐÈÂÀÍÅ ---------------------- -áËÏ ÉÓËÁÔÅ ÄÁ ×ÍßËÎÅÔÅ ÔÅËÓÔ, ÐÒÏÓÔÏ ÇÏ ×ß×ÅÄÅÔÅ. úÎÁÃÉÔÅ, ËÏÉÔÏ -ÍÏÇÁÔ ÄÁ ÓÅ ×ÉÖÄÁÔ, ËÁÔÏ á, 7, * É Ô.Î., ÓÅ ×ßÚÐÒÉÅÍÁÔ ÏÔ åÍÁËÓ ËÁÔÏ -ÔÅËÓÔ É ÓÅ ×ÍßË×ÁÔ ×ÅÄÎÁÇÁ. ÷ß×ÅÄÅÔÅ (ËÌÁ×ÉÛßÔ ÚÁ ×ÒßÝÁÎÅ × -ÎÁÞÁÌÏÔÏ ÎÁ ÒÅÄÁ) ÚÁ ÄÁ ×ÍßËÎÅÔÅ ÚÎÁË ÚÁ ÎÏ× ÒÅÄ. +Àêî èñêàòå äà âìúêíåòå òåêñò, ïðîñòî ãî âúâåäåòå. Çíàöèòå, êîèòî +ìîãàò äà ñå âèæäàò, êàòî À, 7, * è ò.í., ñå âúçïðèåìàò îò Emacs êàòî +òåêñò è ñå âìúêâàò âåäíàãà. Âúâåäåòå (êëàâèøúò çà âðúùàíå â +íà÷àëîòî íà ðåäà), çà äà âìúêíåòå çíàê çà íîâ ðåä. -íÏÖÅ ÄÁ ÉÚÔÒÉÅÔÅ ÐÏÓÌÅÄÎÉÑ ÚÎÁË, ËÏÊÔÏ ÓÔÅ ×ß×ÅÌÉ, Ó ×ß×ÅÖÄÁÎÅ ÎÁ -. Å ËÌÁ×ÉÛ ÏÔ ËÌÁ×ÉÁÔÕÒÁÔÁ -- ÓßÝÉÑÔ, ËÏÊÔÏ -ÏÂÉËÎÏ×ÅÎÏ ÉÚÐÏÌÚ×ÁÔÅ ÉÚ×ßÎ åÍÁËÓ ÚÁ ÄÁ ÉÚÔÒÉÅÔÅ ÐÏÓÌÅÄÎÉÑ ×ß×ÅÄÅÎ ÏÔ -×ÁÓ ÚÎÁË. ïÂÉËÎÏ×ÅÎÏ Å ÇÏÌÑÍ ËÌÁ×ÉÛ ÎÁ ÎÑËÏÌËÏ ÒÅÄÁ ÒÁÚÓÔÏÑÎÉÅ ÏÔ -ËÌÁ×ÉÛÁ , É ÏÂÉËÎÏ×ÅÎÏ Å ÏÔÂÅÌÑÚÁÎ Ó "Delete", "Del" ÉÌÉ +Ìîæå äà èçòðèåòå ïîñëåäíèÿ çíàê, êîéòî ñòå âúâåëè, ñ âúâåæäàíå íà +. å êëàâèø îò êëàâèàòóðàòà -- ñúùèÿò, êîéòî +îáèêíîâåíî èçïîëçâàòå èçâúí Emacs, çà äà èçòðèåòå ïîñëåäíèÿ âúâåäåí îò +âàñ çíàê. Îáèêíîâåíî å ãîëÿì êëàâèø, íà íÿêîëêî ðåäà ðàçñòîÿíèå îò +êëàâèøà , è îáèêíîâåíî å îòáåëÿçàí ñ "Delete", "Del" èëè "Backspace". -áËÏ ÇÏÌÅÍÉÑÔ ËÌÁ×ÉÛ ÔÁÍ Å Ó ÅÔÉËÅÔ "Backspace", ÔÏÇÁ×Á ÔÏÊ Å ÔÏÚÉ, -ËÏÊÔÏ ÝÅ ÉÚÐÏÌÚ×ÁÔÅ ÚÁ . íÏÖÅ ÄÁ ÉÍÁ ÏÝÅ ÅÄÉÎ ËÌÁ×ÉÛ Ó -ÅÔÉËÅÔ "Delete" ÎÑËßÄÅ ÄÒÕÇÁÄÅ, ÎÏ ÔÏÊ ÎÅ Å . - -ðÏ-ÏÂÝÏ ËÁÚÁÎÏ, ÉÚÔÒÉ×Á ÚÎÁËÁ ÔÏÞÎÏ ÐÒÅÄÉ ÔÅËÕÝÏÔÏ ÍÑÓÔÏ ÎÁ -ËÕÒÓÏÒÁ. - ->> îÁÐÒÁ×ÅÔÅ ÔÏ×Á ÓÅÇÁ -- ÎÁÐÉÛÅÔÅ ÎÑËÏÌËÏ ÚÎÁËÁ, ÐÏÓÌÅ ÇÉ ÉÚÔÒÉÊÔÅ Ó - ×ß×ÅÖÄÁÎÅ ÎÁ ÎÑËÏÌËÏ ÐßÔÉ. îÅ ÓÅ ÂÅÚÐÏËÏÊÔÅ, ÞÅ ÔÏÚÉ - ÆÁÊÌ ÝÅ ÂßÄÅ ÐÒÏÍÅÎÅÎ; ×ÉÅ ÎÑÍÁ ÄÁ ÐÒÏÍÅÎÉÔÅ ÐßÒ×ÏÎÁÞÁÌÎÏÔÏ - ×ß×ÅÄÅÎÉÅ. ôÏ×Á Å ×ÁÛÅ ÌÉÞÎÏ ËÏÐÉÅ. - -ëÏÇÁÔÏ ÒÅÄ ÏÔ ÔÅËÓÔÁ ÓÔÁÎÅ Ô×ßÒÄÅ ÄßÌßÇ ÚÁ ÄÁ ÓÅ ÓßÂÅÒÅ × ÒÅÄ ÏÔ -ÅËÒÁÎÁ, ÒÅÄßÔ ÏÔ ÔÅËÓÔÁ ÓÅ "ÐÒÏÄßÌÖÁ×Á" ÎÁ ÓÌÅÄ×ÁÝÉÑ ÒÅÄ. ïÂÒÁÔÎÁ -ÎÁËÌÏÎÅÎÁ ÞÅÒÔÁ ("\") (ÉÌÉ, ÁËÏ ÉÚÐÏÌÚ×ÁÔÅ ÇÒÁÆÉÞÅÎ ÉÎÔÅÒÆÅÊÓ, ÍÁÌËÁ -ÉÚËÒÉ×ÅÎÁ ÓÔÒÅÌËÁ) × ÄÑÓÎÁÔÁ ÇÒÁÎÉÃÁ ÏÔÂÅÌÑÚ×Á ÒÅÄ, ËÏÊÔÏ Å ÂÉÌ -ÐÒÏÄßÌÖÅÎ. +Àêî ãîëåìèÿò êëàâèø òàì å ñ åòèêåò "Backspace", òîãàâà òîé å òîçè, +êîéòî ùå èçïîëçâàòå çà . Ìîæå äà èìà îùå åäèí êëàâèø ñ +åòèêåò "Delete" íÿêúäå äðóãàäå, íî òîé íå å . + +Ïî-îáùî êàçàíî, èçòðèâà çíàêà òî÷íî ïðåäè òåêóùîòî ìÿñòî íà +êóðñîðà. + +>> Íàïðàâåòå òîâà ñåãà -- íàïèøåòå íÿêîëêî çíàêà, ïîñëå ãè èçòðèéòå ñ + âúâåæäàíå íà íÿêîëêî ïúòè. Íå ñå áåçïîêîéòå, ÷å òîçè + ôàéë ùå áúäå ïðîìåíåí; âèå íÿìà äà ïðîìåíèòå ïúðâîíà÷àëíîòî + âúâåäåíèå. Òîâà å âàøå ëè÷íî êîïèå. + +Êîãàòî ðåä îò òåêñòà ñòàíå òâúðäå äúëúã, çà äà ñå ñúáåðå â ðåä îò +åêðàíà, ðåäúò îò òåêñòà ñå "ïðîäúëæàâà" íà ñëåäâàùèÿ ðåä. Îáðàòíà +íàêëîíåíà ÷åðòà ("\") (èëè, àêî èçïîëçâàòå ãðàôè÷åí èíòåðôåéñ, ìàëêà +èçêðèâåíà ñòðåëêà) â äÿñíàòà ãðàíèöà îòáåëÿçâà ðåä, êîéòî å áèë +ïðîäúëæåí. ->> ÷ß×ÅÄÅÔÅ ÔÅËÓÔ ÄÏËÁÔÏ ÓÔÉÇÎÅÔÅ ÄÑÓÎÁÔÁ ÇÒÁÎÉÃÁ, É ÐÒÏÄßÌÖÅÔÅ Ó - ×ÍßË×ÁÎÅÔÏ. ýÅ ×ÉÄÉÔÅ ÐÒÏÄßÌÖÅÎÉÅÔÏ ÄÁ ÒÅÄÁ ÄÁ ÓÅ ÐÏËÁÚ×Á. - ->> éÚÐÏÌÚ×ÁÊÔÅ ÎÑËÏÌËÏ ÚÁ ÄÁ ÉÚÔÒÉÅÔÅ ÔÅËÓÔÁ ÄÏËÁÔÏ ÒÅÄßÔ ÓÅ - ×ÍÅÓÔÉ × ÅÄÉÎ ÅËÒÁÎÅÎ ÒÅÄ. ðÒÏÄßÌÖÅÎÉÅÔÏ ÎÁ ÒÅÄÁ ÉÚÞÅÚ×Á. - -íÏÖÅ ÄÁ ÉÚÔÒÉÅÔÅ ÚÎÁËÁ ÚÁ ÎÏ× ÒÅÄ ÔÏÞÎÏ ËÁËÔÏ ×ÓÅËÉ ÄÒÕÇ ÚÎÁË. -éÚÔÒÉ×ÁÎÅÔÏ ÎÁ ÚÎÁËÁ ÚÁ ÎÏ× ÒÅÄ ÍÅÖÄÕ Ä×Á ÒÅÄÁ ÇÉ ÓÌÉ×Á × ÅÄÉÎ ÒÅÄ. -áËÏ ÐÏÌÕÞÅÎÉÑÔ ËÏÍÂÉÎÉÒÁÎ ÒÅÄ Å Ô×ßÒÄÅ ÄßÌßÇ, ÚÁ ÄÁ ÓÅ ×ÍÅÓÔÉ × -ÛÉÒÉÎÁÔÁ ÎÁ ÅËÒÁÎÁ, ÔÏÊ ÝÅ ÂßÄÅ ÐÏËÁÚÁÎ ËÁÔÏ ÐÒÏÄßÌÖÅÎ ÒÅÄ. - ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ × ÎÁÞÁÌÏÔÏ ÎÁ ÒÅÄ É ×ß×ÅÄÅÔÅ . ôÏ×Á ÝÅ - ÓÌÅÅ ÔÏÚÉ ÒÅÄ Ó ÐÒÅÄÉÛÎÉÑ. - ->> ÷ß×ÅÄÅÔÅ ÚÁ ÄÁ ×ÍßËÎÅÔÅ ÎÁÎÏ×Ï ÚÎÁËÁ ÚÁ ÎÏ× ÒÅÄ, ËÏÊÔÏ - ÉÚÔÒÉÈÔÅ. - -úÁÐÏÍÎÅÔÅ, ÞÅ ÎÁ ÐÏ×ÅÞÅÔÏ ËÏÍÁÎÄÉ ÎÁ åÍÁËÓ ÍÏÖÅ ÄÁ ÂßÄÅ ÚÁÄÁÄÅÎ ÂÒÏÑÞ -ÎÁ ÐÏ×ÔÏÒÅÎÉÑÔÁ; ÔÏ×Á ×ËÌÀÞ×Á ×ÍßË×ÁÎÅÔÏ ÎÁ ÔÅËÓÔÏ×É ÚÎÁÃÉ. -ðÏ×ÔÁÒÑÎÅÔÏ ÎÁ ÔÅËÓÔÏ× ÚÎÁË ÇÏ ×ÍßË×Á ÎÑËÏÌËÏ ÐßÔÉ. - ->> ïÐÉÔÁÊÔÅ ÔÏ×Á ÓÅÇÁ -- ×ß×ÅÄÅÔÅ C-u 8 * ÚÁ ÄÁ ×ÍßËÎÅÔÅ ********. - -óÅÇÁ ×ÉÅ ÓÔÅ ÎÁÕÞÉÌÉ ÎÁÊ-ÏÓÎÏ×ÎÉÔÅ ÎÁÞÉÎÉ ÚÁ ×ß×ÅÖÄÁÎÅ ÎÁ ÎÅÝÏ × åÍÁËÓ -É ÐÏÐÒÁ×ÑÎÅÔÏ ÎÁ ÇÒÅÛËÉ. íÏÖÅÔÅ ÓßÝÏ ÔÁËÁ ÄÁ ÉÚÔÒÉ×ÁÔÅ ÄÕÍÉ ÉÌÉ -ÒÅÄÏ×Å. åÔÏ ÏÂÏÂÝÅÎÉÅ ÎÁ ÉÚÔÒÉ×ÁÝÉÔÅ ÄÅÊÓÔ×ÉÑ: - - ÉÚÔÒÉ×ÁÎÅ ÎÁ ÚÎÁËÁ ÔÏÞÎÏ ÐÒÅÄÉ ËÕÒÓÏÒÁ - C-d ÉÚÔÒÉ×ÁÎÅ ÎÁ ÚÎÁËÁ ÔÏÞÎÏ ÓÌÅÄ ËÕÒÓÏÒÁ - - M- ÉÚÔÒÉ×ÁÎÅ ÎÁ ÄÕÍÁÔÁ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÏ ÐÒÅÄÉ ËÕÒÓÏÒÁ - M-d ÉÚÔÒÉ×ÁÎÅ ÎÁ ÄÕÍÁÔÁ ÓÌÅÄ ËÕÒÓÏÒÁ - - C-k ÉÚÔÒÉ×ÁÎÅ ÏÔ ÍÑÓÔÏÔÏ ÎÁ ËÕÒÓÏÒÁ ÄÏ ËÒÁÑ ÎÁ ÒÅÄÁ - M-k ÉÚÔÒÉ×ÁÎÅ ÄÏ ËÒÁÑ ÎÁ ÔÅËÕÝÏÔÏ ÉÚÒÅÞÅÎÉÅ - -úÁÂÅÌÅÖÅÔÅ, ÞÅ É C-d ÓÒÁ×ÎÅÎÉ Ó M- É M-d ÒÁÚÛÉÒÑ×ÁÔ -ÐÏÄÏÂÉÅÔÏ ÚÁÐÏÞÎÁÔÏ ÏÔ C-f É M-f (ÄÏÂÒÅ, ÎÅ Å ÎÁÉÓÔÉÎÁ -ËÏÎÔÒÏÌÉÒÁÝ ÚÎÁË, ÎÏ ÎÅËÁ ÎÅ ÓÅ ÂÅÚÐÏËÏÉÍ ÚÁ ÔÏ×Á). C-k É M-k ÓÁ -ÐÏÄÏÂÎÉ ÎÁ C-e É M-e × ÓÍÉÓßÌ, ÞÅ ÅÄÎÉÔÅ ÓÁ ÚÁ ÒÅÄÏ×Å, Á ÄÒÕÇÉÔÅ ÚÁ -ÉÚÒÅÞÅÎÉÑ. - -íÏÖÅÔÅ ÓßÝÏ ÄÁ ÐÒÅÍÁÈÎÅÔÅ ×ÓÑËÁ ÞÁÓÔ ÏÔ ÂÕÆÅÒÁ Ó ÅÄÉÎ ÕÎÉ×ÅÒÓÁÌÅÎ -ÎÁÞÉÎ. ðÒÉÄ×ÉÖÅÔÅ ÓÅ ÄÏ ÅÄÉÎÉÑ ËÒÁÊ ÎÁ ÞÁÓÔÔÁ É ×ß×ÅÄÅÔÅ C-@ ÉÌÉ -C-ÉÎÔÅÒ×ÁÌ (ËÏÅÔÏ É ÄÁ Å ÏÔ Ä×ÅÔÅ). ðÒÉÄ×ÉÖÅÔÅ ÓÅ ÄÏ ÄÒÕÇÉÑ ËÒÁÊ ÎÁ -ÞÁÓÔÔÁ É ×ß×ÅÄÅÔÅ C-w. ôÏ×Á ÝÅ ÐÒÅÍÁÈÎÅ ÃÅÌÉÑ ÔÅËÓÔ ÍÅÖÄÕ ÔÅÚÉ Ä×Á -ËÒÁÑ. - ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÚÎÁËÁ í × ÎÁÞÁÌÏÔÏ ÎÁ ÐÒÅÄÉÛÎÉÑ ÁÂÚÁÃ. ->> ÷ß×ÅÄÅÔÅ C-ÉÎÔÅÒ×ÁÌ. åÍÁËÓ ÔÒÑÂ×Á ÄÁ ÉÚ×ÅÄÅ ÓßÏÂÝÅÎÉÅ "Mark set" × - ÄÏÌÎÉÑ ËÒÁÊ ÎÁ ÅËÒÁÎÁ. ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÂÕË×ÁÔÁ Ò × "ËÒÁÊ", ÎÁ ×ÔÏÒÉÑ ÒÅÄ ÏÔ ÁÂÚÁÃÁ. ->> ÷ß×ÅÄÅÔÅ C-w. ôÏ×Á ÝÅ ÐÒÅÍÁÈÎÅ ÔÅËÓÔÁ ÚÁÐÏÞ×ÁÝ ÏÔ í É ÚÁ×ßÒÛ×ÁÝ - ÔÏÞÎÏ ÐÒÅÄÉ Ò. - -òÁÚÌÉËÁÔÁ ÍÅÖÄÕ "ÐÒÅÍÁÈ×ÁÎÅ" (killing) É "ÉÚÔÒÉ×ÁÎÅ" (deleting) Å, ÞÅ -"ÐÒÅÍÁÈÎÁÔÉÑÔ" ÔÅËÓÔ ÍÏÖÅ ÄÁ ×ÍßËÎÁÔ ÎÁÎÏ×Ï, ÄÏËÁÔÏ "ÉÚÔÒÉÔÉÔÅ" ÎÅÝÁ -ÎÅ ÍÏÇÁÔ ÄÁ ÓÅ ×ÍßËÎÁÔ ÎÁÎÏ×Ï. ÷ÍßË×ÁÎÅÔÏ ÎÁÎÏ×Ï ÎÁ ÐÒÅÍÁÈÎÁÔ ÔÅËÓÔ -ÓÅ ÎÁÒÉÞÁ "ÉÚ×ÁÖÄÁÎÅ" (yanking). ïÂÝÏ ËÁÚÁÎÏ, ËÏÍÁÎÄÉÔÅ, ËÏÉÔÏ -ÏÔÓÔÒÁÎÑ×ÁÔ ÍÎÏÇÏ ÔÅËÓÔ, ÇÏ ÐÒÅÍÁÈ×ÁÔ (ÔÁËÁ ÞÅ ÔÏÊ ÄÁ ÍÏÖÅ ÄÁ ÂßÄÅ -ÉÚ×ÁÄÅÎ), ÄÏËÁÔÏ ËÏÍÁÎÄÉÔÅ, ËÏÉÔÏ ÏÔÓÔÒÁÎÑ×ÁÔ ÓÁÍÏ ÅÄÉÎ ÚÎÁË ÉÌÉ -ÉÚÔÒÉ×ÁÔ ÓÁÍÏ ÐÒÁÚÎÉ ÒÅÄÏ×Å É ÚÎÁÃÉ, ÉÚ×ßÒÛ×ÁÔ ÉÚÔÒÉ×ÁÎÅ (ÔÁËÁ ÞÅ ÎÅ -ÍÏÖÅÔÅ ÄÁ ÉÚ×ÁÄÉÔÅ ÔÏÚÉ ÔÅËÓÔ). - ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÎÁÞÁÌÏÔÏ ÎÁ ÒÅÄ, ËÏÊÔÏ ÎÅ Å ÐÒÁÚÅÎ. ôÏÇÁ×Á - ×ß×ÅÄÅÔÅ C-k ÚÁ ÄÁ ÐÒÅÍÁÈÎÅÔÅ ÔÅËÓÔÁ ÎÁ ÔÏÚÉ ÒÅÄ. ->> ÷ß×ÅÄÅÔÅ C-k ×ÔÏÒÉ ÐßÔ. ýÅ ×ÉÄÉÔÅ, ÞÅ ÔÏ×Á ÐÒÅÍÁÈ×Á ÚÎÁËÁ ÚÁ ÎÏ× - ÒÅÄ, ËÏÊÔÏ ÓÌÅÄ×Á ÒÅÄÁ. - -úÁÂÅÌÅÖÅÔÅ, ÞÅ ÅÄÉÎÉÞÎÏ C-k ÐÒÅÍÁÈ×Á ÓßÄßÒÖÁÎÉÅÔÏ ÎÁ ÒÅÄÁ, Á -ÓÌÅÄ×ÁÝÏÔÏ C-k ÐÒÅÍÁÈ×Á ÃÅÌÉÑ ÒÅÄ, É ÐÒÁ×É ÄÒÕÇÉÔÅ ÒÅÄÏ×Å ÄÁ ÓÅ -ÐÒÉÄ×ÉÖÁÔ ÎÁÇÏÒÅ. C-k ÏÂÒÁÂÏÔ×Á ÞÉÓÌÏ×ÉÔÅ ÁÒÇÕÍÅÎÔÉ ÐÏ ÓÐÅÃÉÁÌÅÎ -ÎÁÞÉÎ: ÐÒÅÍÁÈ×ÁÔ ÓÅ ÔÏÌËÏ×Á ÎÁ ÂÒÏÊ ÒÅÄÏ×Å é ÔÑÈÎÏÔÏ ÓßÄßÒÖÁÎÉÅ. ôÏ×Á -ÎÅ Å ÐÒÏÓÔÏ ÐÏ×ÔÏÒÅÎÉÅ. C-u 2 C-k ÐÒÅÍÁÈ×Á Ä×Á ÒÅÄÁ É ÔÅÈÎÉÔÅ ÚÎÁÃÉ -ÚÁ ÎÏ× ÒÅÄ; ×ß×ÅÖÄÁÎÅÔÏ ÎÁ C-k Ä×Á ÐßÔÉ ÎÅ ÐÒÁ×É ÔÏ×Á. - -÷ÒßÝÁÎÅÔÏ ÏÂÒÁÔÎÏ ÎÁ ÔÅËÓÔ ÓÅ ÎÁÒÉÞÁ "ÉÚ×ÁÖÄÁÎÅ". (íÉÓÌÅÔÅ ÚÁ ÎÅÇÏ -ËÁÔÏ ÚÁ ÉÚ×ÁÖÄÁÎÅ ÏÂÒÁÔÎÏ, ÉÌÉ ÄÒßÐ×ÁÎÅ ÏÂÒÁÔÎÏ, ÎÁ ÔÅËÓÔ, ËÏÊÔÏ Å ÂÉÌ -ÐÒÅÍÁÈÎÁÔ.) íÏÖÅÔÅ ÄÁ ÉÚ×ÁÖÄÁÔÅ ÐÒÅÍÁÈÎÁÔÉÑ ÔÅËÓÔ ÉÌÉ ÎÁ ÓßÝÏÔÏ -ÍÑÓÔÏ, ÏÔËßÄÅÔÏ Å ÂÉÌ ÐÒÅÍÁÈÎÁÔ, ÉÌÉ ÎÁ ÄÒÕÇÏ ÍÑÓÔÏ × ÂÕÆÅÒÁ, ÄÁÖÅ É × -ÒÁÚÌÉÞÅÎ ÆÁÊÌ. íÏÖÅÔÅ ÄÁ ÉÚ×ÁÖÄÁÔÅ ÅÄÉÎ É ÓßÝ ÔÅËÓÔ ÎÑËÏÌËÏ ÐßÔÉ; -ÔÏ×Á ÐÒÁ×É ÎÑËÏÌËÏ ËÏÐÉÑ ÏÔ ÎÅÇÏ. - -ëÏÍÁÎÄÁÔÁ ÚÁ ÉÚ×ÁÖÄÁÎÅ Å C-y. ôÑ ×ÍßË×Á ÎÁÎÏ×Ï ÐÏÓÌÅÄÎÉÑ ÐÒÅÍÁÈÎÁÔ -ÔÅËÓÔ × ÔÅËÕÝÏÔÏ ÍÑÓÔÏ ÎÁ ËÕÒÓÏÒÁ. - ->> ïÐÉÔÁÊÔÅ ÇÏ: ×ß×ÅÄÅÔÅ C-y ÚÁ ÄÁ ÉÚ×ÅÄÅÔÅ ÔÅËÓÔÁ ÏÂÒÁÔÎÏ. - -áËÏ ÎÁÐÒÁ×ÉÔÅ ÎÑËÏÌËÏ C-k × ÒÅÄ, ×ÓÉÞËÏ ÏÔ ÐÒÅÍÁÈÎÁÔÉÑ ÔÅËÓÔ ÓÅ -ÚÁÐÁÚ×Á ÚÁÅÄÎÏ, ÔÁËÁ ÞÅ ÅÄÎÏ C-y ÝÅ ÉÚ×ÁÄÉ ×ÓÉÞËÉ ÒÅÄÏ×Å ÎÁ×ÅÄÎßÖ. - ->> îÁÐÒÁ×ÅÔÅ ÔÏ×Á ÓÅÇÁ, ×ß×ÅÄÅÔÅ C-k ÎÑËÏÌËÏ ÐßÔÉ. - -óÅÇÁ ÚÁ ÄÁ ÉÚËÁÒÁÔÅ ÐÒÅÍÁÈÎÁÔÉÑ ÔÅËÓÔ: - ->> ÷ß×ÅÄÅÔÅ C-y. óÌÅÄ ÔÏ×Á ÐÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÎÁÄÏÌÕ ÎÑËÏÌËÏ ÒÅÄÁ É - ×ß×ÅÄÅÔÅ C-y ÏÔÎÏ×Ï. óÅÇÁ ×ÉÖÄÁÔÅ ËÁË ÄÁ ËÏÐÉÒÁÔÅ ÎÑËÁËß× ÔÅËÓÔ. - -ëÁË×Ï ÄÁ ÐÒÁ×ÉÔÅ ÁËÏ ÉÍÁÔÅ ÎÑËÁËß× ÔÅËÓÔ, ËÏÊÔÏ ÉÓËÁÔÅ ÄÁ ÉÚ×ÁÄÉÔÅ -ÏÂÒÁÔÎÏ, É ÓÌÅÄ ÔÏ×Á ÐÒÅÍÁÈÎÅÔÅ ÎÅÝÏ ÄÒÕÇÏ? C-y ÝÅ ÉÚ×ÁÄÉ ÐÏÓÌÅÄÎÏÔÏ -ÐÒÅÍÁÈ×ÁÎÅ. îÏ ÐÒÅÄÉÛÎÉÑÔ ÔÅËÓÔ ÎÅ Å ÚÁÇÕÂÅÎ. íÏÖÅÔÅ ÄÁ ÇÏ ×ßÒÎÅÔÅ -ÏÂÒÁÔÎÏ ÉÚÐÏÌÚ×ÁÊËÉ ËÏÍÁÎÄÁÔÁ M-y. óÌÅÄ ËÁÔÏ ÉÚÐßÌÎÉÔÅ C-y ÚÁ ÄÁ -×ÚÅÍÅÔÅ ÐÏÓÌÅÄÎÏÔÏ ÐÒÅÍÁÈ×ÁÎÅ, ×ß×ÅÖÄÁÎÅÔÏ ÎÁ M-y ÚÁÍÅÎÑ ÔÏÚÉ ÉÚ×ÁÄÅÎ -ÔÅËÓÔ Ó ÐÒÅÄÉÛÎÏÔÏ ÐÒÅÍÁÈ×ÁÎÅ. ÷ß×ÅÖÄÁÎÅÔÏ ÎÁ M-y ÏÔÎÏ×Ï É ÏÔÎÏ×Ï -×ÒßÝÁ ÐÏ-ÒÁÎÎÉ É ÐÏ-ÒÁÎÎÉ ÐÒÅÍÁÈ×ÁÎÉÑ. ëÏÇÁÔÏ ÓÔÉÇÎÅÔÅ ÔÅËÓÔÁ, ËÏÊÔÏ -ÔßÒÓÉÔÅ, ÎÅ Å ÎÕÖÎÏ ÄÁ ÐÒÁ×ÉÔÅ ÎÉÝÏ ÐÏ×ÅÞÅ, ÚÁ ÄÁ ÇÏ ÚÁÄßÒÖÉÔÅ. -ðÒÏÓÔÏ ÐÒÏÄßÌÖÅÔÅ Ó ÒÅÄÁËÔÉÒÁÎÅÔÏ, ÏÓÔÁ×ÑÊËÉ ÉÚ×ÁÄÅÎÉÑ ÔÅËÓÔ ËßÄÅÔÏ ÓÉ -Å. - -áËÏ ×ß×ÅÄÅÔÅ M-y ÄÏÓÔÁÔßÞÅÎ ÂÒÏÊ ÐßÔÉ ÝÅ ÓÅ ×ßÒÎÅÔÅ × ÎÁÞÁÌÎÏÔÏ -ÐÏÌÏÖÅÎÉÅ (ÐÏÓÌÅÄÎÏÔÏ ÐÒÅÍÁÈ×ÁÎÅ). - ->> ðÒÅÍÁÈÎÅÔÅ ÒÅÄ, ÐÒÉÄ×ÉÖÅÔÅ ÓÅ ÎÑËßÄÅ, ÐÒÅÍÁÈÎÅÔÅ ÄÒÕÇ ÒÅÄ. - éÚÐßÌÎÅÔÅ C-y ÚÁ ÄÁ ×ßÒÎÅÔÅ ÏÂÒÁÔÎÏ ×ÔÏÒÉÑ ÐÒÅÍÁÈÎÁÔ ÒÅÄ. - éÚÐßÌÎÅÔÅ M-y É ÔÏÚÉ ×ßÒÎÁÔ ÔÅËÓÔ ÝÅ ÂßÄÅ ÚÁÍÅÎÅÎ Ó ÐßÒ×ÉÑ - ÐÒÅÍÁÈÎÁÔ ÒÅÄ. - éÚÐßÌÎÅÔÅ ÎÑËÏÌËÏ M-y É ×ÉÖÔÅ ËÁË×Ï ÓÅ ÐÏÌÕÞÁ×Á. éÚÐßÌÎÑ×ÁÊÔÅ ÔÏ×Á - ÄÏËÁÔÏ ×ÔÏÒÉÑÔ ÐÒÅÍÁÈÎÁÔ ÒÅÄ ÓÅ ×ßÒÎÅ, É ÓÌÅÄ ÔÏ×Á ÏÝÅ ÎÑËÏÌËÏ - ÐßÔÉ. - áËÏ ÉÓËÁÔÅ, ÍÏÖÅ ÄÁ ÐÒÏÂ×ÁÔÅ ÄÁ ÄÁÄÅÔÅ ÎÁ M-y ÐÏÌÏÖÉÔÅÌÎÉ É - ÏÔÒÉÃÁÔÅÌÎÉ ÞÉÓÌÏ×É ÁÒÇÕÍÅÎÔÉ. - - -* ïôíñîá +>> Âúâåäåòå òåêñò, äîêàòî ñòèãíåòå äÿñíàòà ãðàíèöà, è ïðîäúëæåòå ñ + âìúêâàíåòî. Ùå âèäèòå ïðîäúëæåíèåòî íà ðåäà äà ñå ïîêàçâà. + +>> Èçïîëçâàéòå íÿêîëêî , çà äà èçòðèåòå òåêñòà, äîêàòî ðåäúò + ñå âìåñòè â åäèí åêðàíåí ðåä. Ïðîäúëæåíèåòî íà ðåäà èç÷åçâà. + +Ìîæå äà èçòðèåòå çíàêà çà íîâ ðåä òî÷íî êàêòî âñåêè äðóã çíàê. +Èçòðèâàíåòî íà çíàêà çà íîâ ðåä ìåæäó äâà ðåäà ãè ñëèâà â åäèí ðåä. +Àêî ïîëó÷åíèÿò êîìáèíèðàí ðåä å òâúðäå äúëúã, çà äà ñå âìåñòè â +øèðèíàòà íà åêðàíà, òîé ùå áúäå ïîêàçàí êàòî ïðîäúëæåí ðåä. + +>> Ïðèäâèæåòå êóðñîðà â íà÷àëîòî íà ðåä è âúâåäåòå . Òîâà ùå + ñëåå òîçè ðåä ñ ïðåäèøíèÿ. + +>> Âúâåäåòå , çà äà âìúêíåòå íàíîâî çíàêà çà íîâ ðåä, êîéòî + èçòðèõòå. + +Çàïîìíåòå, ÷å íà ïîâå÷åòî êîìàíäè íà Emacs ìîæå äà áúäå çàäàäåí áðîÿ÷ +íà ïîâòîðåíèÿòà; òîâà âêëþ÷âà âìúêâàíåòî íà òåêñòîâè çíàöè. +Ïîâòàðÿíåòî íà òåêñòîâ çíàê ãî âìúêâà íÿêîëêî ïúòè. + +>> Îïèòàéòå òîâà ñåãà -- âúâåäåòå C-u 8 *, çà äà âìúêíåòå ********. + +Ñåãà âèå ñòå íàó÷èëè íàé-îñíîâíèòå íà÷èíè çà âúâåæäàíå íà íåùî â Emacs +è ïîïðàâÿíå íà ãðåøêè. Ìîæåòå ñúùî òàêà äà èçòðèâàòå äóìè èëè ðåäîâå. +Åòî îáîáùåíèå íà èçòðèâàùèòå äåéñòâèÿ: + + Èçòðèâàíå íà çíàêà òî÷íî ïðåäè êóðñîðà + C-d Èçòðèâàíå íà çíàêà òî÷íî ñëåä êóðñîðà + + M- Èçòðèâàíå íà äóìàòà íåïîñðåäñòâåíî ïðåäè êóðñîðà + M-d Èçòðèâàíå íà äóìàòà ñëåä êóðñîðà + + C-k Èçòðèâàíå îò ìÿñòîòî íà êóðñîðà äî êðàÿ íà ðåäà + M-k Èçòðèâàíå äî êðàÿ íà òåêóùîòî èçðå÷åíèå + +Çàáåëåæåòå, ÷å è C-d, ñðàâíåíè ñ M- è M-d, +ðàçøèðÿâàò ïîäîáèåòî, çàïî÷íàòî îò C-f è M-f (äîáðå, íå å +íàèñòèíà êîíòðîëèðàù çíàê, íî íåêà íå ñå áåçïîêîèì çà òîâà). C-k è +M-k ñà ïîäîáíè íà C-e è M-e â ñìèñúë, ÷å åäíèòå ñà çà ðåäîâå, à +äðóãèòå -- çà èçðå÷åíèÿ. + +Ìîæåòå ñúùî äà ïðåìàõíåòå âñÿêà ÷àñò îò áóôåðà ñ åäèí óíèâåðñàëåí +íà÷èí. Ïðèäâèæåòå ñå äî åäèíèÿ êðàé íà ÷àñòòà è âúâåäåòå C-@ èëè +C- (êîåòî è äà å îò äâåòå). ( å êëàâèøúò èíòåðâàë.) +Ïðèäâèæåòå ñå äî äðóãèÿ êðàé íà ÷àñòòà è âúâåäåòå C-w. Òîâà ùå èçðåæå +öåëèÿ òåêñò ìåæäó òåçè äâà êðàÿ. + +>> Ïðèäâèæåòå êóðñîðà äî çíàêà "Ì" â íà÷àëîòî íà ïðåäèøíèÿ àáçàö. +>> Âúâåäåòå C-. Emacs òðÿáâà äà èçâåäå ñúîáùåíèå "Mark set" â + äîëíèÿ êðàé íà åêðàíà. +>> Ïðèäâèæåòå êóðñîðà äî áóêâàòà "ð" â "êðàé" íà âòîðèÿ ðåä îò àáçàöà. +>> Âúâåäåòå C-w. Òîâà ùå èçðåæå òåêñòà, çàïî÷âàù îò "Ì" è çàâúðøâàù + òî÷íî ïðåäè "ð". + +Ðàçëèêàòà ìåæäó "èçðÿçâàíå" (kill, cut) è "èçòðèâàíå" (delete) å, ÷å +"èçðÿçàíèÿò" òåêñò ìîæå äà áúäå âìúêíàò íàíîâî, äîêàòî "èçòðèòèòå" +íåùà íå ìîãàò äà ñå âìúêíàò íàíîâî. Ïîñòàâÿíåòî íàíîâî íà èçðÿçàí +òåêñò ñå íàðè÷à "âìúêâàíå" (yank, paste). Îáùî êàçàíî, êîìàíäèòå, +êîèòî îòñòðàíÿâàò ìíîãî òåêñò, ãî èçðÿçâàò (òàêà ÷å òîé äà ìîæå äà +áúäå âìúêíàò), äîêàòî êîìàíäèòå, êîèòî îòñòðàíÿâàò ñàìî åäèí çíàê èëè +èçòðèâàò ñàìî ïðàçíè ðåäîâå è çíàöè, èçâúðøâàò èçòðèâàíå (òàêà ÷å íå +ìîæåòå äà âìúêíåòå íàíîâî òîçè òåêñò). + +>> Ïðèäâèæåòå êóðñîðà äî íà÷àëîòî íà ðåä, êîéòî íå å ïðàçåí. Òîãàâà + âúâåäåòå C-k, çà äà èçðåæåòå òåêñòà íà òîçè ðåä. +>> Âúâåäåòå C-k âòîðè ïúò. Ùå âèäèòå, ÷å òîâà èçðÿçâà çíàêà çà íîâ + ðåä, êîéòî ñëåäâà ðåäà. + +Çàáåëåæåòå, ÷å åäèíè÷íî C-k èçðÿçâà ñúäúðæàíèåòî íà ðåäà, à ñëåäâàùîòî +C-k èçðÿçâà öåëèÿ ðåä è ïðàâè äðóãèòå ðåäîâå äà ñå ïðèäâèæàò íàãîðå. +C-k îáðàáîòâà ÷èñëîâèòå àðãóìåíòè ïî ñïåöèàëåí íà÷èí: ïðåìàõâàò ñå +òîëêîâà íà áðîé ðåäîâå È òÿõíîòî ñúäúðæàíèå. Òîâà íå å ïðîñòî +ïîâòîðåíèå. C-u 2 C-k èçðÿçâà äâà ðåäà è òåõíèòå çíàöè çà íîâ ðåä; +âúâåæäàíåòî íà C-k äâà ïúòè íå ïðàâè òîâà. + +Âðúùàíåòî îáðàòíî íà òåêñò ñå íàðè÷à "âìúêâàíå". (Ìèñëåòå çà íåãî +êàòî çà èçâàæäàíå îáðàòíî, èëè äðúïâàíå îáðàòíî, íà òåêñò, êîéòî å áèë +èçðÿçàí.) Ìîæåòå äà âìúêâàòå èçðÿçàíèÿ òåêñò èëè íà ñúùîòî ìÿñòî, +îòêúäåòî å áèë ïðåìàõíàò, èëè íà äðóãî ìÿñòî â ðåäàêòèðàíèÿ òåêñò, +äàæå è â ðàçëè÷åí ôàéë. Ìîæåòå äà âìúêâàòå åäèí è ñúù òåêñò íÿêîëêî +ïúòè; òîâà ïðàâè íÿêîëêî êîïèÿ îò íåãî. + +Êîìàíäàòà çà âìúêâàíå å C-y. Òÿ âìúêâà íàíîâî ïîñëåäíèÿ èçðÿçàí òåêñò +â òåêóùîòî ìÿñòî íà êóðñîðà. + +>> Îïèòàéòå ãî: âúâåäåòå C-y, çà äà èçâåäåòå òåêñòà îáðàòíî. + +Àêî íàïðàâèòå íÿêîëêî C-k â ðåä, âñè÷êî îò èçðÿçàíèÿ òåêñò ñå çàïàçâà +çàåäíî, òàêà ÷å åäíî C-y ùå èçâàäè âñè÷êè ðåäîâå íàâåäíúæ. + +>> Íàïðàâåòå òîâà ñåãà, âúâåäåòå C-k íÿêîëêî ïúòè. + +Ñåãà, çà äà èçêàðàòå èçðÿçàíèÿ òåêñò: + +>> Âúâåäåòå C-y. Ñëåä òîâà ïðèäâèæåòå êóðñîðà íàäîëó íÿêîëêî ðåäà è + âúâåäåòå C-y îòíîâî. Ñåãà âèæäàòå êàê äà êîïèðàòå íÿêàêúâ òåêñò. + +Êàêâî äà ïðàâèòå, àêî èìàòå íÿêàêúâ òåêñò, êîéòî èñêàòå äà âìúêíåòå +îáðàòíî, è ñëåä òîâà èçðåæåòå íåùî äðóãî? C-y ùå èçâàäè ïîñëåäíîòî +èçðÿçâàíå. Íî ïðåäèøíèÿò òåêñò íå å çàãóáåí. Ìîæåòå äà ãî âúðíåòå +îáðàòíî, èçïîëçâàéêè êîìàíäàòà M-y. Ñëåä êàòî èçïúëíèòå C-y, çà äà +âçåìåòå ïîñëåäíîòî èçðÿçâàíå, âúâåæäàíåòî íà M-y çàìåíÿ òîçè èçâàäåí +òåêñò ñ ïðåäèøíîòî èçðÿçâàíå. Âúâåæäàíåòî íà M-y îòíîâî è îòíîâî +âðúùà ïî-ðàííè è ïî-ðàííè èçðÿçâàíèÿ. Êîãàòî ñòèãíåòå òåêñòà, êîéòî +òúðñèòå, íå å íóæíî äà ïðàâèòå íèùî ïîâå÷å, çà äà ãî çàäúðæèòå. +Ïðîñòî ïðîäúëæåòå ñ ðåäàêòèðàíåòî, îñòàâÿéêè èçâàäåíèÿ òåêñò, êúäåòî +ñè å. + +Àêî âúâåäåòå M-y äîñòàòú÷åí áðîé ïúòè, ùå ñå âúðíåòå â íà÷àëíîòî +ïîëîæåíèå (ïîñëåäíîòî èçðÿçâàíå). + +>> Èçðåæåòå ðåä, ïðèäâèæåòå ñå íÿêúäå, èçðåæåòå äðóã ðåä. + Èçïúëíåòå C-y, çà äà âúðíåòå îáðàòíî âòîðèÿ èçðÿçàí ðåä. + Èçïúëíåòå M-y è òîçè âúðíàò òåêñò ùå áúäå çàìåíåí ñ ïúðâèÿ + èçðÿçàí ðåä. + Èçïúëíåòå íÿêîëêî M-y è âèæòå êàêâî ñå ïîëó÷àâà. Èçïúëíÿâàéòå òîâà, + äîêàòî âòîðèÿò èçðÿçàí ðåä ñå âúðíå, è ñëåä òîâà îùå íÿêîëêî ïúòè. + Àêî èñêàòå, ìîæå äà ïðîáâàòå äà äàäåòå íà M-y ïîëîæèòåëíè è + îòðèöàòåëíè ÷èñëîâè àðãóìåíòè. + + +* ÎÒÌßÍÀ -------- -áËÏ ÎÁÐÒÁ×ÉÔÅ ÐÒÏÍÑÎÁ × ÔÅËÓÔÁ É ÓÌÅÄ ÔÏ×Á ÒÅÛÉÔÅ, ÞÅ ÔÏ×Á Å ÂÉÌÏ -ÇÒÅÛËÁ, ×ÉÅ ÍÏÖÅÔÅ ÄÁ ÏÔÍÅÎÉÔÅ ÐÒÏÍÑÎÁÔÁ Ó ËÏÍÁÎÄÁÔÁ ÚÁ ÏÔÍÅÎÑÎÅ, C-x +Àêî íàïðàâèòå ïðîìÿíà â òåêñòà è ñëåä òîâà ðåøèòå, ÷å òîâà å áèëî +ãðåøêà, âèå ìîæåòå äà îòìåíèòå ïðîìÿíàòà ñ êîìàíäàòà çà îòìåíÿíå, C-x u. -ïÂÉËÎÏ×ÅÎÏ, C-x u ÏÔÍÅÎÑ ÐÒÏÍÅÎÉÔÅ ÎÁÐÒÁ×ÅÎÉ ÏÔ ÅÄÎÁ ËÏÍÁÎÄÁ; ÁËÏ -ÐÏ×ÔÁÒÑÔÅ C-x u ÎÑËÏÌËÏ ÐßÔÉ ÐÏÓÌÅÄÏ×ÁÔÅÌÎÏ, ×ÓÑËÏ ÐÏ×ÔÏÒÅÎÉÅ ÏÔÍÅÎÑ -ÏÝÅ ÅÄÎÁ ËÏÍÁÎÄÁ. +Îáèêíîâåíî C-x u îòìåíÿ ïðîìåíèòå, íàïðàâåíè îò åäíà êîìàíäà; àêî +ïîâòàðÿòå C-x u íÿêîëêî ïúòè ïîñëåäîâàòåëíî, âñÿêî ïîâòîðåíèå îòìåíÿ +îùå åäíà êîìàíäà. -îÏ ÉÍÁ Ä×Å ÉÚËÌÀÞÅÎÉÑ: ËÏÍÁÎÄÉÔÅ, ËÏÉÔÏ ÎÅ ÐÒÏÍÅÎÑÔ ÔÅËÓÔÁ ÎÅ ÓÅ ÂÒÏÑÔ -(ÔÏ×Á ×ËÌÀÞ×Á ÐÒÉÄ×ÉÖ×ÁÎÅÔÏ ÎÁ ËÕÒÓÏÒÁ É ÓËÒÏÌÉÒÁÝÉÔÅ ËÏÍÁÎÄÉ), É -ÓÁÍÏ×ÍßË×ÁÝÉÔÅ ÓÅ ÚÎÁÃÉ ÏÂÉËÎÏ×ÅÎÏ ÓÅ ÏÂÒÁÂÏÔ×ÁÔ ÎÁ ÇÒÕÐÉ, ×ÓÑËÁ ÄÏ 20 -ÚÎÁËÁ. (ôÏ×Á ÎÁÍÁÌÑ×Á ÂÒÏÑ ÎÁ C-x u, ËÏÉÔÏ ÔÒÑÂ×Á ÄÁ ×ß×ÅÄÅÔÅ ÚÁ ÄÁ -ÏÔÍÅÎÉÔÅ ×ß×ÅÄÅÎ ÔÅËÓÔ.) +Íî èìà äâå èçêëþ÷åíèÿ: êîìàíäèòå, êîèòî íå ïðîìåíÿò òåêñòà, íå ñå +áðîÿò (òîâà âêëþ÷âà ïðèäâèæâàíåòî íà êóðñîðà è ñêðîëèðàùèòå êîìàíäè), +è ñàìîâìúêâàùèòå ñå çíàöè îáèêíîâåíî ñå îáðàáîòâàò íà ãðóïè, âñÿêà äî +20 çíàêà. (Òîâà íàìàëÿâà áðîÿ íà C-x u, êîèòî òðÿáâà äà âúâåäåòå, çà +äà îòìåíèòå âúâåäåí òåêñò.) ->> ðÒÅÍÁÈÎÅÔÅ ÔÏÚÉ ÒÅÄ Ó C-k, ÓÌÅÄ ÔÏ×Á ×ß×ÅÄÅÔÅ C-x u É ÔÏÊ ÔÒÑÂ×Á ÄÁ - ÓÅ ÐÏÑ×É ÏÔÎÏ×Ï. +>> Èçðåæåòå òîçè ðåä ñ C-k, ñëåä òîâà âúâåäåòå C-x u è òîé òðÿáâà äà + ñå ïîÿâè îòíîâî. -C-_ Å ÁÌÔÅÒÎÁÔÉ×ÎÁ ÏÔÍÅÎÑÝÁ ËÏÍÁÎÄÁ; ÔÑ ÒÁÂÏÔÉ ÔÏÞÎÏ ËÁÔÏ C-x u, ÎÏ Å -ÐÏ-ÌÅÓÎÁ ÚÁ ×ß×ÅÖÄÁÎÅ ÎÑËÏÌËÏ ÐßÔÉ ÐÏÓÌÅÄÏ×ÁÔÅÌÎÏ. îÅÄÏÓÔÁÔßËßÔ ÎÁ -C_- Å, ÞÅ ÎÁ ÎÑËÏÉ ËÌÁ×ÉÁÔÕÒÉ ÎÅ Å ÏÞÅ×ÉÄÎÏ ËÁË ÔÒÑÂ×Á ÄÁ ÓÅ ×ß×ÅÄÅ. -úÁÔÏ×Á ÏÓÉÇÕÒÑ×ÁÍÅ É C-x u. îÁ ÎÑËÏÉ ÔÅÒÍÉÎÁÌÉ ÍÏÖÅ ÄÁ ×ß×ÅÄÅÔÅ C-_ Ó -×ß×ÅÖÄÁÎÅ ÎÁ / ÄÏËÁÔÏ ÓÔÅ ÚÁÄßÒÖÁÌÉ CONTROL. +C-_ å àëòåðíàòèâíà îòìåíÿùà êîìàíäà; òÿ ðàáîòè òî÷íî êàòî C-x u, íî å +ïî-ëåñíà çà âúâåæäàíå íÿêîëêî ïúòè ïîñëåäîâàòåëíî. Íåäîñòàòúêúò íà +C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå. +Çàòîâà îñèãóðÿâàìå è C-x u. Íà íÿêîè òåðìèíàëè ìîæå äà âúâåäåòå C-_ ñ +âúâåæäàíå íà /, äîêàòî çàäúðæàòå CONTROL. -þÉÓÌÏ× ÁÒÇÕÍÅÎÔ ËßÍ C-_ ÉÌÉ C-x u ÄÅÊÓÔ×Á ËÁÔÏ ÂÒÏÑÞ ÎÁ ÐÏ×ÔÏÒÅÎÉÑÔÁ. +×èñëîâ àðãóìåíò êúì C-_ èëè C-x u äåéñòâà êàòî áðîÿ÷ íà ïîâòîðåíèÿòà. -íÏÖÅ ÄÁ ÏÔÍÅÎÑÔÁ ÉÚÔÒÉ×ÁÎÅ ÎÁ ÔÅËÓÔ ÔÏÞÎÏ ËÁËÔÏ ÏÔÍÅÎÑÔÅ ÐÒÅÍÁÈ×ÁÎÅ ÎÁ -ÔÅËÓÔ. òÁÚÌÉÞÉÅÔÏ ÍÅÖÄÕ ÐÒÅÍÁÈ×ÁÎÅÔÏ ÎÁ ÎÅÝÏ É ÉÚÔÒÉ×ÁÎÅÔÏ ÍÕ -×ßÚÄÅÊÓÔ×Á ÄÁÌÉ ÝÅ ÍÏÖÅ ÄÁ ÇÏ ÉÚ×ÁÄÉÔÅ Ó C-y; ÚÁ ÏÔÍÅÎÑÎÅÔÏ ÎÑÍÁ -ÒÁÚÌÉËÁ ÍÅÖÄÕ Ä×ÁÔÁ ×ÉÄÁ. +Ìîæå äà îòìåíÿòà èçòðèâàíå íà òåêñò òî÷íî êàêòî îòìåíÿòå èçðÿçâàíå íà +òåêñò. Ðàçëè÷èåòî ìåæäó èçðÿçâàíåòî íà íåùî è èçòðèâàíåòî ìó +âúçäåéñòâà äàëè ùå ìîæå äà ãî èçâàäèòå ñ C-y; çà îòìåíÿíåòî íÿìà +ðàçëèêà ìåæäó äâàòà âèäà. -* æáêìï÷å +* ÔÀÉËÎÂÅ --------- -úÁ ÄÁ ÎÁÐÒÁ×ÉÔÅ ÔÅËÓÔÁ, ËÏÊÔÏ ÒÅÄÁËÔÉÒÁÔÅ, ÐÏÓÔÏÑÎÅÎ, ÔÒÑÂ×Á ÄÁ ÇÏ -ÓÌÏÖÉÔÅ ×ß× ÆÁÊÌ. ÷ ÐÒÏÔÉ×ÅÎ ÓÌÕÞÁÊ ÔÏÊ ÝÅ ÉÚÞÅÚÎÅ, ËÏÇÁÔÏ åÍÁËÓ -ÐÒÉËÌÀÞÉ. úÁ ÄÁ ÓÌÏÖÉÔÅ ×ÁÛÉÑ ÔÅËÓÔ ×ß× ÆÁÊÌ, ÔÒÑÂ×Á ÄÁ "ÎÁÍÅÒÉÔÅ" -ÆÁÊÌÁ ÐÒÅÄÉ ÄÁ ×ß×ÅÖÄÁÔÅ ÔÅËÓÔÁ. (ôÏ×Á ÓßÝÏ ÓÅ ÎÁÒÉÞÁ "ÐÏÓÅÝÁ×ÁÎÅ" ÎÁ -ÆÁÊÌÁ.) - -îÁÍÉÒÁÎÅ ÎÁ ÆÁÊÌ ÏÚÎÁÞÁ×Á, ÞÅ ×ÉÖÄÁÔÅ ÓßÄßÒÖÁÎÉÅÔÏ ÍÕ × åÍÁËÓ. ÷ -ÍÎÏÇÏ ÓÌÕÞÁÉ ÔÏ×Á Å ËÁÔÏ ÄÁ ÒÅÄÁËÔÉÒÁÔÅ ÓÁÍÉÑ ÆÁÊÌ. ïÂÁÞÅ, ÐÒÏÍÅÎÉÔÅ, -ËÏÉÔÏ ÐÒÁ×ÉÔÅ ÉÚÐÏÌÚ×ÁÊËÉ åÍÁËÓ, ÎÅ ÏÓÔÁ×ÁÔ ÐÏÓÔÏÑÎÎÉ ÄÏËÁÔÏ ÎÅ -"ÚÁÐÉÛÅÔÅ" ÆÁÊÌÁ. ôÏ×Á Å ÔÁËÁ ÚÁ ÄÁ ÓÅ ÐÒÅÄÏÔ×ÒÁÔÉ ÏÓÔÁ×ÑÎÅÔÏ ÎÁ -ÐÏÌÕÐÒÏÍÅÎÅÎ ÆÁÊÌ × ÓÉÓÔÅÍÁÔÁ, ËÏÇÁÔÏ ÎÅ ÉÓËÁÔÅ ÔÏ×Á. äÏÒÉ ËÏÇÁÔÏ -ÚÁÐÉÓ×ÁÔÅ, åÍÁËÓ ÏÓÔÁ×Ñ ÎÁÞÁÌÎÉÑ ÆÁÊÌ ÐÏÄ ÐÒÏÍÅÎÅÎÏ ÉÍÅ × ÓÌÕÞÁÊ, ÞÅ -ÐÏ-ËßÓÎÏ ÒÅÛÉÔÅ, ÞÅ ×ÁÛÉÔÅ ÐÒÏÍÅÎÉ ÓÁ ÂÉÌÉ ÇÒÅÛËÁ. - -áËÏ ÐÏÇÌÅÄÎÅÔÅ × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ ÝÅ ×ÉÄÉÔÅ ÒÅÄ, ËÏÊÔÏ ÚÁÐÏÞ×Á É -ÚÁ×ßÒÛ×Á Ó ÔÉÒÅÔÁ É ÚÁÐÏÞ×Á Ó "--:-- TUTORIAL" ÉÌÉ ÎÅÝÏ ÐÏÄÏÂÎÏ. ôÁÚÉ -ÞÁÓÔ ÏÔ ÅËÒÁÎÁ ÐÏËÁÚ×Á ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ, ËÏÊÔÏ ÓÔÅ ÐÏÓÅÔÉÌÉ. ôÏÞÎÏ ÓÅÇÁ -×ÉÅ ÓÔÅ ÐÏÓÅÔÉÌÉ ÆÁÊÌ ÎÁÒÅÞÅÎ "TUTORIAL", ËÏÊÔÏ Å ×ÁÛÅÔÏ ÌÉÞÎÏ -ËÏÐÉÅ-ÞÅÒÎÏ×Á ÎÁ åÍÁËÓ ×ß×ÅÄÅÎÉÅÔÏ. ëÏÇÁÔÏ ÎÁÍÅÒÉÔÅ ÆÁÊÌ × åÍÁËÓ, -ÉÍÅÔÏ ÎÁ ÔÏÚÉ ÆÁÊÌ ÝÅ ÓÅ ÐÏÑ×É ÎÁ ÓßÝÏÔÏ ÍÑÓÔÏ. - -ïÓÏÂÅÎÏÓÔ ËÏÍÁÎÄÁÔÁ ÚÁ ÎÁÍÉÒÁÎÅ ÎÁ ÆÁÊÌ Å, ÞÅ ÔÒÑÂ×Á ÄÁ ËÁÖÅÔÅ ÉÍÅÔÏ -ÎÁ ÆÁÊÌÁ, ËÏÊÔÏ ÉÓËÁÔÅ. îÉÅ ÇÏ ÎÁÒÉÞÁÍÅ "ÞÅÔÅÎÅ ÎÁ ÁÒÇÕÍÅÎÔ ÏÔ -ÔÅÒÍÉÎÁÌÁ" (× ÔÏÚÉ ÓÌÕÞÁÊ ÁÒÇÕÍÅÎÔßÔ Å ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ). óÌÅÄ ËÁÔÏ -×ß×ÅÄÅÔÅ ËÏÍÁÎÄÁÔÁ - - C-x C-f îÁÍÉÒÁÎÅ ÎÁ ÆÁÊÌ - -åÍÁËÓ ×É ÐÏÄËÁÎÑ ÄÁ ×ß×ÅÄÅÔÅ ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ. éÍÅÔÏ ÎÁ ÆÁÊÌÁ, ËÏÅÔÏ -ÎÁÐÉÛÅÔÅ, ÓÅ ÐÏÑ×Ñ×Á × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ. òÅÄßÔ × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ ÓÅ -ÎÁÒÉÞÁ ÍÉÎÉÂÕÆÅÒ, ËÏÇÁÔÏ ÓÅ ÉÚÐÏÌÚ×Á ÚÁ ÔÏÚÉ ×ÉÄ ×ÈÏÄ. íÏÖÅÔÅ ÄÁ -ÉÚÐÏÌÚ×ÁÔÅ ÏÂÉËÎÏ×ÅÎÉÔÅ ËÏÍÁÎÄÉ ÚÁ ÒÅÄÁËÔÉÒÁÎÅ ÎÁ åÍÁËÓ ÚÁ ÄÁ -ÒÅÄÁËÔÉÒÁÔÅ ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ. - -ëÏÇÁÔÏ ×ß×ÅÖÄÁÔÅ ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ (ÉÌÉ ËÁËß×ÔÏ É ÄÁ Å ×ÈÏÄ × -ÍÉÎÉÂÕÆÅÒÁ), ÍÏÖÅÔÅ ÄÁ ÐÒÅËÒÁÔÉÔÅ ËÏÍÁÎÄÁÔÁ Ó C-g. - ->> ÷ß×ÅÄÅÔÅ C-x C-f É ÓÌÅÄ ÔÏ×Á C-g. ôÏ×Á ÐÒÅËÒÁÔÑ×Á ÍÉÎÉÂÕÆÅÒÁ, Á - ÓßÝÏ É ËÏÍÁÎÄÁÔÁ C-x C-f, ËÏÑÔÏ ÓÅ ÉÚÐßÌÎÑ×ÁÛÅ × ÍÉÎÉÂÕÆÅÒÁ. ôÁËÁ - ÞÅ ÎÅ ÎÁÍÉÒÁÔÅ ÆÁÊÌ. - -ëÏÇÁÔÏ ÐÒÉËÌÀÞÉÔÅ Ó ×ß×ÅÖÄÁÎÅÔÏ ÎÁ ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ, ×ß×ÅÄÅÔÅ -ÚÁ ÄÁ ÐÏËÁÖÅÔÅ ÔÏ×Á. ôÏÇÁ×Á C-x C-f ÔÒßÇ×Á ÄÁ ÒÁÂÏÔÉ É ÎÁÍÉÒÁ ÆÁÊÌÁ, -ËÏÊÔÏ ÓÔÅ ÉÚÂÒÁÌÉ. íÉÎÉÂÕÆÅÒßÔ ÉÚÞÅÚ×Á, ËÏÇÁÔÏ ËÏÍÁÎÄÁÔÁ C-x C-f -Ó×ßÒÛÉ. - -óÌÅÄ ÍÁÌËÏ ÓßÄßÒÖÁÎÉÅÔÏ ÎÁ ÆÁÊÌÁ ÓÅ ÐÏÑ×Ñ×Á ÎÁ ÅËÒÁÎÁ É ×ÉÅ ÍÏÖÅÔÅ ÄÁ -ÒÅÄÁËÔÉÒÁÔÅ ÓßÄßÒÖÁÎÉÅÔÏ ÍÕ. ëÏÇÁÔÏ ÐÏÖÅÌÁÅÔÅ ÄÁ ÚÁÐÁÚÉÔÅ ×ÁÛÉÔÅ -ÐÒÏÍÅÎÉ ÚÁ ÐÏÓÔÏÑÎÎÏ, ×ß×ÅÄÅÔÅ ËÏÍÁÎÄÁÔÁ - - C-x C-s úÁÐÁÚ×ÁÎÅ ÎÁ ÆÁÊÌÁ - -ôÏ×Á ËÏÐÉÒÁ ÔÅËÓÔÁ ÏÔ åÍÁËÓ ×ß× ÆÁÊÌÁ. ðßÒ×ÉÑÔ ÐßÔ, ËÏÇÁÔÏ ÔÏ×Á ÓÅ -ÎÁÐÒÁ×É, åÍÁËÓ ÐÒÅÉÍÅÎÕ×Á ÎÁÞÁÌÎÉÑ ÆÁÊÌ Ó ÎÏ×Ï ÉÍÅ, ÔÁËÁ ÞÅ ÔÏÊ ÄÁ ÎÅ -ÓÅ ÉÚÇÕÂÉ. îÏ×ÏÔÏ ÉÍÅ ÓÅ ÐÏÓÔÒÏÑ×Á Ó ÄÏÂÁ×ÑÎÅ ÎÁ "~" × ËÒÁÑ ÎÁ ÉÍÅÔÏ -ÎÁ ÎÁÞÁÌÎÉÑ ÆÁÊÌ. - -ëÏÇÁÔÏ ÚÁÐÁÚ×ÁÎÅÔÏ Å Ó×ßÒÛÉÌÏ, åÍÁËÓ ÉÚ×ÅÖÄÁ ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ, ËÏÊÔÏ Å -ÂÉÌ ÚÁÐÉÓÁÎ. ôÒÑÂ×Á ÄÁ ÚÁÐÉÓ×ÁÔÅ ÄÏÓÔÁÔßÞÎÏ ÞÅÓÔÏ, ÔÁËÁ ÞÅ ÄÁ ÎÅ -ÉÚÇÕÂÉÔÅ ÍÎÏÇÏ ÒÁÂÏÔÁ ÁËÏ ÓÉÓÔÅÍÁÔÁ ÓÅ ÓÒÉÎÅ. - ->> ÷ß×ÅÄÅÔÅ C-x C-s, ÚÁÐÁÚ×ÁÊËÉ ×ÁÛÅÔÏ ËÏÐÉÅ ÏÔ ×ß×ÅÄÅÎÉÅÔÏ. - ôÏ×Á ÔÒÑÂ×Á ÄÁ ÉÚ×ÅÄÅ "Wrote ...TUTORIAL" × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ. - -úáâåìåöëá: îÁ ÎÑËÏÉ ÓÉÓÔÅÍÉ ×ß×ÅÖÄÁÎÅÔÏ ÎÁ C-x C-s ÝÅ ÚÁÍÒßÚÉ ÅËÒÁÎÁ É -×ÉÅ ÎÑÍÁ ÄÁ ×ÉÖÄÁÔÅ ÐÏ×ÅÞÅ ÉÚÈÏÄ ÏÔ åÍÁËÓ. ôÏ×Á ÐÏËÁÚ×Á, ÞÅ ÅÄÎÁ -"ÓÐÏÓÏÂÎÏÓÔ" ÎÁ ÏÐÅÒÁÃÉÏÎÎÁÔÁ ÓÉÓÔÅÍÁ ÎÁÒÉÞÁÎÁ "ÕÐÒÁ×ÌÅÎÉÅ ÎÁ ÐÏÔÏËÁ" -(flow control) Å ÐÒÉÈ×ÁÎÁÌÁ C-s É ÎÅ ÇÏ ÐÒÏÐÕÓËÁ ËßÍ åÍÁËÓ. úÁ ÄÁ -ÒÁÚÍÒÁÚÉÔÅ ÅËÒÁÎÁ, ×ß×ÅÄÅÔÅ C-q. ôÏÇÁ×Á ×ÉÖÔÅ ÓÅËÃÉÑÔÁ "óÐÏÎÔÁÎÎÏ -×ËÌÀÞ×ÁÎÅ ÎÁ ÐÏÓÔßÐËÏ×Ï ÔßÒÓÅÎÅ" (Spontaneous Entry to Incremental -Search) × ÒßËÏ×ÏÄÓÔ×ÏÔÏ ÎÁ åÍÁËÓ ÚÁ Óß×ÅÔ ËÁË ÄÁ ÓÅ ÓÐÒÁ×ÉÔÅ Ó ÔÁÚÉ -"ÓÐÏÓÏÂÎÏÓÔ". - -íÏÖÅ ÄÁ ÎÁÍÅÒÉÔÅ ÓßÝÅÓÔ×Õ×ÁÝ ÆÁÊÌ, ÄÁ ÇÏ ÒÁÚÇÌÅÄÁÔÅ É ÄÁ ÇÏ -ÒÅÄÁËÔÉÒÁÔÅ. íÏÖÅÔÅ ÓßÝÏ ÄÁ ÎÁÍÅÒÉÔÅ ÆÁÊÌ, ËÏÊÔÏ ÎÅ ÓßÝÅÓÔ×Õ×Á. ôÏ×Á -Å ÎÁÞÉÎßÔ ÚÁ ÓßÚÄÁ×ÁÎÅ ÎÁ ÎÏ×É ÆÁÊÌÏ×Å × åÍÁËÓ: ÎÁÍÉÒÁÔÅ ÆÁÊÌÁ, ËÏÊÔÏ -ÝÅ ÂßÄÅ × ÎÁÞÁÌÏÔÏ ÐÒÁÚÅÎ, É ÔÏÇÁ×Á ÚÁÐÏÞ×ÁÔÅ ×ÍßË×ÁÎÅÔÏ ÎÁ ÔÅËÓÔÁ ÚÁ -ÆÁÊÌÁ. ëÏÇÁÔÏ ÇÏ×ÏÒÉÔÅ ÚÁ "ÚÁÐÉÓ×ÁÎÅ" ÎÁ ÆÁÊÌÁ, åÍÁËÓ ×ÓßÝÎÏÓÔ ÝÅ -ÓßÚÄÁÄÅ ÆÁÊÌÁ Ó ÔÅËÓÔÁ, ËÏÊÔÏ ÓÔÅ ×ß×ÅÌÉ. ïÔ ÔÁÍ ÎÁÔÁÔßË ÍÏÖÅ ÄÁ -ÓÞÉÔÁÔÅ, ÞÅ ÒÅÄÁËÔÉÒÁÔÅ ×ÅÞÅ ÓßÝÅÓÔ×Õ×ÁÝ ÆÁÊÌ. - - -* âõæåòé +Çà äà íàïðàâèòå òåêñòà, êîéòî ðåäàêòèðàòå, ïîñòîÿíåí, òðÿáâà äà ãî +ñëîæèòå âúâ ôàéë.  ïðîòèâåí ñëó÷àé òîé ùå èç÷åçíå, êîãàòî Emacs +ïðèêëþ÷è. Çà äà ñëîæèòå âàøèÿ òåêñò âúâ ôàéë, òðÿáâà äà "íàìåðèòå" +ôàéëà ïðåäè äà âúâåæäàòå òåêñò. (Òîâà ñúùî ñå íàðè÷à "ïîñåùàâàíå" íà +ôàéëà.) + +Íàìèðàíå íà ôàéë îçíà÷àâà, ÷å âèæäàòå ñúäúðæàíèåòî ìó â Emacs.  +ìíîãî ñëó÷àè òîâà å êàòî äà ðåäàêòèðàòå ñàìèÿ ôàéë. Îáà÷å ïðîìåíèòå, +êîèòî ïðàâèòå, èçïîëçâàéêè Emacs, íå îñòàâàò ïîñòîÿííè, äîêàòî íå +"çàïèøåòå" ôàéëà. Òîâà å òàêà, çà äà ñå ïðåäîòâðàòè îñòàâÿíåòî íà +ïîëóïðîìåíåí ôàéë â ñèñòåìàòà, êîãàòî íå èñêàòå òîâà. Äîðè êîãàòî +çàïèñâàòå, Emacs îñòàâÿ íà÷àëíèÿ ôàéë ïîä ïðîìåíåíî èìå, â ñëó÷àé, ÷å +ïî-êúñíî ðåøèòå, ÷å âàøèòå ïðîìåíè ñà áèëè ãðåøêà. + +Àêî ïîãëåäíåòå â äúíîòî íà åêðàíà, ùå âèäèòå ðåä, êîéòî çàïî÷âà è +çàâúðøâà ñ òèðåòà è çàïî÷âà ñ "-R:-- TUTORIAL.bg" èëè íåùî ïîäîáíî. +Òàçè ÷àñò îò åêðàíà ïîêàçâà èìåòî íà ôàéëà, êîéòî ñòå ïîñåòèëè. Òî÷íî +ñåãà âèå ñòå ïîñåòèëè ôàéë, íàðå÷åí "TUTORIAL.bg", êîéòî å âàøåòî +ëè÷íî êîïèå-÷åðíîâà íà Emacs âúâåäåíèåòî. Êîãàòî íàìåðèòå ôàéë â +Emacs, èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà ñúùîòî ìÿñòî. + +Îñîáåíîñò íà êîìàíäàòà çà íàìèðàíå íà ôàéë å, ÷å òðÿáâà äà êàæåòå +èìåòî íà ôàéëà, êîéòî èñêàòå. Íèå ãî íàðè÷àìå "÷åòåíå íà àðãóìåíò îò +òåðìèíàëà" (â òîçè ñëó÷àé àðãóìåíòúò å èìåòî íà ôàéëà). Ñëåä êàòî +âúâåäåòå êîìàíäàòà + + C-x C-f Íàìèðàíå íà ôàéë + +Emacs âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî +íàïèøåòå, ñå ïîÿâÿâà â äúíîòî íà åêðàíà. Ðåäúò â äúíîòî íà åêðàíà ñå +íàðè÷à ìèíèáóôåð, êîãàòî ñå èçïîëçâà çà òîçè âèä âõîä. Ìîæåòå äà +èçïîëçâàòå îáèêíîâåíèòå êîìàíäè çà ðåäàêòèðàíå íà Emacs, çà äà +ðåäàêòèðàòå èìåòî íà ôàéëà. + +Êîãàòî âúâåæäàòå èìåòî íà ôàéëà (èëè êàêúâòî è äà å âõîä â +ìèíèáóôåðà), ìîæåòå äà ïðåêðàòèòå êîìàíäàòà ñ C-g. + +>> Âúâåäåòå C-x C-f è ñëåä òîâà C-g. Òîâà ïðåêðàòÿâà ìèíèáóôåðà, à + ñúùî è êîìàíäàòà C-x C-f, êîÿòî ñå å èçïúëíÿâàëà â ìèíèáóôåðà. + Òàêà ÷å íå íàìèðàòå ôàéë. + +Êîãàòî ïðèêëþ÷èòå ñ âúâåæäàíåòî íà èìåòî íà ôàéëà, âúâåäåòå , +çà äà ïîêàæåòå òîâà. Òîãàâà C-x C-f òðúãâà äà ðàáîòè è íàìèðà ôàéëà, +êîéòî ñòå èçáðàëè. Ìèíèáóôåðúò èç÷åçâà, êîãàòî êîìàíäàòà C-x C-f +ñâúðøè. + +Ñëåä ìàëêî ñúäúðæàíèåòî íà ôàéëà ñå ïîÿâÿâà íà åêðàíà è âèå ìîæåòå äà +ðåäàêòèðàòå ñúäúðæàíèåòî ìó. Êîãàòî ïîæåëàåòå äà çàïàçèòå âàøèòå +ïðîìåíè çà ïîñòîÿííî, âúâåäåòå êîìàíäàòà + + C-x C-s Çàïàçâàíå íà ôàéëà + +Òîâà êîïèðà òåêñòà îò Emacs âúâ ôàéëà. Ïúðâèÿ ïúò, êîãàòî òîâà ñå +íàïðàâè, Emacs ïðåèìåíóâà íà÷àëíèÿ ôàéë ñ íîâî èìå, òàêà ÷å òîé äà íå +ñå èçãóáè. Íîâîòî èìå ñå ïîñòðîÿâà ñ äîáàâÿíå íà "~" â êðàÿ íà èìåòî +íà íà÷àëíèÿ ôàéë. + +Êîãàòî çàïàçâàíåòî å ñâúðøèëî, Emacs èçâåæäà èìåòî íà ôàéëà, êîéòî å +áèë çàïèñàí. Òðÿáâà äà çàïèñâàòå äîñòàòú÷íî ÷åñòî, òàêà ÷å äà íå +èçãóáèòå ìíîãî ðàáîòà, àêî ñèñòåìàòà ñå ñðèíå ïî íÿêàêâà ïðè÷èíà. + +>> Âúâåäåòå C-x C-s, çàïàçâàéêè âàøåòî êîïèå îò âúâåäåíèåòî. + Òîâà òðÿáâà äà èçâåäå "Wrote ...TUTORIAL.bg" â äúíîòî íà åêðàíà. + +ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-x C-s ùå çàìðúçè åêðàíà è +âèå íÿìà äà âèæäàòå ïîâå÷å èçõîä îò Emacs. Òîâà ïîêàçâà, ÷å åäíà +"ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðè÷àíà "óïðàâëåíèå íà ïîòîêà" +(flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà êúì Emacs. Çà äà +ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî +âêëþ÷âàíå íà ïîñòúïêîâî òúðñåíå" (Spontaneous Entry to Incremental +Search) â ðúêîâîäñòâîòî íà Emacs çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè +"ñïîñîáíîñò". + +Ìîæå äà íàìåðèòå ñúùåñòâóâàù ôàéë, äà ãî ðàçãëåäàòå è äà ãî +ðåäàêòèðàòå. Ìîæåòå ñúùî äà íàìåðèòå ôàéë, êîéòî íå ñúùåñòâóâà. Òîâà +å íà÷èíúò çà ñúçäàâàíå íà íîâè ôàéëîâå â Emacs: íàìèðàòå ôàéëà, êîéòî +ùå áúäå â íà÷àëîòî ïðàçåí, è òîãàâà çàïî÷âàòå âìúêâàíåòî íà òåêñòà çà +ôàéëà. Êîãàòî ãîâîðèòå çà "çàïèñâàíå" íà ôàéë, Emacs âñúùíîñò ùå +ñúçäàäå ôàéëà ñ òåêñòà, êîéòî ñòå âúâåëè. Îòòàì íàòàòúê ìîæå äà +ñ÷èòàòå, ÷å ðåäàêòèðàòå âå÷å ñúùåñòâóâàù ôàéë. + + +* ÁÓÔÅÐÈ -------- -áËÏ ÎÁÍÅÒÉÔÅ ×ÔÏÒÉ ÆÁÊÌ Ó C-x C-f, ÐßÒ×ÉÑÔ ÆÁÊÌ ÏÓÔÁ×Á × åÍÁËÓ. -íÏÖÅÔÅ ÄÁ ÐÒÅ×ËÌÀÞÉÔÅ ÏÂÒÁÔÎÏ ËßÍ ÎÅÇÏ ËÁÔÏ ÇÏ ÎÁÍÅÒÉÔÅ ÐÁË Ó C-x -C-f. ðÏ ÔÏÚÉ ÎÁÞÉÎ ÍÏÖÅ ÄÁ ÐÏÌÕÞÉÔÅ ÄÏÓÔÁ ÎÁ ÂÒÏÊ ÆÁÊÌÏ×Å × åÍÁËÓ. +Àêî íàìåðèòå âòîðè ôàéë ñ C-x C-f, ïúðâèÿò ôàéë îñòàâà â Emacs. +Ìîæåòå äà ïðåâêëþ÷èòå îáðàòíî êúì íåãî, êàòî ãî íàìåðèòå ïàê ñ C-x +C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Emacs. ->> óßÚÄÁÊÔÅ ÆÁÊÌ Ó ÉÍÅ "foo" ×ß×ÅÖÄÁÊËÉ C-x C-f foo . - ÷ÍßËÎÅÔÅ ÍÁÌËÏ ÔÅËÓÔ, ÒÅÄÁËÔÉÒÁÊÔÅ ÇÏ É ÇÏ ÚÁÐÁÚÅÔÅ "foo" Ó - ×ß×ÅÖÄÁÎÅ ÎÁ C-x C-s. - îÁËÒÁÑ ×ß×ÅÄÅÔÅ C-x C-f TUTORIAL ÚÁ ÄÁ ÓÅ ×ßÒÎÅÔÅ ÏÂÒÁÔÎÏ - ×ß× ×ß×ÅÄÅÎÉÅÔÏ. +>> Ñúçäàéòå ôàéë ñ èìå "foo", âúâåæäàéêè C-x C-f foo . + Âìúêíåòå ìàëêî òåêñò, ðåäàêòèðàéòå ãî è çàïàçåòå "foo" ñ âúâåæäàíå + íà C-x C-s. + Íàêðàÿ âúâåäåòå C-x C-f TUTORIAL.bg , çà äà ñå âúðíåòå + îáðàòíî âúâ âúâåäåíèåòî. -åÍÁËÓ ÚÁÐÁÚ×Á ÔÅËÓÔÁ ÎÁ ×ÓÅËÉ ÆÁÊÌ × ÏÂÅËÔ ÎÁÒÉÞÁÎ "ÂÕÆÅÒ". -îÁÍÉÒÁÎÅÔÏ ÎÁ ÆÁÊÌ ÐÒÁ×É ÎÏ× ÂÕÆÅÒ × åÍÁËÓ. úÁ ÄÁ ×ÉÄÉÔÅ ÓÐÉÓßË ÎÁ -ÂÕÆÅÒÉÔÅ, ËÏÉÔÏ × ÍÏÍÅÎÔÁ ÓßÝÅÓÔ×Õ×ÁÔ ×ß× ×ÁÛÉÑ åÍÁËÓ, ×ß×ÅÄÅÔÅ +Emacs çàïàçâà òåêñòà íà âñåêè ôàéë â îáåêò, íàðè÷àí "áóôåð". +Íàìèðàíåòî íà ôàéë ïðàâè íîâ áóôåð â Emacs. Çà äà âèäèòå ñïèñúê íà +áóôåðèòå, êîèòî â ìîìåíòà ñúùåñòâóâàò âúâ âàøèÿ Emacs, âúâåäåòå - C-x C-b ðÏËÁÚ×ÁÎÅ ÎÁ ÂÕÆÅÒÉÔÅ + C-x C-b Ïîêàçâàíå íà áóôåðèòå ->> ïÐÉÔÁÊÔÅ C-x C-b ÓÅÇÁ. +>> Îïèòàéòå C-x C-b ñåãà. -÷ÉÖÔÅ ËÁË ×ÓÅËÉ ÂÕÆÅÒ ÉÍÁ ÉÍÅ, Á ÐÏÎÑËÏÇÁ É ÉÍÅ ÎÁ ÆÁÊÌ ÚÁ ÆÁÊÌÁ, -ÞÉÅÔÏ ÓßÄßÒÖÁÎÉÅ ÄßÒÖÉ. ÷óåëé ÔÅËÓÔ, ËÏÊÔÏ ×ÉÖÄÁÔÅ × åÍÁËÓ ÐÒÏÚÏÒÅÃ, -Å ×ÉÎÁÇÉ ÞÁÓÔ ÏÔ ÎÑËÁËß× ÂÕÆÅÒ. +Âèæòå êàê âñåêè áóôåð èìà èìå, à ïîíÿêîãà è èìå íà ôàéë çà ôàéëà, +÷èåòî ñúäúðæàíèå äúðæè. ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Emacs ïðîçîðåö, +å âèíàãè ÷àñò îò íÿêàêúâ áóôåð. ->> ÷ß×ÅÄÅÔÅ C-x 1 ÚÁ ÄÁ ÍÁÈÎÅÔÅ ÓÐÉÓßËÁ Ó ÂÕÆÅÒÉÔÅ. +>> Âúâåäåòå C-x 1, çà äà ìàõíåòå ñïèñúêà ñ áóôåðèòå. -ëÏÇÁÔÏ ÉÍÁÔÅ ÎÑËÏÌËÏ ÂÕÆÅÒÁ, ÓÁÍÏ ÅÄÉÎ ÏÔ ÔÑÈ Å "ÔÅËÕÝ" × ÄÁÄÅÎ ÍÏÍÅÎÔ -ÏÔ ×ÒÅÍÅ. ôÏ×Á Å ÂÕÆÅÒßÔ, ËÏÊÔÏ ÒÅÄÁËÔÉÒÁÔÅ. áËÏ ÉÓËÁÔÅ ÄÁ -ÒÅÄÁËÔÉÒÁÔÅ ÄÒÕÇ ÂÕÆÅÒ ÓÅ ÎÕÖÄÁÅÔÅ ÏÔ "ÐÒÅ×ËÌÀÞ×ÁÎÅ" ËßÍ ÎÅÇÏ. áËÏ -ÉÓËÁÔÅ ÄÁ ÓÅ ÐÒÅ×ËÌÀÞÉÔÅ ËßÍ ÂÕÆÅÒ, ËÏÊÔÏ ÓßÏÔ×ÅÔÓÔ×Á ÎÁ ÆÁÊÌ, ÍÏÖÅÔÅ -ÄÁ ÇÏ ÎÁÐÒÁ×ÉÔÅ ËÁÔÏ ÐÒÏÓÔÏ ÐÏÓÅÔÉÔÅ ÆÁÊÌÁ ÏÔÎÏ×Ï Ó C-x C-f. îÏ ÉÍÁ É -ÐÏ-ÌÅÓÅÎ ÎÁÞÉÎ: ÉÚÐÏÌÚ×ÁÎÅÔÏ ÎÁ ËÏÍÁÎÄÁÔÁ C-x b. ÷ ÔÁÚÉ ËÏÍÁÎÄÁ -ÔÒÑÂ×Á ÄÁ ×ß×ÅÄÅÔÅ ÉÍÅÔÏ ÎÁ ÂÕÆÅÒÁ. +Êîãàòî èìàòå íÿêîëêî áóôåðà, ñàìî åäèí îò òÿõ å "òåêóù" â äàäåí ìîìåíò +îò âðåìå. Òîâà å áóôåðúò, êîéòî ðåäàêòèðàòå. Àêî èñêàòå äà +ðåäàêòèðàòå äðóã áóôåð, ñå íóæäàåòå îò "ïðåâêëþ÷âàíå" êúì íåãî. Àêî +èñêàòå äà ñå ïðåâêëþ÷èòå êúì áóôåð, êîéòî ñúîòâåòñòâà íà ôàéë, ìîæåòå +äà ãî íàïðàâèòå, êàòî ïðîñòî ïîñåòèòå ôàéëà îòíîâî ñ C-x C-f. Íî èìà +è ïî-ëåñåí íà÷èí: èçïîëçâàíåòî íà êîìàíäàòà C-x b.  òàçè êîìàíäà +òðÿáâà äà âúâåäåòå èìåòî íà áóôåðà. ->> ÷ß×ÅÄÅÔÅ C-x b foo ÚÁ ÄÁ ÓÅ ×ßÒÎÅÔÅ ËßÍ ÂÕÆÅÒÁ "foo", - ËÏÊÔÏ ÄßÒÖÉ ÔÅËÓÔÁ ÎÁ ÆÁÊÌÁ "foo". ôÏÇÁ×Á ×ß×ÅÄÅÔÅ C-x b TUTORIAL - ÚÁ ÄÁ ÓÅ ×ßÒÎÅÔÅ × ÔÏ×Á ×ß×ÅÄÅÎÉÅ. +>> Âúâåäåòå C-x b foo , çà äà ñå âúðíåòå êúì áóôåðà "foo", + êîéòî äúðæè òåêñòà íà ôàéëà "foo". Òîãàâà âúâåäåòå C-x b TUTORIAL + , çà äà ñå âúðíåòå â òîâà âúâåäåíèå. -÷ ÐÏ×ÅÞÅÔÏ ÓÌÕÞÁÉ ÉÍÅÔÏ ÎÁ ÂÕÆÅÒÁ Å ÓßÝÏÔÏ ËÁÔÏ ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ (ÂÅÚ -ÞÁÓÔÔÁ × ËÏÑ ÄÉÒÅËÔÏÒÉÑ ÓÅ ÎÁÍÉÒÁ). ïÂÁÞÅ ÔÏ×Á ÎÅ ×ÉÎÁÇÉ Å ×ÑÒÎÏ. -óÐÉÓßËßÔ Ó ÂÕÆÅÒÉÔÅ, ËÏÊÔÏ ÐÒÁ×ÉÔÅ Ó C-x C-b, ×ÉÎÁÇÉ ×É ÐÏËÁÚ×Á ÉÍÅÔÏ -ÎÁ ×ÓÅËÉ ÂÕÆÅÒ. + ïîâå÷åòî ñëó÷àè èìåòî íà áóôåðà å ñúùîòî êàòî èìåòî íà ôàéëà (áåç +÷àñòòà â êîÿ äèðåêòîðèÿ ñå íàìèðà). Îáà÷å òîâà íå âèíàãè å âÿðíî. +Ñïèñúêúò ñ áóôåðèòå, êîéòî ïðàâèòå ñ C-x C-b, âèíàãè âè ïîêàçâà èìåòî +íà âñåêè áóôåð. -÷óåëé ÔÅËÓÔ, ËÏÊÔÏ ×ÉÖÄÁÔÅ × åÍÁËÓ ÐÒÏÚÏÒÅÃ, Å ×ÉÎÁÇÉ ÞÁÓÔ ÏÔ ÎÑËÁËß× -ÂÕÆÅÒ. îÑËÏÉ ÂÕÆÅÒÉ ÎÅ ÓßÏÔ×ÅÔÓÔ×ÁÔ ÎÁ ÆÁÊÌÏ×Å. îÁÐÒÉÍÅÒ, ÂÕÆÅÒßÔ -ÉÍÅÎÕ×ÁÎ "*Buffer List*" ÎÅ ÓßÏÔ×ÅÔÓÔ×Á ÎÁ ÆÁÊÌ. ôÏ×Á Å ÂÕÆÅÒßÔ, -ËÏÊÔÏ ÓßÄßÒÖÁ ÓÐÉÓßËÁ Ó ÂÕÆÅÒÉÔÅ, ËÏÉÔÏ ÓÔÅ ÎÁÐÒÁ×ÉÌÉ Ó C-x C-b. -âÕÆÅÒßÔ ÉÍÅÎÕ×ÁÎ "*Messages*" ÓßÝÏ ÎÅ ÓßÏÔ×ÅÔÓÔ×Á ÎÁ ÆÁÊÌ; ÔÏÊ ÓßÄßÒÖÁ -ÓßÏÂÝÅÎÉÑÔÁ, ËÏÉÔÏ ÓÅ ÐÏÑ×Á×ÁÔ × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ ÐÏ ×ÒÅÍÅ ÎÁ åÍÁËÓ -ÓÅÓÉÑÔÁ. +ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Emacs ïðîçîðåö, å âèíàãè ÷àñò îò íÿêàêúâ +áóôåð. Íÿêîè áóôåðè íå ñúîòâåòñòâàò íà ôàéëîâå. Íàïðèìåð áóôåðúò, +èìåíóâàí "*Buffer List*", íå ñúîòâåòñòâà íà ôàéë. Òîâà å áóôåðúò, +êîéòî ñúäúðæà ñïèñúêà ñ áóôåðèòå, êîèòî ñòå íàïðàâèëè ñ C-x C-b. +Áóôåðúò, èìåíóâàí "*Messages*", ñúùî íå ñúîòâåòñòâà íà ôàéë; òîé +ñúäúðæà ñúîáùåíèÿòà, êîèòî ñå ïîÿâÿâàò â äúíîòî íà åêðàíà ïî âðåìå íà +Emacs ñåñèÿòà. ->> ÷ß×ÅÄÅÔÅ C-x b *Messages* ÚÁ ÄÁ ×ÉÄÉÔÅ ÂÕÆÅÒÁ ÓßÓ - ÓßÏÂÝÅÎÉÑÔÁ. óÌÅÄ ÔÏ×Á ×ß×ÅÄÅÔÅ C-x C-b TUTORIAL ÚÁ ÄÁ ÓÅ - ×ßÒÎÅÔÅ ËßÍ ÔÏ×Á ×ß×ÅÄÅÎÉÅ. +>> Âúâåäåòå C-x b *Messages* , çà äà âèäèòå áóôåðà ñúñ + ñúîáùåíèÿòà. Ñëåä òîâà âúâåäåòå C-x C-b TUTORIAL , çà äà + ñå âúðíåòå êúì òîâà âúâåäåíèå. -áËÏ ÎÁÐÒÁ×ÉÔÅ ÐÒÏÍÅÎÉ × ÔÅËÓÔÁ ÎÁ ÅÄÉÎ ÆÁÊÌ, É ÔÏÇÁ×Á ÎÁÍÅÒÉÔÅ ÄÒÕÇ -ÆÁÊÌ, ÔÏ×Á ÎÑÍÁ ÄÁ ÚÁÐÉÛÅ ÐßÒ×ÉÑ ÆÁÊÌ. îÅÇÏ×ÉÔÅ ÐÒÏÍÅÎÉ ÏÓÔÁ×ÁÔ ×ßÔÒÅ -× åÍÁËÓ, × ÂÕÆÅÒÁ ÎÁ ÆÁÊÌÁ. óßÚÄÁ×ÁÎÅÔÏ ÉÌÉ ÒÅÄÁËÔÉÒÁÎÅÔÏ ÎÁ ÂÕÆÅÒÁ -ÎÁ ×ÔÏÒÉÑ ÆÁÊÌ ÎÑÍÁ ÅÆÅËÔ ×ßÒÈÕ ÂÕÆÅÒÁ ÎÁ ÐßÒ×ÉÑ ÆÁÊÌ. ôÏ×Á Å ÍÎÏÇÏ -ÐÏÌÅÚÎÏ, ÎÏ ÓßÝÏ ÏÚÎÁÞÁ×Á, ÞÅ ÓÅ ÎÕÖÄÁÅÔÅ ÏÔ ÕÄÏÂÅÎ ÎÁÞÉÎ ÄÁ ÚÁÐÁÚÉÔÅ -ÂÕÆÅÒÁ ÎÁ ÐßÒ×ÉÑ ÆÁÊÌ. ýÅ Å ÎÅÕÄÏÂÎÏ ÄÁ ÐÒÅ×ËÌÀÞÉÔÅ ÏÂÒÁÔÎÏ Ó C-x C-f -ÚÁ ÄÁ ÇÏ ÚÁÐÁÚÉÔÅ Ó C-x C-s. ôÁËÁ ÞÅ ÉÍÁÍÅ +Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã +ôàéë, òîâà íÿìà äà çàïèøå ïúðâèÿ ôàéë. Íåãîâèòå ïðîìåíè îñòàâàò âúòðå +â Emacs, â áóôåðà íà ôàéëà. Ñúçäàâàíåòî èëè ðåäàêòèðàíåòî íà áóôåðà +íà âòîðèÿ ôàéë íÿìà åôåêò âúðõó áóôåðà íà ïúðâèÿ ôàéë. Òîâà å ìíîãî +ïîëåçíî, íî ñúùî îçíà÷àâà, ÷å ñå íóæäàåòå îò óäîáåí íà÷èí äà çàïàçèòå +áóôåðà íà ïúðâèÿ ôàéë. Ùå å íåóäîáíî äà ïðåâêëþ÷èòå îáðàòíî ñ C-x +C-f, çà äà ãî çàïàçèòå ñ C-x C-s. Òàêà ÷å èìàìå - C-x s úÁÐÁÚ×Á ÎÑËÏÉ ÂÕÆÅÒÉ + C-x s Çàïàçâà íÿêîè áóôåðè -C-x s ÐÉÔÁ ÚÁ ×ÓÅËÉ ÂÕÆÅÒ, ËÏÊÔÏ ÓßÄßÒÖÁ ÐÒÏÍÅÎÉ, ËÏÉÔÏ ÎÅ ÓÔÅ -ÚÁÐÁÚÉÌÉ. ÷ßÐÒÏÓßÔ ÚÁ ×ÓÅËÉ ÔÁËß× ÂÕÆÅÒ Å ÄÁÌÉ ÄÁ ÂßÄÅ ÚÁÐÁÚÅÎ. +C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå +çàïàçèëè. Âúïðîñúò çà âñåêè òàêúâ áóôåð å äàëè äà áúäå çàïàçåí. ->> ÷ÍßËÎÅÔÅ ÒÅÄ × ÔÅËÓÔÁ, ÓÌÅÄ ÔÏ×Á ×ß×ÅÄÅÔÅ C-x s. - ôÒÑÂ×Á ÄÁ ÂßÄÅÔÅ ÐÏÐÉÔÁÎ ÄÁÌÉ ÄÁ ÚÁÐÁÚÉÔÅ ÂÕÆÅÒÁ ÉÍÅÎÕ×ÁÎ TUTORIAL. - ïÔÇÏ×ÏÒÅÔÅ Ó ÄÁ ÎÁ ×ßÐÒÏÓÁ ËÁÔÏ ×ß×ÅÄÅÔÅ "y". +>> Âìúêíåòå ðåä â òåêñòà, ñëåä òîâà âúâåäåòå C-x s. + Òðÿáâà äà áúäåòå ïîïèòàí äàëè äà çàïàçèòå áóôåðà, èìåíóâàí "TUTORIAL". + Îòãîâîðåòå ñ "äà" íà âúïðîñà, êàòî âúâåäåòå "y". -* òáúûéòñ÷áîå îá îáâïòá ëïíáîäé +* ÐÀÇØÈÐßÂÀÍÅ ÍÀ ÍÀÁÎÐÀ ÊÎÌÀÍÄÈ ------------------------------- -éÍÁ ÍÎÏÇÏ, ÍÎÏÇÏ ÐÏ×ÅÞÅ ËÏÍÁÎÄÉ ÎÁ åÍÁËÓ, ÏÔËÏÌËÏÔÏ ÍÏÇÁÔ ÄÁ ÓÅ ÓÌÏÖÁÔ -ÍÁ ×ÓÉÞËÉ ËÏÎÔÒÏÌÎÉ É ÍÅÔÁ ÚÎÁÃÉ. åÍÁËÓ ÚÁÏÂÉËÁÌÑ ÔÏ×Á Ó X (eXtended) -ËÏÍÁÎÄÁÔÁ. ôÏ×Á ÓÔÁ×Á ÐÏ Ä×Á ÎÁÞÉÎÁ: - - C-x úÎÁËÏ×Ï ÒÁÚÛÉÒÑ×ÁÎÅ. ðÏÓÌÅÄ×ÁÎÏ ÏÔ ÅÄÉÎ ÚÎÁË. - M-x òÁÚÛÉÒÑ×ÁÎÅ Ó ÉÍÅÎÕ×ÁÎÁ ËÏÍÁÎÄÁ. ðÏÓÌÅÄ×ÁÎÏ ÏÔ ÄßÌÇÏ - ÉÍÅ. - -ôÅÚÉ ËÏÍÁÎÄÉ ÓÁ ÏÂÝÏ ×ÚÅÔÏ ÐÏÌÅÚÎÉ, ÎÏ ÐÏ-ÍÁÌËÏ ÏÔËÏÌËÏÔÏ ËÏÍÁÎÄÉÔÅ, -ËÏÉÔÏ ÄÏÓÅÇÁ ÓÔÅ ÎÁÕÞÉÌÉ. ÷ÅÞÅ ×ÉÄÑÈÔÅ Ä×Å ÏÔ ÔÑÈ: ËÏÍÁÎÄÉÔÅ ×ßÒÈÕ -ÆÁÊÌÏ×Å C-x C-f ÚÁ ÎÁÍÉÒÁÎÅ (Find) É C-x C-s ÚÁ ÚÁÐÁÚ×ÁÎÅ (Save). -äÒÕÇ ÐÒÉÍÅÒ Å ËÏÍÁÎÄÁÔÁ ÚÁ ËÒÁÊ ÎÁ åÍÁËÓ ÓÅÓÉÑÔÁ -- ÔÏ×Á Å ËÏÍÁÎÄÁÔÁ -C-x C-c. (îÅ ÓÅ ÂÅÚÐÏËÏÊÔÅ, ÞÅ ÍÏÖÅ ÄÁ ÉÚÇÕÂÉÔÅ ×ÓÉÞËÉ ÐÒÏÍÅÎÉ, ËÏÉÔÏ -ÓÔÅ ÎÁÐÒÁ×ÉÌÉ; C-x C-c ÐÒÅÄÌÁÇÁ ÄÁ ÚÁÐÁÚÉ ×ÓÅËÉ ÐÒÏÍÅÎÅÎ ÆÁÊÌ ÐÒÅÄÉ ÄÁ -ÐÒÅÍÁÈÎÅ åÍÁËÓ.) - -C-z Å ËÏÍÁÎÄÁÔÁ ÚÁ ÉÚÌÉÚÁÎÅ ÏÔ åÍÁËÓ *×ÒÅÍÅÎÎÏ* -- ÔÁËÁ ÞÅ ÄÁ ÍÏÖÅÔÅ -ÄÁ ÓÅ ×ßÒÎÅÔÅ ËßÍ ÓßÝÁÔÁ åÍÁËÓ ÓÅÓÉÑ ÐÏ-ËßÓÎÏ. - -îÁ ÓÉÓÔÅÍÉ, ËÏÉÔÏ ÐÏÚ×ÏÌÑ×ÁÔ ÔÏ×Á, C-z "ÉÚÏÓÔÁ×Ñ" (suspend) åÍÁËÓ, -Ô.Å. ×ÒßÝÁ ËßÍ ÏÂ×É×ËÁÔÁ, ÎÏ ÎÅ ÒÁÚÒÕÛÁ×Á åÍÁËÓ. ÷ ÐÏ×ÅÞÅÔÏ ÏÂ×É×ËÉ -ÍÏÖÅÔÅ ÄÁ ÐÒÏÄßÌÖÉÔÅ åÍÁËÓ ÓÅÓÉÑÔÁ Ó ËÏÍÁÎÄÁÔÁ `fg' ÉÌÉ Ó `%emacs'. - -îÁ ÓÉÓÔÅÍÉ, ËÏÉÔÏ ÎÅ ÐÏÚ×ÏÌÑ×ÁÔ ÉÚÏÓÔÁ×ÑÎÅ, C-z ÓßÚÄÁ×Á ÎÏ×Á -ÐÏÄÏÂ×É×ËÁ, ËÏÑÔÏ ×ßÒ×É ÐÏÄ åÍÁËÓ, ÚÁ ÄÁ ×É ÄÁÄÅ ÛÁÎÓ ÄÁ ÓÔÁÒÔÉÒÁÔÅ -ÄÒÕÇÉ ÐÒÏÇÒÁÍÉ É ÄÁ ÓÅ ×ßÒÎÅÔÅ ËßÍ åÍÁËÓ ÓÌÅÄ ÔÏ×Á; ÔÏ×Á ÎÅ Å ÉÓÔÉÎÓËÏ -"ÉÚÌÉÚÁÎÅ" ÏÔ åÍÁËÓ. ÷ ÔÏÚÉ ÓÌÕÞÁÊ ËÏÍÁÎÄÁÔÁ ÎÁ ÏÂ×É×ËÁÔÁ `exit' Å -ÏÂÉËÎÏ×ÅÎÉÑÔ ÎÁÞÉÎ ÄÁ ÓÅ ×ßÒÎÅÔÅ ÏÂÒÁÔÎÏ ËßÍ åÍÁËÓ ÏÔ ÐÏÄÏÂ×É×ËÁÔÁ. - -íÏÍÅÎÔßÔ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ C-x C-c Å, ËÏÇÁÔÏ ÉÓËÁÔÅ ÄÁ ÉÚÌÅÚÅÔÅ ÏÔ -ÓÉÓÔÅÍÁÔÁ. ôÏ×Á Å É ÐÒÁ×ÉÌÎÁÔÁ ËÏÍÁÎÄÁ ÚÁ ÉÚÌÉÚÁÎÅ, ËÏÇÁÔÏ åÍÁËÓ Å -ÉÚ×ÉËÁÎ ÏÔ ÐÏÝÅÎÓËÁ ÐÒÏÇÒÁÍÁ ÉÌÉ ÄÒÕÇÉ ÓÔÒÁÎÉÞÎÉ ÐÒÏÇÒÁÍÉ, ÔßÊ ËÁÔÏ ÔÅ -ÍÏÖÅ É ÄÁ ÎÅ ÚÎÁÑÔ ËÁË ÄÁ ÓÅ ÓÐÒÁ×ÑÔ Ó ÉÚÏÓÔÁ×ÑÎÅÔÏ ÎÁ åÍÁËÓ. ðÒÉ -ÏÂÉËÎÏ×ÅÎÉ ÏÂÓÔÏÑÔÅÌÓÔ×Á, ÏÂÁÞÅ, ÁËÏ ÎÅ ÓÔÅ ÔÒßÇÎÁÌÉ ÄÁ ÉÚÌÉÚÁÔÅ ÏÔ -ÓÉÓÔÅÍÁÔÁ, ÐÏ-ÄÏÂÒÅ Å ÄÁ ÉÚÏÓÔÁ×ÉÔÅ åÍÁËÓ Ó C-z ×ÍÅÓÔÏ ÄÁ ÉÚÌÉÚÁÔÅ ÏÔ -åÍÁËÓ. - -éÍÁ ÍÎÏÇÏ ËÏÍÁÎÄÉ C-x. åÔÏ ÓÐÉÓßË ÎÁ ÔÅÚÉ, ËÏÉÔÏ ÓÔÅ ÎÁÕÞÉÌÉ: - - C-x C-f îÁÍÉÒÁÎÅ ÎÁ ÆÁÊÌ. - C-x C-s úÁÐÁÚ×ÁÎÅ ÎÁ ÆÁÊÌ. - C-x C-b óÐÉÓßË ÎÁ ÂÕÆÅÒÉÔÅ. - C-x C-c éÚÌÉÚÁÎÅ ÏÔ åÍÁËÓ. - C-x 1 éÚÔÒÉ×ÁÎÅ ÎÁ ×ÓÉÞËÉ ÐÒÏÚÏÒÃÉ ÏÓ×ÅÎ ÅÄÉÎ. - C-x u ïÔÍÑÎÁ. - -éÍÅÎÕ×ÁÎÉÔÅ ÒÁÚÛÉÒÅÎÉ ËÏÍÁÎÄÉ ÓÁ ËÏÍÁÎÄÉ, ËÏÉÔÏ ÓÅ ÉÚÐÏÌÚ×ÁÔ ÄÁÖÅ ÏÝÅ -ÐÏ-ÒÑÄËÏ, ÉÌÉ ËÏÍÁÎÄÉ, ËÏÉÔÏ ÓÅ ÉÚÐÏÌÚ×ÁÔ ÓÁÍÏ × ÏÐÒÅÄÅÌÅÎÉ ÒÅÖÉÍÉ. -ðÒÉÍÅÒ Å ËÏÍÁÎÄÁÔÁ replace-string, ËÏÑÔÏ ÚÁÍÅÎÑ ÇÌÏÂÁÌÎÏ ÅÄÉÎ ÎÉÚ Ó -ÄÒÕÇ. ëÏÇÁÔÏ ×ß×ÅÄÅÔÅ M-x, åÍÁËÓ ×É ÐÏÄÓËÁÚ×Á × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ Ó -M-x É ×ÉÅ ÔÒÑÂ×Á ÄÁ ×ß×ÅÄÅÔÅ ÉÍÅÔÏ ÎÁ ËÏÍÁÎÄÁÔÁ, × ÔÏÚÉ ÓÌÕÞÁÊ -"replace-string". ðÒÏÓÔÏ ×ß×ÅÄÅÔÅ "repl s" É åÍÁËÓ ÝÅ ÚÁ×ßÒÛÉ -ÉÍÅÔÏ. ( Å ËÌÁ×ÉÛßÔ Tab, ÏÂÉËÎÏ×ÅÎÏ ÎÁÍÉÒÁÝ ÓÅ ÎÁÄ ËÌÁ×ÉÛÁ -CapsLock ÉÌÉ ËÌÁ×ÉÛÁ Shift ÂÌÉÚÏ ÄÏ ÌÅ×ÉÑ ËÒÁÊ ÎÁ ËÌÁ×ÉÁÔÕÒÁÔÁ.) -úÁ×ßÒÛÅÔÅ ÉÍÅÔÏ ÎÁ ËÏÍÁÎÄÁÔÁ Ó . - -ëÏÍÁÎÄÁÔÁ replace-string ÉÚÉÓË×Á Ä×Á ÁÒÇÕÍÅÎÔÁ -- ÎÉÚßÔ, ËÏÊÔÏ ÝÅ ÂßÄÅ -ÚÁÍÅÎÑÎ, É ÎÉÚßÔ, ËÏÊÔÏ ÝÅ ÇÏ ÚÁÍÅÎÉ. ôÒÑÂ×Á ÄÁ ÚÁ×ßÒÛÉÔÅ ×ß×ÅÖÄÁÎÅÔÏ -ÎÁ ×ÓÅËÉ ÁÒÇÕÍÅÎÔ Ó . - ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÐÒÁÚÎÉÑ ÒÅÄ Ä×Á ÒÅÄÁ ÎÁÄÏÌÕ ÐÏÄ ÔÏÚÉ. - ôÏÇÁ×Á ×ß×ÅÄÅÔÅ M-x repl sÐÒÏÍÅÎÑ - - úÁÂÅÌÅÖÅÔÅ ËÁË ÔÏÚÉ ÒÅÄ ÓÅ ÐÒÏÍÅÎÑ: ×ÉÅ ÚÁÍÅÎÉÈÔÅ ÄÕÍÁÔÁ - Ð-Ò-Ï-Í-Å-Î-Ñ Ó "ÉÚÍÅÎÑ", ËßÄÅÔÏ É ÄÁ ÓÅ ÎÁÍÉÒÁ ÓÌÅÄ ÎÁÞÁÌÎÏÔÏ - ÍÑÓÔÏ ÎÁ ËÕÒÓÏÒÁ. - -úáâåìåöëá: ðÒÅ×ËÌÀÞ×ÁÎÅÔÏ ËßÍ ×ß×ÅÖÄÁÎÅ ÎÁ ËÉÒÉÌÓËÉ ÂÕË×Á ÓÔÁ×Á Ó C-\. - - -* á÷ôïíáôéþîï úáðáú÷áîå +Èìà ìíîãî, ìíîãî ïîâå÷å êîìàíäè íà Emacs, îòêîëêîòî ìîãàò äà ñå ñëîæàò +íà âñè÷êè êîíòðîëíè è ìåòà çíàöè. Emacs çàîáèêàëÿ òîâà ñ X (eXtended) +êîìàíäàòà. Òîâà ñòàâà ïî äâà íà÷èíà: + + C-x Çíàêîâî ðàçøèðÿâàíå. Ïîñëåäâàíî îò åäèí çíàê. + M-x Ðàçøèðÿâàíå ñ èìåíóâàíà êîìàíäà. Ïîñëåäâàíî îò äúëãî + èìå. + +Òåçè êîìàíäè ñà îáùî âçåòî ïîëåçíè, íî ïî-ìàëêî, îòêîëêîòî êîìàíäèòå, +êîèòî äîñåãà ñòå íàó÷èëè. Âå÷å âèäÿõòå íÿêîëêî îò òÿõ: íàïðèìåð +êîìàíäèòå âúðõó ôàéëîâå C-x C-f çà íàìèðàíå (Find) è C-x C-s çà +çàïàçâàíå (Save). Äðóã ïðèìåð å êîìàíäàòà çà êðàé íà Emacs ñåñèÿòà -- +òîâà å êîìàíäàòà C-x C-c. (Íå ñå áåçïîêîéòå, ÷å ìîæå äà èçãóáèòå +âñè÷êè ïðîìåíè, êîèòî ñòå íàïðàâèëè; C-x C-c ïðåäëàãà äà çàïàçè âñåêè +ïðîìåíåí ôàéë, ïðåäè äà ïðåìàõíå Emacs.) + +C-z å êîìàíäàòà çà èçëèçàíå îò Emacs *âðåìåííî* -- òàêà ÷å äà ìîæåòå +äà ñå âúðíåòå êúì ñúùàòà Emacs ñåñèÿ ïî-êúñíî. + +Íà ñèñòåìè, êîèòî ïîçâîëÿâàò òîâà, C-z "èçîñòàâÿ" (suspend) Emacs, +ò.å. âðúùà êúì îáâèâêàòà, íî íå ðàçðóøàâà Emacs.  ïîâå÷åòî îáâèâêè +ìîæåòå äà ïðîäúëæèòå Emacs ñåñèÿòà ñ êîìàíäàòà "fg" èëè ñ "%emacs". + +Íà ñèñòåìè, êîèòî íå ïîçâîëÿâàò èçîñòàâÿíå, C-z ñúçäàâà íîâà +ïîäîáâèâêà, êîÿòî âúðâè ïîä Emacs, çà äà âè äàäå øàíñ äà ñòàðòèðàòå +äðóãè ïðîãðàìè è äà ñå âúðíåòå êúì Emacs ñëåä òîâà; òîâà íå å èñòèíñêî +"èçëèçàíå" îò Emacs.  òîçè ñëó÷àé êîìàíäàòà íà îáâèâêàòà "exit" å +îáèêíîâåíèÿò íà÷èí äà ñå âúðíåòå îáðàòíî êúì Emacs îò ïîäîáâèâêàòà. + +Ìîìåíòúò äà èçïîëçâàòå C-x C-c å, êîãàòî èñêàòå äà èçëåçåòå îò +ñèñòåìàòà. Òîâà å è ïðàâèëíàòà êîìàíäà çà èçëèçàíå, êîãàòî Emacs å +èçâèêàí îò ïîùåíñêà ïðîãðàìà èëè äðóãè ñòðàíè÷íè ïðîãðàìè, òúé êàòî òå +ìîæå è äà íå çíàÿò êàê äà ñå ñïðàâÿò ñ èçîñòàâÿíåòî íà Emacs. Ïðè +îáèêíîâåíè îáñòîÿòåëñòâà, îáà÷å, àêî íå ñòå òðúãíàëè äà èçëèçàòå îò +ñèñòåìàòà, ïî-äîáðå å äà èçîñòàâèòå Emacs ñ C-z, âìåñòî äà èçëèçàòå îò +Emacs. + +Èìà ìíîãî êîìàíäè C-x. Åòî ñïèñúê íà òåçè, êîèòî ñòå íàó÷èëè: + + C-x C-f Íàìèðàíå íà ôàéë + C-x C-s Çàïàçâàíå íà ôàéë + C-x C-b Ñïèñúê íà áóôåðèòå + C-x C-c Èçëèçàíå îò Emacs + C-x 1 Èçòðèâàíå íà âñè÷êè ïðîçîðöè, îñâåí åäèí + C-x u Îòìÿíà + +Èìåíóâàíèòå ðàçøèðåíè êîìàíäè ñà êîìàíäè, êîèòî ñå èçïîëçâàò äàæå îùå +ïî-ðÿäêî, èëè êîìàíäè, êîèòî ñå èçïîëçâàò ñàìî â îïðåäåëåíè ðåæèìè. +Ïðèìåð å êîìàíäàòà replace-string, êîÿòî çàìåíÿ ãëîáàëíî åäèí íèç ñ +äðóã. Êîãàòî âúâåäåòå M-x, Emacs âè ïîäñêàçâà â äúíîòî íà åêðàíà ñ +M-x è âèå òðÿáâà äà âúâåäåòå èìåòî íà êîìàíäàòà, â òîçè ñëó÷àé +"replace-string". Ïðîñòî âúâåäåòå "repl s" è Emacs ùå çàâúðøè +èìåòî. ( å êëàâèøúò Tab, îáèêíîâåíî íàìèðàù ñå íàä êëàâèøà +CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.) +Çàâúðøåòå èìåòî íà êîìàíäàòà ñ . + +Êîìàíäàòà replace-string èçèñêâà äâà àðãóìåíòà -- íèçúò, êîéòî ùå áúäå +çàìåíÿí, è íèçúò, êîéòî ùå ãî çàìåíè. Òðÿáâà äà çàâúðøèòå âúâåæäàíåòî +íà âñåêè àðãóìåíò ñ . + +>> Ïðèäâèæåòå êóðñîðà äî ïðàçíèÿ ðåä, äâà ðåäà íàäîëó ïîä òîçè. + Òîãàâà âúâåäåòå M-x repl sïðîìåíÿèçìåíÿ + + Çàáåëåæåòå êàê òîçè ðåä ñå ïðîìåíÿ: âèå çàìåíèõòå äóìàòà + ï-ð-î-ì-å-í-ÿ ñ "èçìåíÿ", êúäåòî è äà ñå íàìèðà ñëåä íà÷àëíîòî + ìÿñòî íà êóðñîðà. + +ÇÀÁÅËÅÆÊÀ: Ïðåâêëþ÷âàíåòî êúì âúâåæäàíå íà êèðèëñêè áóêâà ñòàâà ñ C-\. + + +* ÀÂÒÎÌÀÒÈ×ÍÎ ÇÀÏÀÇÂÀÍÅ ----------------------- -ëÏÇÁÔÏ ÓÔÅ ÎÁÐÒÁ×ÉÌÉ ÐÒÏÍÅÎÉ ×ß× ÆÁÊÌ, ÎÏ ÏÝÅ ÎÅ ÓÔÏ ÇÏ ÚÁÐÁÚÉÌÉ, ÔÅ -ÍÏÇÁÔ ÄÁ ÂßÄÁÔ ÚÁÇÕÂÅÎÉ ÁËÏ ËÏÍÐÀÔßÒßÔ ×ÎÅÚÁÐÎÏ ÓÅ ÉÚËÌÀÞÉ. úÁ ÄÁ ÓÅ -ÚÁÐÁÚÉÔÅ ÏÔ ÔÁËÉ×Á ÓÉÔÕÁÃÉÉ, åÍÁËÓ ÐÅÒÉÏÄÉÞÎÏ ÚÁÐÁÚ×Á "Á×ÔÏÍÁÔÉÞÎÏ -ÚÁÐÁÚ×ÁÎ" ÆÁÊÌ ÚÁ ×ÓÅËÉ ÆÁÊÌ, ËÏÊÔÏ ÒÅÄÁËÔÉÒÁÔÅ. éÍÅÔÏ ÎÁ Á×ÔÏÍÁÔÉÞÎÏ -ÚÁÐÁÚ×ÁÎÉÑ ÆÁÊÌ ÉÍÁ # × ÎÁÞÁÌÏÔÏ É × ËÒÁÑ; ÎÁÐÒÉÍÅÒ, ÁËÏ ×ÁÛÉÑÔ ÆÁÊÌ Å -Ó ÉÍÅ "hello.c", ÉÍÅÔÏ ÎÁ ÎÅÇÏ×ÉÑ Á×ÔÏÍÁÔÉÞÎÏ ÚÁÐÁÚ×ÁÎ ÆÁÊÌ ÝÅ ÂßÄÅ -"#hello.c#". ëÏÇÁÔÏ ÚÁÐÁÚ×ÁÔÅ ÆÁÊÌ ÐÏ ÏÂÉËÎÏ×ÅÎÉÑ ÎÁÞÉÎ, åÍÁËÓ -ÉÚÔÒÉ×Á ÎÅÇÏ×ÉÑ Á×ÔÏÍÁÔÉÞÎÏ ÚÁÐÉÓ×ÁÎ ÆÁÊÌ. +Êîãàòî ñòå íàïðàâèëè ïðîìåíè âúâ ôàéë, íî îùå íå ñòå ãî çàïàçèëè, òå +ìîãàò äà áúäàò çàãóáåíè, àêî êîìïþòúðúò âíåçàïíî ñå èçêëþ÷è. Çà äà âè +ïðåäïàçè îò òàêèâà ñèòóàöèè, Emacs ïåðèîäè÷íî çàïàçâà "àâòîìàòè÷íî +çàïàçâàí" ôàéë çà âñåêè ôàéë, êîéòî ðåäàêòèðàòå. Èìåòî íà àâòîìàòè÷íî +çàïàçâàíèÿ ôàéë èìà # â íà÷àëîòî è â êðàÿ; íàïðèìåð, àêî âàøèÿò ôàéë å +ñ èìå "hello.c", èìåòî íà íåãîâèÿ àâòîìàòè÷íî çàïàçâàí ôàéë ùå áúäå +"#hello.c#". Êîãàòî çàïàçâàòå ôàéë ïî îáèêíîâåíèÿ íà÷èí, Emacs +èçòðèâà íåãîâèÿ àâòîìàòè÷íî çàïèñâàí ôàéë. -áËÏ ËÏÍÐÀÔßÒßÔ ÚÁ×ÉÓÎÅ, ÍÏÖÅ ÄÁ ×ßÚÓÔÁÎÏ×ÉÔÅ ×ÁÛÁÔÁ Á×ÔÏÍÁÔÉÞÎÏ -ÚÁÐÁÚ×ÁÎÁ ÒÅÄÁËÃÉÑ ËÁÔÏ ÎÁÍÅÒÉÔÅ ÆÁÊÌÁ ËÁËÔÏ ÏÂÉËÎÏ×ÅÎÏ (ÆÁÊÌßÔ, ËÏÊÔÏ -ÓÔÅ ÒÅÄÁËÔÉÒÁÌÉ, ÎÅ Á×ÔÏÍÁÔÉÞÎÏ ÚÁÐÁÚ×ÁÎÉÑ) É ÓÌÅÄ ÔÏ×Á ×ß×ÅÄÅÔÅ M-x -recover file. ëÏÇÁÔÏ ËÏÍÁÎÄÁÔÁ ÉÚÉÓËÁ ÐÏÔ×ßÒÖÄÅÎÉÅ, ×ß×ÅÄÅÔÅ -yes ÚÁ ÄÁ ÐÒÏÄßÌÖÉÔÅ É ÄÁ ×ßÚÓÔÁÎÏ×ÉÔÅ Á×ÔÏÍÁÔÉÞÎÏ ÚÁÐÁÚ×ÁÎÉÔÅ -ÄÁÎÎÉ. +Àêî êîìïþòúðúò çàâèñíå, ìîæå äà âúçñòàíîâèòå âàøàòà àâòîìàòè÷íî +çàïàçâàíà ðåäàêöèÿ, êàòî íàìåðèòå ôàéëà êàêòî îáèêíîâåíî (ôàéëúò, +êîéòî ñòå ðåäàêòèðàëè, íå àâòîìàòè÷íî çàïàçâàíèÿ) è ñëåä òîâà âúâåäåòå +M-x recover file. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, +âúâåäåòå yes, çà äà ïðîäúëæèòå è äà âúçñòàíîâèòå àâòîìàòè÷íî +çàïàçâàíèòå äàííè. -* åèï ïâìáóôôá +* ÅÕÎ ÎÁËÀÑÒÒÀ -------------- -áËÏ åÍÁËÓ ×ÉÄÉ, ÞÅ ×ß×ÅÖÄÁÔÅ ÍÎÏÇÏÚÎÁËÏ×É ËÏÍÁÎÄÉ ÂÁ×ÎÏ, ÝÅ ×É ÇÉ -ÐÏËÁÖÅ × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ × ÏÂÌÁÓÔ ÎÁÒÉÞÁÎÁ "ÅÈÏ ÏÂÌÁÓÔ". åÈÏ -ÏÂÌÁÓÔÔÁ ÏÂÈ×ÁÝÁ ÐÏÓÌÅÄÎÉÑ ÒÅÄ ÏÔ ÅËÒÁÎÁ. +Àêî Emacs âèäè, ÷å âúâåæäàòå ìíîãîçíàêîâè êîìàíäè áàâíî, ùå âè ãè +ïîêàæå â äúíîòî íà åêðàíà, â îáëàñò, íàðè÷àíà "åõî îáëàñò". Åõî +îáëàñòòà îáõâàùà ïîñëåäíèÿ ðåä îò åêðàíà. -* òåä îá òåöéíá ---------------- +* ÐÅÄ ÍÀ ÐÅÆÈÌÀ +---------------- -òÅÄßÔ ÔÏÞÎÏ ÎÁÄ ÅÈÏ ÏÂÌÁÓÔÔÁ ÓÅ ÎÁÒÉÞÁ "ÒÅÄ ÎÁ ÒÅÖÉÍÁ" (mode line). -ôÏÊ ÐÏËÁÚ×Á ÎÅÝÏ ËÁÔÏ: +Ðåäúò òî÷íî íàä åõî îáëàñòòà ñå íàðè÷à "ðåä íà ðåæèìà" (mode line). +Òîé ïîêàçâà íåùî êàòî: ---:** TUTORIAL (Fundamental)--L670--58%---------------- +-D:** TUTORIAL.bg 63% L749 (Fundamental)--------------------- -ôÏÚÉ ÒÅÄ ÄÁ×Á ÐÏÌÅÚÎÁ ÉÎÆÏÒÍÁÃÉÑ ÚÁ ÓßÓÔÏÑÎÉÅÔÏ ÎÁ åÍÁËÓ É ÔÅËÓÔÁ, -ËÏÊÔÏ ÒÅÄÁËÔÉÒÁÔÅ. +Òîçè ðåä äàâà ïîëåçíà èíôîðìàöèÿ çà ñúñòîÿíèåòî íà Emacs è òåêñòà, +êîéòî ðåäàêòèðàòå. -÷ÅÞÅ ÚÎÁÅÔÅ ËÁË×Ï ÏÚÎÁÞÁ×Á ÉÍÅÔÏ ÎÁ ÆÁÊÌÁ -- ÔÏ×Á Å ÆÁÊÌßÔ, ËÏÊÔÏ ÓÔÅ -ÎÁÍÅÒÉÌÉ. -NN%-- ÐÏËÁÚ×Á ×ÁÛÁÔÁ ÔÅËÕÝÁ ÐÏÚÉÃÉÑ × ÔÅËÓÔÁ; ÔÏ×Á -ÏÚÎÁÞÁ×Á, ÞÅ NN ÐÒÏÃÅÎÔÁ ÏÔ ÔÅËÓÔÁ Å ÎÁÄ ×ßÒÈÁ ÎÁ ÅËÒÁÎÁ. áËÏ -ÎÁÞÁÌÏÔÏ ÎÁ ÆÁÊÌÁ Å ÎÁ ÅËÒÁÎÁ, ÝÅ ÓÅ ÐÏËÁÚ×Á --Top-- (×ÒßÈ) ×ÍÅÓÔÏ ---00%--. áËÏ ËÒÁÑ ÎÁ ÆÁÊÌÁ Å ÎÁ ÅËÒÁÎÁ, ÝÅ ÓÅ ÐÏËÁÚ×Á --Bot-- (ÄßÎÏ). -áËÏ ÇÌÅÄÁÔÅ ÔÅËÓÔ, ËÏÊÔÏ Å ÔÏÌËÏ×Á ÍÁÌßË, ÞÅ ÓÅ ÐÏËÁÚ×Á ÉÚÃÑÌÏ ÎÁ -ÅËÒÁÎÁ, ÒÅÄßÔ ÎÁ ÒÅÖÉÍÁ ÝÅ ÉÚ×ÅÄÅ --All--. +Âå÷å çíàåòå êàêâî îçíà÷àâà èìåòî íà ôàéëà -- òîâà å ôàéëúò, êîéòî ñòå +íàìåðèëè. NN% ïîêàçâà âàøàòà òåêóùà ïîçèöèÿ â òåêñòà; òîâà îçíà÷àâà, +÷å NN ïðîöåíòà îò òåêñòà å íàä âúðõà íà åêðàíà. Àêî íà÷àëîòî íà ôàéëà +å íà åêðàíà, ùå ñå ïîêàçâà --Top-- (âðúõ) âìåñòî --00%--. Àêî êðàÿò +íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Bot-- (äúíî). Àêî ãëåäàòå +òåêñò, êîéòî å òîëêîâà ìàëúê, ÷å ñå ïîêàçâà èçöÿëî íà åêðàíà, ðåäúò íà +ðåæèìà ùå èçâåäå --All--. -úÎÁËßÔ L É ÃÉÆÒÉÔÅ ÐÏËÁÚ×ÁÔ ÍÑÓÔÏÔÏ ÐÏ ÄÒÕÇ ÎÁÞÉÎ: ÔÏ×Á Å ÎÏÍÅÒßÔ ÎÁ -ÔÅËÕÝÉÑ ÒÅÄ ÎÁ ÔÏÞËÁÔÁ. +Çíàêúò L è öèôðèòå ïîêàçâàò ìÿñòîòî ïî äðóã íà÷èí: òîâà å íîìåðúò íà +òåêóùèÿ ðåä íà òî÷êàòà. -ú×ÅÚÄÉÔÅ ÂÌÉÚÏ ÄÏ ÎÁÞÁÌÏÔÏ ÏÚÎÁÞÁ×ÁÔ, ÞÅ ÓÔÅ ÎÁÐÒÁ×ÉÌÉ ÐÒÏÍÅÎÉ × -ÔÅËÓÔÁ. ÷ÅÄÎÁÇÁ ÓÌÅÄ ËÁÔÏ ÐÏÓÅÔÉÔÅ ÉÌÉ ÚÁÐÁÚÉÔÅ ÆÁÊÌ ÔÁÚÉ ÞÁÓÔ ÏÔ -ÒÅÄÁ ÎÁ ÒÅÖÉÍÁ ×ÅÞÅ ÎÅ ÐÏËÁÚ×Á Ú×ÅÚÄÉ, Á ÓÁÍÏ ÔÉÒÅÔÁ. +Çâåçäèòå áëèçî äî íà÷àëîòî îçíà÷àâàò, ÷å ñòå íàïðàâèëè ïðîìåíè â +òåêñòà. Âåäíàãà ñëåä êàòî ïîñåòèòå èëè çàïàçèòå ôàéë, òàçè ÷àñò îò +ðåäà íà ðåæèìà âå÷å íå ïîêàçâà çâåçäè, à ñàìî òèðåòà. -þÁÓÔÔÁ ÏÔ ÒÅÄÁ ÎÁ ÒÅÖÉÍÁ ×ßÔÒÅ × ÓËÏÂÉÔÅ Å ÚÁ ÄÁ ×É ÐÏËÁÖÅ × ËÁËß× -ÒÅÖÉÍ ÎÁ ÒÅÄÁËÔÉÒÁÎÅ ÓÅ ÎÁÍÉÒÁÔÅ. ðÏÄÒÁÚÂÉÒÁÝÉÑÔ ÓÅ ÒÅÖÉÍ Å -Fundamental (ïÓÎÏ×ÅÎ), ËÏÊÔÏ ÉÚÐÏÌÚ×ÁÔÅ × ÍÏÍÅÎÔÁ. ôÏ×Á Å ÐÒÉÍÅÒ ÚÁ -"ÇÌÁ×ÅÎ ÒÅÖÉÍ" (major mode). +×àñòòà îò ðåäà íà ðåæèìà âúòðå â ñêîáèòå å, çà äà âè ïîêàæå â êàêúâ +ðåæèì íà ðåäàêòèðàíå ñå íàìèðàòå. Ïîäðàçáèðàùèÿò ñå ðåæèì å +Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà +"ãëàâåí ðåæèì" (major mode). -åÍÁËÓ ÉÍÁ ÍÎÏÇÏ ÇÌÁ×ÎÉ ÒÅÖÉÍÉ. îÑËÏÉ ÏÔ ÔÑÈ ÓÁ ÐÒÅÄ×ÉÄÅÎÉ ÚÁ -ÒÅÄÁËÔÉÒÁÎÅ ÎÁ ÒÁÚÌÉÞÎÉ ÅÚÉÃÉ É/ÉÌÉ ×ÉÄÏ×Å ÔÅËÓÔ, ËÁÔÏ ÎÁÐÒÉÍÅÒ ÒÅÖÉÍ -ìÉÓÐ, ÒÅÖÉÍ ôÅËÓÔ É ÄÒÕÇÉ. ÷ß× ×ÓÅËÉ ÅÄÉÎ ÍÏÍÅÎÔ ÏÔ ×ÒÅÍÅ ÔÏÞÎÏ ÅÄÉÎ -ÇÌÁ×ÅÎ ÒÅÖÉÍ Å ÁËÔÉ×ÅÎ É ÎÅÇÏ×ÏÔÏ ÉÍÅ ÍÏÖÅ ×ÉÎÁÇÉ ÄÁ ÂßÄÅ ÎÁÍÅÒÅÎÏ × -ÒÅÄÁ ÎÁ ÒÅÖÉÍÁ ÔÏÞÎÏ ËÁËÔÏ "Fundamental" ÓÅÇÁ. +Emacs èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà +ðåäàêòèðàíå íà ðàçëè÷íè åçèöè è/èëè âèäîâå òåêñò, êàòî íàïðèìåð ðåæèì +Ëèñï, ðåæèì Òåêñò è äðóãè. Âúâ âñåêè åäèí ìîìåíò îò âðåìå òî÷íî åäèí +ãëàâåí ðåæèì å àêòèâåí è íåãîâîòî èìå ìîæå âèíàãè äà áúäå íàìåðåíî â +ðåäà íà ðåæèìà, òî÷íî êàêòî "Fundamental" ñåãà. -÷ÓÅËÉ ÇÌÁ×ÅÎ ÒÅÖÉÍ ÐÒÁ×É ÎÑËÏÉ ËÏÍÁÎÄÉ ÄÁ ÓÅ ÄßÒÖÁÔ ÐÏ ÒÁÚÌÉÞÅÎ -ÎÁÞÉÎ. îÁÐÒÉÍÅÒ, ÉÍÁ ËÏÍÁÎÄÉ ÚÁ ÒÅÄÁËÔÉÒÁÎÅ ÎÁ ËÏÍÅÎÔÁÒÉ × ÐÒÏÇÒÁÍÉ, -É ÔßÊ ËÁÔÏ ×ÓÅËÉ ÐÒÏÇÒÁÍÅÎ ÅÚÉË ÉÍÁ ÒÁÚÌÉÞÎÁ ÉÄÅÑ ÚÁ ÔÏ×Á ËÁË ÔÒÑÂ×Á -ÄÁ ÉÚÇÌÅÖÄÁÔ ËÏÍÅÎÔÁÒÉÔÅ, ×ÓÅËÉ ÇÌÁ×ÅÎ ÒÅÖÉÍ ÔÒÑÂ×Á ÄÁ ×ÍßË×Á -ËÏÍÅÎÔÁÒÉ ÐÏ ÒÁÚÌÉÞÅÎ ÎÁÞÉÎ. ÷ÓÅËÉ ÇÌÁ×ÅÎ ÒÅÖÉÍ Å ÉÍÅ ÎÁ ÒÁÚÛÉÒÅÎÁ -ËÏÍÁÎÄÁ, Ó ËÏÑÔÏ ÐÒÅ×ËÌÀÞ×ÁÔÅ ËßÍ ÔÏÚÉ ÒÅÖÉÍ. îÁÐÒÉÍÅÒ, M-x -fundamental-mode Å ËÏÍÁÎÄÁ ÚÁ ÐÒÅ×ËÌÀÞ×ÁÎÅ ËßÍ ÒÅÖÉÍ Fundamental. +Âñåêè ãëàâåí ðåæèì ïðàâè íÿêîè êîìàíäè äà ñå äúðæàò ïî ðàçëè÷åí íà÷èí. +Íàïðèìåð, èìà êîìàíäè çà ðåäàêòèðàíå íà êîìåíòàðè â ïðîãðàìè, è òúé +êàòî âñåêè ïðîãðàìåí åçèê èìà ðàçëè÷íà èäåÿ çà òîâà êàê òðÿáâà äà +èçãëåæäàò êîìåíòàðèòå, âñåêè ãëàâåí ðåæèì òðÿáâà äà âìúêâà êîìåíòàðè +ïî ðàçëè÷åí íà÷èí. Âñåêè ãëàâåí ðåæèì å èìå íà ðàçøèðåíà êîìàíäà, ñ +êîÿòî ïðåâêëþ÷âàòå êúì òîçè ðåæèì. Íàïðèìåð, M-x fundamental-mode å +êîìàíäà çà ïðåâêëþ÷âàíå êúì ðåæèì Fundamental. -ëÏÇÁÔÏ ÒÅÄÁËÔÉÒÁÔÅ ÔÅËÓÔ ÎÁ ÅÓÔÅÓÔ×ÅÎ ÅÚÉË, ËÁÔÏ ÔÏÚÉ ÆÁÊÌ, -ÎÁÊ-×ÅÒÏÑÔÎÏ ÔÒÑÂ×Á ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ÒÅÖÉÍ ôÅËÓÔ. +Êîãàòî ðåäàêòèðàòå òåêñò íà åñòåñòâåí åçèê, êàòî òîçè ôàéë, +íàé-âåðîÿòíî òðÿáâà äà èçïîëçâàòå ðåæèì Òåêñò (text). ->> ÷ß×ÅÄÅÔÅ M-x text mode. +>> Âúâåäåòå M-x text mode. -îÅ ÓÅ ÂÅÚÐÏËÏÊÔÅ, ÎÉËÏÑ ÏÔ åÍÁËÓ ËÏÍÁÎÄÉÔÅ, ËÏÉÔÏ ÓÔÅ ÎÁÕÞÉÌÉ, ÎÑÍÁ ÄÁ -ÓÅ ÐÒÏÍÅÎÉ ÐÏ ÎÑËÁËß× ÓßÝÅÓÔ×ÅÎ ÎÁÞÉÎ. îÏ ÍÏÖÅ ÄÁ ÚÁÂÅÌÅÖÉÔÅ, ÞÅ M-f -É M-b ÓÅÇÁ ×ßÚÐÒÉÅÍÁÔ ÁÐÏÓÔÒÏÆÉÔÅ (') ËÁÔÏ ÞÁÓÔ ÏÔ ÄÕÍÉÔÅ. ðÒÅÄÉ -ÔÏ×Á, × ÏÓÎÏ×ÎÉÑ ÒÅÖÉÍ (Fundamental) M-f É M-b ÓÅ ×ßÚÐÒÉÅÍÁÈÁ ËÁÔÏ -ÒÁÚÄÅÌÉÔÅÌÉ ÎÁ ÄÕÍÉ. +Íå ñå áåçïîêîéòå, íèêîÿ îò Emacs êîìàíäèòå, êîèòî ñòå íàó÷èëè, íÿìà äà +ñå ïðîìåíè ïî íÿêàêúâ ñúùåñòâåí íà÷èí. Íî ìîæå äà çàáåëåæèòå, ÷å M-f +è M-b ñåãà âúçïðèåìàò àïîñòðîôèòå (') êàòî ÷àñò îò äóìèòå. Ïðåäè +òîâà, â îñíîâíèÿ ðåæèì (Fundamental), M-f è M-b ñå âúçïðèåìàõà êàòî +ðàçäåëèòåëè íà äóìè. -çÌÁ×ÎÉÔÅ ÒÅÖÉÍÉ ÏÂÉËÎÏ×ÅÎÏ ÐÒÁ×ÑÔ ÍÁÌËÉ ÐÒÏÍÅÎÉ ËÁÔÏ ÔÁÚÉ: ÐÏ×ÅÞÅÔÏ -ËÏÍÁÎÄÉ ×ßÒÛÁÔ "ÓßÝÁÔÁ ÒÁÂÏÔÁ" ×ß× ×ÓÅËÉ ÇÌÁ×ÅÎ ÒÅÖÉÍ, ÎÏ ÒÁÂÏÔÑÔ ÐÏ -ÍÁÌËÏ ÐÏ-ÒÁÚÌÉÞÅÎ ÎÁÞÉÎ. +Ãëàâíèòå ðåæèìè îáèêíîâåíî ïðàâÿò ìàëêè ïðîìåíè êàòî òàçè: ïîâå÷åòî +êîìàíäè âúðøàò "ñúùàòà ðàáîòà" âúâ âñåêè ãëàâåí ðåæèì, íî ðàáîòÿò ïî +ìàëêî ïî-ðàçëè÷åí íà÷èí. -úÁ ÄÁ ×ÉÄÉÔÅ ÄÏËÕÍÅÎÔÁÃÉÑÔÁ ÎÁ ×ÁÛÉÑ ÔÅËÕÝ ÇÌÁ×ÅÎ ÒÅÖÉÍ, ×ß×ÅÄÅÔÅ C-h +Çà äà âèäèòå äîêóìåíòàöèÿòà íà âàøèÿ òåêóù ãëàâåí ðåæèì, âúâåäåòå C-h m. ->> õÐÏÔÒÅÂÅÔÅ C-u C-v ×ÅÄÎßÖ ÉÌÉ ÐÏ×ÅÞÅ ÐßÔÉ ÚÁ ÄÁ ÄÏËÁÒÁÔÅ ÔÏÚÉ ÒÅÄ - ÂÌÉÚÏ ÄÏ ×ßÒÈÁ ÎÁ ÅËÒÁÎÁ. ->> ÷ß×ÅÄÅÔÅ C-h m, ÚÁ ÄÁ ×ÉÄÉÔÅ ËÁË ÔÅËÓÔÏ×ÉÑÔ ÒÅÖÉÍ ÓÅ ÒÁÚÌÉÞÁ×Á ÏÔ - ÏÓÎÏ×ÎÉÑ ÒÅÖÉÍ. ->> ÷ß×ÅÄÅÔÅ C-x 1 ÚÁ ÄÁ ÐÒÅÍÁÈÎÅÔÅ ÄÏËÕÍÅÎÔÁÃÉÑÔÁ ÏÔ ÅËÒÁÎÁ. - -çÌÁ×ÎÉÔÅ ÒÅÖÉÍÉ ÓÅ ÎÁÒÉÞÁÔ ÇÌÁ×ÎÉ, ÚÁÝÏÔÏ ÉÍÁ É ÍÁÌËÉ ÒÅÖÉÍÉ (minor -modes). íÁÌËÉÔÅ ÒÅÖÉÍÉ ÎÅ ÓÁ ÁÌÔÅÒÎÁÔÉ×É ÎÁ ÇÌÁ×ÎÉÔÅ, Á ÐÒÏÓÔÏ ÍÁÌËÉ -ÐÒÏÍÅÎÉ ËßÍ ÔÑÈ. ÷ÓÅËÉ ÍÁÌßË ÒÅÖÉÍ ÍÏÖÅ ÄÁ ÂßÄÅ ×ËÌÀÞÅÎ ÉÌÉ ÉÚËÌÀÞÅÎ -ÓÁÍ ÚÁ ÓÅÂÅ ÓÉ, ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ×ÓÉÞËÉ ÄÒÕÇÉ ÍÁÌËÉ ÒÅÖÉÍÉ, É ÎÅÚÁ×ÉÓÉÍÏ -ÏÔ ×ÁÛÉÑ ÇÌÁ×ÅÎ ÒÅÖÉÍ. ôÁËÁ ÞÅ ÍÏÖÅ ÄÁ ÎÅ ÉÚÐÏÌÚ×ÁÔÅ ÍÁÌËÉ ÒÅÖÉÍÉ, ÄÁ -ÉÚÐÏÌÚ×ÁÔÅ ÅÄÉÎ ÍÁÌßË ÒÅÖÉÍ, ÉÌÉ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ÎÑËÁË×Á ËÏÍÂÉÎÁÃÉÑ ÏÔ -ÎÑËÏÌËÏ ÍÁÌËÉ ÒÅÖÉÍÁ. - -åÄÉÎ ÇÌÁ×ÅÎ ÒÅÖÉÍ, ËÏÊÔÏ Å ÍÎÏÇÏ ÐÏÌÅÚÅÎ, ÏÓÏÂÅÎÏ ÚÁ ÒÅÄÁËÔÉÒÁÎÅ ÎÁ -ÔÅËÓÔ ÎÁ ÅÓÔÅÓÔ×ÅÎ ÅÚÉË, Å ÒÅÖÉÍßÔ ÎÁ Á×ÔÏÍÁÔÉÞÎÏ ÚÁÐßÌ×ÁÎÅ (Auto Fill -mode). ëÏÇÁÔÏ ÔÏÚÉ ÒÅÖÉÍ Å ×ËÌÀÞÅÎ, åÍÁËÓ Á×ÔÏÍÁÔÉÞÎÏ ÒÁÚÄÅÌÑ ÒÅÄÁ -ÐÒÉ ÍÑÓÔÏÔÏ ÍÅÖÄÕ ÄÕÍÉÔÅ, ËÏÇÁÔÏ ×ÍßË×ÁÔÅ ÔÅËÓÔ É ÎÁÐÒÁ×ÉÔÅ ÒÅÄ, ËÏÊÔÏ -Å Ô×ßÒÄÅ ÄßÌßÇ. - -íÏÖÅ ÄÁ ×ËÌÀÞÉÔÅ ÒÅÖÉÍÁ ÎÁ Á×ÔÏÍÁÔÉÞÎÏ ÚÁÐßÌ×ÁÎÅ ËÁÔÏ ÉÚÐßÌÎÉÔÅ M-x -auto fill mode. ëÏÇÁÔÏ ÒÅÖÉÍßÔ Å ×ËÌÀÞÅÎ, ÍÏÖÅ ÄÁ ÇÏ -ÉÚËÌÀÞÉÔÅ Ó M-x auto fill mode. áËÏ ÒÅÖÉÍßÔ Å ÉÚËÌÀÞÅÎ, ÔÁÚÉ -ËÏÍÁÎÄÁ ÇÏ ×ËÌÀÞ×Á, Á ÁËÏ Å ×ËÌÀÞÅÎ, ÇÏ ÉÚËÌÀÞ×Á. ëÁÚ×ÁÍÅ, ÞÅ -ËÏÍÁÎÄÁÔÁ "ÏÂÒßÝÁ ÒÅÖÉÍÁ". - ->> ÷ß×ÅÄÅÔÅ M-x auto fill mode ÓÅÇÁ. óÌÅÄ ÔÏ×Á ×ÍßËÎÅÔÅ ÒÅÄ - ÏÔ "asdf " ÏÔÎÏ×Ï É ÏÔÎÏ×Ï ÄÏËÁÔÏ ÎÅ ×ÉÄÉÔÅ, ÞÅ ÔÅËÓÔÁ ÓÅ ÒÁÚÄÅÌÑ - ÎÁ Ä×Á ÒÅÄÁ. ôÒÑÂ×Á ÄÁ ÓÌÁÇÁÔÅ ÉÎÔÅÒ×ÁÌÉ ÍÅÖÄÕ ÄÕÍÉÔÅ, ÚÁÝÏÔÏ - Á×ÔÏÍÁÔÉÞÎÏÔÏ ÚÁÐßÌ×ÁÎÅ ÒÁÚÄÅÌÑ ÒÅÄÏ×ÅÔÅ ÓÁÍÏ ÐÒÉ ÉÎÔÅÒ×ÁÌÉÔÅ. - -çÒÁÎÉÃÁÔÁ ÏÂÉËÎÏ×ÅÎÏ Å ÚÁÄÁÄÅÎÁ ÎÁ 70 ÚÎÁËÁ, ÎÏ ÍÏÖÅÔÅ ÄÁ Ñ ÐÒÏÍÅÎÉÔÅ -Ó ËÏÍÁÎÄÁÔÁ C-x f. ôÒÑÂ×Á ÄÁ ÚÁÄÁ×ÁÔÅ ÔÁÚÉ ÇÒÁÎÉÃÁ ËÁÔÏ ÞÉÓÌÏ× -ÁÒÇÕÍÅÎÔ ÎÁ ËÏÍÁÎÄÁÔÁ. - ->> ÷ß×ÅÄÅÔÅ C-x f Ó ÁÒÇÕÍÅÎÔ 20. (C-u 2 0 C-x f). - óÅÇÁ ×ß×ÅÄÅÔÅ ÎÑËÁËß× ÔÅËÓÔ É ×ÉÖÔÅ ËÁË åÍÁËÓ ÚÁÐßÌ×Á ÒÅÄÏ×ÅÔÅ Ó ÐÏ - ÎÅ ÐÏ×ÅÞÅ ÏÔ 20 ÚÎÁËÁ. ðÏÓÌÅ ×ßÒÎÅÔÅ ÏÂÒÁÔÎÏ ÇÒÁÎÉÃÁÔÁ ÎÁ 70 - ÉÚÐÏÌÚ×ÁÊËÉ C-x f ÏÔÎÏ×Ï. - -áËÏ ÎÁÐÒÁ×ÉÔÅ ÐÒÏÍÅÎÉ × ÓÒÅÄÁÔÁ ÎÁ ÁÂÚÁÃ, ÒÅÖÉÍßÔ ÎÁ Á×ÔÏÍÁÔÉÞÎÏ -ÚÁÐßÌ×ÁÎÅ ÎÑÍÁ ÄÁ ÇÏ ÚÁÐßÌÎÉ ÎÁÎÏ×Ï ÚÁ ×ÁÓ. -úÁ ÄÁ ÚÁÐßÌÎÉÔÅ ÎÁÎÏ×Ï ÁÂÚÁà ×ß×ÅÖÄÁÊÔÅ M-q (META-q) ÄÏËÁÔÏ ËÕÒÓÏÒßÔ Å -×ßÔÒÅ × ÁÂÚÁÃÁ. - ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ×ßÔÒÅ × ÐÒÅÄÉÛÎÉÑ ÁÂÚÁÃ É ×ß×ÅÄÅÔÅ M-q. - - -* ôÿòóåîå +>> Óïîòðåáåòå C-u C-v âåäíúæ èëè ïîâå÷å ïúòè, çà äà äîêàðàòå òîçè ðåä + áëèçî äî âúðõà íà åêðàíà. +>> Âúâåäåòå C-h m, çà äà âèäèòå êàê òåêñòîâèÿò ðåæèì ñå ðàçëè÷àâà îò + îñíîâíèÿ ðåæèì. +>> Âúâåäåòå C-x 1, çà äà ïðåìàõíåòå äîêóìåíòàöèÿòà îò åêðàíà. + +Ãëàâíèòå ðåæèìè ñå íàðè÷àò ãëàâíè, çàùîòî èìà è ìàëêè (âòîðîñòåïåííè) +ðåæèìè (minor modes). Ìàëêèòå ðåæèìè íå ñà àëòåðíàòèâè íà ãëàâíèòå, à +ïðîñòî ìàëêè ïðîìåíè êúì òÿõ. Âñåêè ìàëúê ðåæèì ìîæå äà áúäå âêëþ÷åí +èëè èçêëþ÷åí ñàì çà ñåáå ñè, íåçàâèñèìî îò âñè÷êè äðóãè ìàëêè ðåæèìè +è íåçàâèñèìî îò âàøèÿ ãëàâåí ðåæèì. Òàêà ÷å ìîæå äà íå èçïîëçâàòå +ìàëêè ðåæèìè, äà èçïîëçâàòå åäèí ìàëúê ðåæèì, èëè äà èçïîëçâàòå +íÿêàêâà êîìáèíàöèÿ îò íÿêîëêî ìàëêè ðåæèìà. + +Åäèí ãëàâåí ðåæèì, êîéòî å ìíîãî ïîëåçåí, îñîáåíî çà ðåäàêòèðàíå íà +òåêñò íà åñòåñòâåí åçèê, å ðåæèìúò íà àâòîìàòè÷íî çàïúëâàíå (Auto Fill +mode). Êîãàòî òîçè ðåæèì å âêëþ÷åí, Emacs àâòîìàòè÷íî ðàçäåëÿ ðåäà +ïðè ìÿñòîòî ìåæäó äóìèòå, êîãàòî âìúêâàòå òåêñò è íàïðàâèòå ðåä, êîéòî +å òâúðäå äúëúã. + +Ìîæå äà âêëþ÷èòå ðåæèìà íà àâòîìàòè÷íî çàïúëâàíå, êàòî èçïúëíèòå M-x +auto fill mode. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî +èçêëþ÷èòå ñ M-x auto fill mode. Àêî ðåæèìúò å èçêëþ÷åí, òàçè +êîìàíäà ãî âêëþ÷âà, à àêî å âêëþ÷åí, ãî èçêëþ÷âà. Êàçâàìå, ÷å +êîìàíäàòà "îáðúùà ðåæèìà". + +>> Âúâåäåòå M-x auto fill mode ñåãà. Ñëåä òîâà âìúêíåòå ðåä + îò "asdf " îòíîâî è îòíîâî, äîêàòî íå âèäèòå, ÷å òåêñòúò ñå ðàçäåëÿ + íà äâà ðåäà. Òðÿáâà äà ñëàãàòå èíòåðâàëè ìåæäó äóìèòå, çàùîòî + àâòîìàòè÷íîòî çàïúëâàíå ðàçäåëÿ ðåäîâåòå ñàìî ïðè èíòåðâàëèòå. + +Ãðàíèöàòà îáèêíîâåíî å çàäàäåíà íà 70 çíàêà, íî ìîæåòå äà ÿ ïðîìåíèòå +ñ êîìàíäàòà C-x f. Òðÿáâà äà çàäàâàòå òàçè ãðàíèöà êàòî ÷èñëîâ +àðãóìåíò íà êîìàíäàòà. + +>> Âúâåäåòå C-x f ñ àðãóìåíò 20. (C-u 2 0 C-x f). + Ñåãà âúâåäåòå íÿêàêúâ òåêñò è âèæòå êàê Emacs çàïúëâà ðåäîâåòå ñ ïî + íå ïîâå÷å îò 20 çíàêà. Ïîñëå âúðíåòå îáðàòíî ãðàíèöàòà íà 70, + èçïîëçâàéêè C-x f îòíîâî. + +Àêî íàïðàâèòå ïðîìåíè â ñðåäàòà íà àáçàö, ðåæèìúò íà àâòîìàòè÷íî +çàïúëâàíå íÿìà äà ãî çàïúëíè íàíîâî çà âàñ. +Çà äà çàïúëíèòå íàíîâî àáçàö, âúâåæäàéòå M-q (META-q), äîêàòî êóðñîðúò +å âúòðå â àáçàöà. + +>> Ïðèäâèæåòå êóðñîðà âúòðå â ïðåäèøíèÿ àáçàö è âúâåäåòå M-q. + + +* ÒÚÐÑÅÍÅ --------- -åÍÁËÓ ÍÏÖÅ ÄÁ ÉÚ×ßÒÛ×Á ÔßÒÓÅÎÉÑ ÎÁ ÎÉÚÏ×Å (ÔÏ×Á ÓÁ ÐÏÓÌÅÄÏ×ÁÔÅÌÎÏÓÔÉ -ÏÔ ÚÎÁÃÉ ÉÌÉ ÄÕÍÉ) ÉÌÉ ÎÁÐÒÅÄ × ÔÅËÓÔÁ ÉÌÉ ÎÁÚÁÄ × ÎÅÇÏ. ôßÒÓÅÎÅÔÏ ÎÁ -ÎÉÚ Å ÐÒÉÄ×ÉÖ×ÁÝÁ ËÕÒÓÏÒÁ ËÏÍÁÎÄÁ; ÔÑ ÐÒÅÍÅÓÔ×Á ËÕÒÓÏÒÁ ÎÁ ÓÌÅÄ×ÁÝÏÔÏ -ÍÑÓÔÏ, ËßÄÅÔÏ ÓÅ ÓÒÅÝÁ ÎÉÚßÔ. - -ëÏÍÁÎÄÁÔÁ ÚÁ ÔßÒÓÅÎÅ ÎÁ åÍÁËÓ ÓÅ ÒÁÚÌÉÞÁ×Á ÏÔ ËÏÍÁÎÄÁÔÁ ÚÁ ÔßÒÓÅÎÅ ÎÁ -ÐÏ×ÅÞÅÔÏ ÒÅÄÁËÔÏÒÉ ÐÏ ÔÏ×Á, ÞÅ ÔÑ Å "ÐÏÓÔßÐËÏ×Á". ôÏ×Á ÏÚÎÁÞÁ×Á, ÞÅ -ÔßÒÓÅÎÅÔÏ ÓÅ ÉÚ×ßÒÛ×Á ÏÝÅ ÄÏËÁÔÏ ×ß×ÅÖÄÁÔÅ ÔÅËÓÔÁ, ËÏÊÔÏ ÔßÒÓÉÔÅ. - -ëÏÍÁÎÄÁÔÁ ÚÁ ÚÁÐÏÞ×ÁÎÅ ÎÁ ÔßÒÓÅÎÅ Å C-s ÚÁ ÔßÒÓÅÎÅ ÎÁÐÒÅÄ, É C-r ÚÁ -ÔßÒÓÅÎÅ ÎÁÚÁÄ. îï ðïþáëáêôå! îÅ ÇÉ ÐÒÏÂ×ÁÊÔÅ ÓÅÇÁ. - -ëÏÇÁÔÏ ×ß×ÅÄÅÔÅ C-s ÝÅ ÚÁÂÅÌÅÖÉÔÅ, ÞÅ ÎÉÚßÔ "I-search" ÓÅ ÐÏÑ×Ñ×Á ËÁÔÏ -ÐÏÄÓËÁÚËÁ × ÅÈÏ ÏÂÌÁÓÔÔÁ. ôÏ×Á ×É ËÁÚ×Á, ÞÅ åÍÁËÓ Å × ÔÏ×Á, ËÏÅÔÏ ÓÅ -ÎÁÒÉÞÁ ÐÏÓÔßÐËÏ×Ï ÔßÒÓÅÎÅ, ÞÁËÁÊËÉ ×É ÄÁ ×ß×ÅÖÄÁÔÅ ÔÅËÓÔÁ, ËÏÊÔÏ -ÉÓËÁÔÅ ÄÁ ÔßÒÓÉÔÅ. ÐÒÉËÌÀÞ×Á ÔßÒÓÅÎÅÔÏ. - ->> óÅÇÁ ×ß×ÅÄÅÔÅ C-s ÚÁ ÄÁ ÚÁÐÏÞÎÅÔÅ ÔßÒÓÅÎÅÔÏ. âá÷îï, ÂÕË×Á ÐÏ - ÂÕË×Á, ×ß×ÅÄÅÔÅ ÄÕÍÁÔÁ "ÔßÒÓÅÎÅ", ÉÚÞÁË×ÁÊËÉ ÓÌÅÄ ×ß×ÅÖÄÁÎÅÔÏ ÎÁ - ×ÓÅËÉ ÚÎÁË, ÚÁ ÄÁ ÍÏÖÅ ÄÁ ÚÁÂÅÌÅÖÉÔÅ ËÁË×Ï ÓÔÁ×Á Ó ËÕÒÓÏÒÁ. óÅÇÁ - ÉÚ×ßÒÛÉÈÔÅ ÔßÒÓÅÎÅ ÎÁ "ÔßÒÓÅÎÅ" ×ÅÄÎßÖ. ->> ÷ß×ÅÄÅÔÅ ÏÔÎÏ×Ï C-s, ÚÁ ÄÁ ÔßÒÓÉÔÅ ÄÒÕÇÏ Óß×ÐÁÄÅÎÉÅ Ó "ÔßÒÓÅÎÅ". ->> óÅÇÁ ×ß×ÅÄÅÔÅ ÔÒÉ ÐßÔÉ É ×ÉÖÔÅ ËÁË ÓÅ ÐÒÉÄ×ÉÖ×Á ËÕÒÓÏÒÁ. ->> ÷ß×ÅÄÅÔÅ ÚÁ ÄÁ ÐÒÅËÒÁÔÉÔÅ ÔßÒÓÅÎÅÔÏ. - -úÁÂÅÌÑÚÁÈÔÅ ÌÉ ËÁË×Ï ÓÔÁÎÁ? åÍÁËÓ, ËÏÇÁÔÏ ÔßÒÓÉ ÐÏÓÔßÐËÏ×Ï, ÓÅ ÏÐÉÔ×Á -ÄÁ ÎÁÍÅÒÉ ÓÌÅÄ×ÁÝÏÔÏ Óß×ÐÁÄÅÎÉÅ ÎÁ ÎÉÚÁ, ËÏÊÔÏ ÓÅ ×ß×ÅÖÄÁ. úÁ ÄÁ -ÏÔÉÄÅÔÅ ÎÁ ÓÌÅÄ×ÁÝÏÔÏ Óß×ÐÁÄÅÎÉÅ ÎÁ "ÔßÒÓÎÅ" ÐÒÏÓÔÏ ÏÔÎÏ×Ï ×ß×ÅÄÅÔÅ -C-s. áËÏ ÎÑÍÁ ÔÁËÏ×Á Óß×ÐÁÄÅÎÉÅ, åÍÁËÓ ÂÉÂÉÐ×Á É ×É ËÁÚ×Á, ÞÅ -ÔßÒÓÅÎÅÔÏ Å "ÐÒÏ×ÁÌÅÎÏ" (failing). C-g ÓßÝÏ ÐÒÅËÒÁÔÑ×Á ÔßÒÓÅÎÅÔÏ. - -úáâåìåöëá: îÁ ÎÑËÏÉ ÓÉÓÔÅÍÉ ×ß×ÅÖÄÁÎÅÔÏ ÎÁ C-s ÝÅ ÚÁÍÒÁÚÉ ÅËÒÁÎÁ É ×ÉÅ -ÎÑÍÁ ÄÁ ÍÏÖÅ ÄÁ ×ÉÄÉÔÅ ÐÏ×ÅÞÅ ÒÅÁËÃÉÑ ÏÔ åÍÁËÓ. ôÏ×Á ÐÏËÁÚ×Á, ÞÅ -"ÓÐÏÓÏÂÎÏÓÔ" ÎÁ ÏÐÅÒÁÃÉÏÎÎÁÔÁ ÓÉÓÔÅÍÁ ÎÁÒÅÞÅÎÁ "ÕÐÒÁ×ÌÅÎÉÅ ÎÁ ÐÏÔÏËÁ" -Å ÐÒÉÈ×ÁÎÁÌÁ C-s É ÎÅ ÇÏ ÐÕÓËÁ ÄÏ åÍÁËÓ. úÁ ÄÁ ÒÁÚÍÒÁÚÉÔÅ ÅËÒÁÎÁ -×ß×ÅÄÅÔÅ C-q. ôÏÇÁ×Á ×ÉÖÔÅ ÓÅËÃÉÑÔÁ "óÐÏÎÔÁÎÎÏ ×ËÌÀÞ×ÁÎÅ ÎÁ -ÐÏÓÔßÐËÏ×ÏÔÏ ÔßÒÓÅÎÅ" (Spontaneous Entry to Incremental Search) × -ÒßËÏ×ÏÄÓÔ×ÏÔÏ ÎÁ åÍÁËÓ ÚÁ Óß×ÅÔ ËÁË ÄÁ ÓÅ ÓÐÒÁ×ÉÔÅ Ó ÔÁÚÉ -"ÓÐÏÓÏÂÎÏÓÔ". - -áËÏ ÓÔÅ × ÓÒÅÄÁÔÁ ÎÁ ÐÏÓÔßÐËÏ×Ï ÔßÒÓÅÎÅ É ×ß×ÅÄÅÔÅ ÝÅ -ÚÁÂÅÌÅÖÉÔÅ, ÞÅ ÐÏÓÌÅÄÎÉÑÔ ÚÎÁË × ÔßÒÓÅÎÉÑ ÎÉÚ ÓÅ ÉÚÔÒÉ×Á É ÔßÒÓÅÎÅÔÏ -ÓÅ ×ÒßÝÁ ËßÍ ÐÏÓÌÅÄÎÏÔÏ ÍÑÓÔÏ ÎÁ ÔßÒÓÅÎÅ. îÁÐÒÉÍÅÒ, ÐÒÅÄÐÏÌÏÖÅÔÅ, ÞÅ -ÓÔÅ ×ß×ÅÌÉ "Ô", ÚÁ ÄÁ ÎÁÍÅÒÉÔÅ ÐßÒ×ÏÔÏ Óß×ÐÁÄÅÎÉÅ Ó "Ô". óÅÇÁ ÁËÏ -×ß×ÅÄÅÔÅ "ß" ËÕÒÓÏÒßÔ ÝÅ ÓÅ ÐÒÉÄ×ÉÖÉ ËßÍ ÐßÒ×ÏÔÏ Óß×ÐÁÄÅÎÉÅ ÎÁ "Ôß". -óÅÇÁ ×ß×ÅÄÅÔÅ . ôÏ×Á ÉÚÔÒÉ×Á ÚÎÁËÁ "ß" ÏÔ ÎÉÚÁ ÚÁ ÔßÒÓÅÎÅ, É -ËÕÒÓÏÒßÔ ÓÅ ÐÒÅÍÅÓÔ×Á ÎÁÚÁÄ ÄÏ ÐßÒ×ÏÔÏ Óß×ÐÁÄÅÎÉÅ Ó "Ô". - -áËÏ ÓÔÅ × ÓÒÅÄÁÔÁ ÎÁ ÔßÒÓÅÎÅ É ×ß×ÅÄÅÔÅ ËÏÎÔÒÏÌÅÎ ÉÌÉ ÍÅÔÁ ÚÎÁË (Ó -ÎÑËÏÌËÏ ÉÚËÌÀÞÅÎÉÑ -- ÚÎÁÃÉÔÅ, ËÏÉÔÏ ÓÁ ÓÐÅÃÉÁÌÎÉ ÐÏ ×ÒÅÍÅ ÎÁ ÔßÒÓÅÎÅ, -ËÁÔÏ C-s É C-r), ÔßÒÓÅÎÅÔÏ ÓÅ ÐÒÅËÒÁÔÑ×Á. - -C-s ÚÁÐÏÞ×Á ÔßÒÓÅÎÅ, ËÏÅÔÏ ÇÌÅÄÁ ÚÁ Óß×ÐÁÄÅÎÉÅ Ó ÎÉÚÁ ÄÁÄÅÎ ÚÁ ÔßÒÓÅÎÅ -óìåä ÔÅËÕÝÏÔÏ ÍÑÓÔÏ ÎÁ ËÕÒÓÏÒÁ. áËÏ ÉÓËÁÔÅ ÄÁ ÔßÒÓÉÔÅ ÎÅÝÏ ÐÏ-ÒÁÎÎÏ -ÏÔ ÔÅËÓÔÁ, ×ÍÅÓÔÏ ÔÏ×Á ×ß×ÅÄÅÔÅ C-r. ÷ÓÉÞËÏ, ËÏÅÔÏ ËÁÚÁÈÍÅ ÚÁ C-s, -×ÁÖÉ É ÚÁ C-r, ÏÓ×ÅÎ ÞÅ ÐÏÓÏËÁÔÁ ÎÁ ÔßÒÓÅÎÅ Å ÏÂßÒÎÁÔÁ. - - -* íîïöåóô÷ï ðòïúïòãé ----------------- - -åÄÎÁ ÏÔ ÐÒÉ×ÌÅËÁÔÅÌÎÉÔÅ ÓÐÏÓÏÂÎÏÓÔÉ ÎÁ åÍÁËÓ Å ÔÁÚÉ, ÞÅ ÍÏÖÅ ÄÁ -ÇÌÅÄÁÔÅ ÐÏ×ÅÞÅ ÏÔ ÅÄÉÎ ÐÒÏÚÏÒÅà ÎÁ ÅËÒÁÎÁ × ÄÁÄÅÎ ÍÏÍÅÎÔ ÏÔ ×ÒÅÍÅ. - ->> ðÒÉÄ×ÉÖÅÔÅ ËÕÒÓÏÒÁ ÄÏ ÔÏÚÉ ÒÅÄ É ×ß×ÅÄÅÔÅ C-u 0 C-l (ÔÏ×Á Å - CONTROL-L, ÎÅ CONTROL-1). - ->> óÅÇÁ ×ß×ÅÄÅÔÅ C-x 2, ËÏÅÔÏ ÝÅ ÒÁÚÄÅÌÉ ÅËÒÁÎÁ ÎÁ Ä×Á ÏÔÄÅÌÎÉ - ÐÒÏÚÏÒÅÃÁ. ä×ÁÔÁ ÐÒÏÚÏÒÅÃÁ ÐÏËÁÚ×ÁÔ ÔÏ×Á ×ß×ÅÄÅÎÉÅ. ëÕÒÓÏÒßÔ - ÏÓÔÁ×Á ÎÁ ÐÏ-ÇÏÒÎÉÑ ÐÒÏÚÏÒÅÃ. - ->> ÷ß×ÅÄÅÔÅ C-M-v ÚÁ ÄÁ ÓËÒÏÌÉÒÁÔÅ ÄÏÌÎÉÑ ÐÒÏÚÏÒÅÃ. (áËÏ ÎÑÍÁÔÅ - ÉÓÔÉÎÓËÉ ËÌÁ×ÉÛ META, ×ß×ÅÄÅÔÅ ESC C-v.) - ->> ÷ß×ÅÄÅÔÅ C-x o ("o" ÏÔ "other" -- "ÄÒÕÇ") ÚÁ ÄÁ ÐÒÉÄ×ÉÖÉÔÅ ËÕÒÓÏÒÁ - × ÄÏÌÎÉÑ ÐÒÏÚÏÒÅÃ. ->> éÚÐÏÌÚ×ÁÊÔÅ C-v É M-v × ÄÏÌÎÉÑ ÐÒÏÚÏÒÅà ÚÁ ÄÁ ÇÏ ÓËÒÏÌÉÒÁÔÅ. - ðÒÏÄßÌÖÅÔÅ ÞÅÔÅÎÅÔÏ ÎÁ ÔÅÚÉ ÎÁÓÏËÉ ÏÔ ×ß×ÅÄÅÎÉÔÅÏ × ÇÏÒÎÉÑ - ÐÒÏÚÏÒÅÃ. - ->> ÷ß×ÅÄÅÔÅ C-x o ÏÔÎÏ×Ï ÚÁ ÄÁ ÐÒÉÄ×ÉÖÉÔÅ ËÕÒÓÏÒÁ ÏÔÎÏ×Ï × ÇÏÒÎÉÑ - ÐÒÏÚÏÒÅÃ. ëÕÒÓÏÒßÔ × ÇÏÒÎÉÑ ÐÒÏÚÏÒÅà ŠÔÏÞÎÏ ÔÁÍ, ËßÄÅÔÏ Å ÂÉÌ - ÐÒÅÄÉ. - -íÏÖÅ ÄÁ ÐÒÏÄßÌÖÉÔÅ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ C-x o ÚÁ ÄÁ ÐÒÅ×ËÌÀÞ×ÁÔÅ ÍÅÖÄÕ -ÐÒÏÚÏÒÃÉÔÅ. ÷ÓÅËÉ ÐÒÏÚÏÒÅà ÉÍÁ ÓÏÂÓÔ×ÅÎÏ ÍÑÓÔÏ ÎÁ ËÕÒÓÏÒÁ, ÎÏ ÓÁÍÏ -ÅÄÉÎ ÐÒÏÚÏÒÅà ÐÏËÁÚ×Á ËÕÒÓÏÒ. ÷ÓÉÞËÉ ÏÂÉËÎÏ×ÅÎÉ ËÏÍÁÎÄÉ ÚÁ -ÒÅÄÁËÔÉÒÁÎÅ ÓÅ ÐÒÉÌÁÇÁÔ × ÐÒÏÚÏÒÅÃÁ, × ËÏÊÔÏ Å ËÕÒÓÏÒßÔ. îÉÅ ÎÁÒÉÞÁÍÅ -ÔÏÚÉ ÐÒÏÚÏÒÅà "ÔÅËÕÝ ÐÒÏÚÏÒÅÃ". - -ëÏÍÁÎÄÁÔÁ C-M-v Å ÍÎÏÇÏ ÐÏÌÅÚÎÁ, ËÏÇÁÔÏ ÒÅÄÁËÔÉÒÁÔÅ ÔÅËÓÔ × ÅÄÉÎ -ÐÒÏÚÏÒÅÃ É ÉÚÐÏÌÚ×ÁÔÅ ÄÒÕÇÉÑ ÐÒÏÚÏÒÅà ÐÒÏÓÔÏ ÚÁ ÓÐÒÁ×ËÁ. íÏÖÅ ÄÁ -ÄßÒÖÉÔÅ ËÕÒÓÏÒÁ ×ÉÎÁÇÉ × ÐÒÏÚÏÒÅÃÁ, ËßÄÅÔÏ ÒÅÄÁËÔÉÒÁÔÅ, É ÄÁ -ÎÁÐÒÅÄ×ÁÔÅ ÐÏÓÌÅÄÏ×ÁÔÅÌÎÏ × ÄÒÕÇÉÑ ÐÒÏÚÏÒÅà ÞÒÅÚ C-M-v. - -C-M-v Å ÐÒÉÍÅÒ ÚÁ ÚÎÁË CONTROL-META. áËÏ ÉÍÁÔÅ ÉÓÔÉÎÓËÉ ËÌÁ×ÉÛ META, -ÍÏÖÅ ÄÁ ×ß×ÅÖÄÁÔÅ C-M-v ÚÁÄßÒÖÁÊËÉ ÅÄÎÏ×ÒÅÍÅÎÎÏ CONTROL É META ÄÏËÁÔÏ -×ß×ÅÖÄÁÔÅ v. îÑÍÁ ÚÎÁÞÅÎÉÅ ÄÁÌÉ CONTROL ÉÌÉ META "Å ÎÁÔÉÓÎÁÔ ÐßÒ×É", -ÚÁÝÏÔÏ É Ä×ÁÔÁ ËÌÁ×ÉÛÁ ÄÅÊÓÔ×ÁÔ ÍÏÄÉÆÉÃÉÒÁÊËÉ ÚÎÁËÁ, ËÏÊÔÏ ÓÔÅ ×ß×ÅÌÉ. - -áËÏ ÎÑÍÁÔÅ ÉÓÔÉÎÓËÉ ËÌÁ×ÉÛ META, É ÉÚÐÏÌÚ×ÁÔÅ ESC ×ÍÅÓÔÏ ÔÏ×Á, ÒÅÄßÔ -ÉÍÁ ÚÎÁÞÅÎÉÅ: ÔÒÑÂ×Á ÄÁ ×ß×ÅÖÄÁÔÅ ESC ÐÏÓÌÅÄ×ÁÎ ÏÔ CONTROL-v, ÚÁÝÏÔÏ -CONTROL-ESC v ÎÑÍÁ ÄÁ ÒÁÂÏÔÉ. ôÏ×Á Å ÔÁËÁ, ÚÁÝÏÔÏ ESC Å ÓÏÂÓÔ×ÅÎ -ÚÎÁË, Á ÎÅ ÍÏÄÉÆÉËÁÔÏÒ. - ->> ÷ß×ÅÄÅÔÅ C-x 1 (× ÇÏÒÎÉÑ ÐÒÏÚÏÒÅÃ) ÚÁ ÄÁ ÍÁÈÎÅÔÅ ÄÏÌÎÉÑ ÐÒÏÚÏÒÅÃ. - -(áËÏ ÓÔÅ ×ß×ÅÌÉ C-x 1 × ÄÏÌÎÉÑ ÐÒÏÚÏÒÅÃ, ÔÏ×Á ÝÅ ÍÁÈÎÅ ÇÏÒÎÉÑ. -íÉÓÌÅÔÅ ÚÁ ÔÁÚÉ ËÏÍÁÎÄÁ ËÁÔÏ "úÁÄÒßÖ ÔÏÞÎÏ ÅÄÉÎ ÐÒÏÚÏÒÅà -- ÔÏÚÉ, × -ËÏÊÔÏ ÓßÍ ÓÅÇÁ".) - -îÑÍÁ ÎÕÖÄÁ ÄÁ ÉÚ×ÅÖÄÁÔÅ ÅÄÉÎ É ÓßÝÉ ÂÕÆÅÒ × Ä×ÁÔÁ ÐÒÏÚÏÒÅÃÁ. áËÏ -ÉÚÐÏÌÚ×ÁÔÅ C-x C-f ÚÁ ÄÁ ÎÁÍÅÒÉÔÅ ÆÁÊÌ × ÅÄÉÎÉÑ ÐÒÏÚÏÒÅÃ, ÄÒÕÇÉÑÔ -ÐÒÏÚÏÒÅà ÎÅ ÓÅ ÐÒÏÍÅÎÑ. íÏÖÅ ÄÁ ÎÁÍÉÒÁÔÅ ÆÁÊÌ ÏÔÄÅÌÎÏ ×ß× ×ÓÅËÉ ÆÁÊÌ. - -åÔÏ ÏÝÅ ÅÄÉÎ ÎÁÞÉÎ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ Ä×Á ÐÒÏÚÏÒÅÃÁ ÚÁ ÄÁ ÐÏËÁÖÅÔÅ Ä×Å -ÒÁÚÌÉÞÎÉ ÎÅÝÁ: - ->> ÷ß×ÅÄÅÔÅ C-x 4 C-f ÐÏÓÌÅÄ×ÁÎÏ ÏÔ ÉÍÅÔÏ ÎÁ ÅÄÉÎ ÏÔ ×ÁÛÉÔÅ ÆÁÊÌÏ×Å. - úÁ×ßÒÛÅÔÅ Ó . ÷ÉÖÔÅ ËÁË ÔÏÚÉ ÆÁÊÌ ÓÅ ÐÏÑ×Ñ×Á × ÄÏÌÎÉÑ - ÐÒÏÚÏÒÅÃ. ëÕÒÓÏÒßÔ ÓßÝÏ ÏÔÉ×Á ÔÁÍ. - ->> ÷ß×ÅÄÅÔÅ C-x o, ÚÁ ÄÁ ÓÅ ×ßÒÎÅÔÅ × ÇÏÒÎÉÑ ÐÒÏÚÏÒÅÃ, É C-x 1 ÚÁ ÄÁ - ÉÚÔÒÉÅÔÅ ÄÏÌÎÉÑ. - - -* ÷ìïöåîé îé÷á îá òåäáëôéòáîå --------------------------------- - -ðÏÎÑËÏÇÁ ÝÅ ÓÅ ÏÚÏ×ÅÔÅ × ÔÏ×Á, ËÏÅÔÏ ÓÅ ÎÁÒÉÞÁ "×ÌÏÖÅÎÏ ÎÉ×Ï ÎÁ -ÒÅÄÁËÔÉÒÁÎÅ" (recursive editing level). ôÏ×Á ÓÅ ÏÔÂÅÌÑÚ×Á ÏÔ -Ë×ÁÄÒÁÔÎÉ ÓËÏÂÉ × ÒÅÄÁ ÎÁ ÒÅÖÉÍÁ, ËÏÉÔÏ ÏÇÒÁÖÄÁÔ ÓËÏÂÉÔÅ ÏËÏÌÏ ÉÍÅÔÏ -ÎÁ ÇÌÁ×ÎÉÑ ÒÅÖÉÍ. îÁÐÒÉÍÅÒ, ÍÏÖÅ ÄÁ ×ÉÄÉÔÅ [(Fundamental)] ×ÍÅÓÔÏ +Emacs ìîæå äà èçâúðøâà òúðñåíèÿ íà íèçîâå (òîâà ñà ïîñëåäîâàòåëíîñòè +îò çíàöè èëè äóìè) èëè íàïðåä â òåêñòà, èëè íàçàä â íåãî. Òúðñåíåòî +íà íèç å ïðèäâèæâàùà êóðñîðà êîìàíäà; òÿ ïðåìåñòâà êóðñîðà íà +ñëåäâàùîòî ìÿñòî, êúäåòî ñå ñðåùà íèçúò. + +Êîìàíäàòà çà òúðñåíå íà Emacs ñå ðàçëè÷àâà îò êîìàíäàòà çà òúðñåíå íà +ïîâå÷åòî ðåäàêòîðè ïî òîâà, ÷å òÿ å "ïîñòúïêîâà". Òîâà îçíà÷àâà, ÷å +òúðñåíåòî ñå èçâúðøâà îùå äîêàòî âúâåæäàòå òåêñòà, êîéòî òúðñèòå. + +Êîìàíäàòà çà çàïî÷âàíå íà òúðñåíå å C-s çà òúðñåíå íàïðåä, è C-r çà +òúðñåíå íàçàä. ÍÎ ÏÎ×ÀÊÀÉÒÅ! Íå ãè ïðîáâàéòå ñåãà. + +Êîãàòî âúâåäåòå C-s, ùå çàáåëåæèòå, ÷å íèçúò "I-search" ñå ïîÿâÿâà +êàòî ïîäñêàçêà â åõî îáëàñòòà. Òîâà âè êàçâà, ÷å Emacs å â òîâà, +êîåòî ñå íàðè÷à ïîñòúïêîâî òúðñåíå, ÷àêàéêè âè äà âúâåæäàòå òåêñòà, +êîéòî èñêàòå äà òúðñèòå. ïðèêëþ÷âà òúðñåíåòî. + +>> Ñåãà âúâåäåòå C-s, çà äà çàïî÷íåòå òúðñåíåòî. ÁÀÂÍÎ, áóêâà ïî + áóêâà, âúâåäåòå äóìàòà "òúðñåíå", èç÷àêâàéêè ñëåä âúâåæäàíåòî íà + âñåêè çíàê, çà äà ìîæå äà çàáåëåæèòå êàêâî ñòàâà ñ êóðñîðà. Ñåãà + èçâúðøèõòå òúðñåíå íà "òúðñåíå" âåäíúæ. +>> Âúâåäåòå îòíîâî C-s, çà äà òúðñèòå äðóãî ñúâïàäåíèå ñ "òúðñåíå". +>> Ñåãà âúâåäåòå òðè ïúòè è âèæòå êàê ñå ïðèäâèæâà êóðñîðà. +>> Âúâåäåòå , çà äà ïðåêðàòèòå òúðñåíåòî. + +Çàáåëÿçàõòå ëè êàêâî ñòàíà? Emacs, êîãàòî òúðñè ïîñòúïêîâî, ñå îïèòâà +äà íàìåðè ñëåäâàùîòî ñúâïàäåíèå íà íèçà, êîéòî ñå âúâåæäà. Çà äà +îòèäåòå íà ñëåäâàùîòî ñúâïàäåíèå íà "òúðñíå", ïðîñòî îòíîâî âúâåäåòå +C-s. Àêî íÿìà òàêîâà ñúâïàäåíèå, Emacs áèáèïâà è âè êàçâà, ÷å +òúðñåíåòî å "ïðîâàëåíî" (failing). C-g ñúùî ïðåêðàòÿâà òúðñåíåòî. + +ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-s ùå çàìðàçè åêðàíà è âèå +íÿìà äà ìîæå äà âèäèòå ïîâå÷å ðåàêöèÿ îò Emacs. Òîâà ïîêàçâà, ÷å +"ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðå÷åíà "óïðàâëåíèå íà ïîòîêà" +(flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà äî Emacs. Çà äà +ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî +âêëþ÷âàíå íà ïîñòúïêîâîòî òúðñåíå" (Spontaneous Entry to Incremental +Search) â ðúêîâîäñòâîòî íà Emacs çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè +"ñïîñîáíîñò". + +Àêî ñòå â ñðåäàòà íà ïîñòúïêîâî òúðñåíå è âúâåäåòå , ùå +çàáåëåæèòå, ÷å ïîñëåäíèÿò çíàê â òúðñåíèÿ íèç ñå èçòðèâà è òúðñåíåòî +ñå âðúùà êúì ïîñëåäíîòî ìÿñòî íà òúðñåíå. Íàïðèìåð, ïðåäïîëîæåòå, ÷å +ñòå âúâåëè "ò", çà äà íàìåðèòå ïúðâîòî ñúâïàäåíèå ñ "ò". Ñåãà, àêî +âúâåäåòå "ú", êóðñîðúò ùå ñå ïðèäâèæè êúì ïúðâîòî ñúâïàäåíèå íà "òú". +Ñåãà âúâåäåòå . Òîâà èçòðèâà çíàêà "ú" îò íèçà çà òúðñåíå è +êóðñîðúò ñå ïðåìåñòâà íàçàä, äî ïúðâîòî ñúâïàäåíèå ñ "ò". + +Àêî ñòå â ñðåäàòà íà òúðñåíå è âúâåäåòå êîíòðîëåí èëè ìåòà çíàê (ñ +íÿêîëêî èçêëþ÷åíèÿ -- çíàöèòå, êîèòî ñà ñïåöèàëíè ïî âðåìå íà òúðñåíå, +êàòî C-s è C-r), òúðñåíåòî ñå ïðåêðàòÿâà. + +C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà +òúðñåíå ÑËÅÄ òåêóùîòî ìÿñòî íà êóðñîðà. Àêî èñêàòå äà òúðñèòå íåùî +ïî-ðàííî îò òåêñòà, âìåñòî òîâà âúâåäåòå C-r. Âñè÷êî, êîåòî êàçàõìå +çà C-s, âàæè è çà C-r, îñâåí ÷å ïîñîêàòà íà òúðñåíå å îáúðíàòà. + + +* ÌÍÎÆÅÑÒÂÎ ÏÐÎÇÎÐÖÈ +-------------------- + +Åäíà îò ïðèâëåêàòåëíèòå ñïîñîáíîñòè íà Emacs å òàçè, ÷å ìîæå äà +ãëåäàòå ïîâå÷å îò åäèí ïðîçîðåö íà åêðàíà â äàäåí ìîìåíò îò âðåìå. + +>> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-u 0 C-l (òîâà å + CONTROL-L, íå CONTROL-1). + +>> Ñåãà âúâåäåòå C-x 2, êîåòî ùå ðàçäåëè åêðàíà íà äâà îòäåëíè + ïðîçîðåöà. Äâàòà ïðîçîðåöà ïîêàçâàò òîâà âúâåäåíèå. Êóðñîðúò + îñòàâà íà ïî-ãîðíèÿ ïðîçîðåö. + +>> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå äîëíèÿ ïðîçîðåö. (Àêî íÿìàòå + èñòèíñêè êëàâèø META, âúâåäåòå C-v.) + +>> Âúâåäåòå C-x o ("o" îò "other" -- "äðóã"), çà äà ïðèäâèæèòå + êóðñîðà â äîëíèÿ ïðîçîðåö. +>> Èçïîëçâàéòå C-v è M-v â äîëíèÿ ïðîçîðåö, çà äà ãî ñêðîëèðàòå. + Ïðîäúëæåòå ÷åòåíåòî íà òåçè íàñîêè îò âúâåäåíèåòî â ãîðíèÿ + ïðîçîðåö. + +>> Âúâåäåòå C-x o îòíîâî, çà äà ïðèäâèæèòå êóðñîðà îòíîâî â ãîðíèÿ + ïðîçîðåö. Êóðñîðúò â ãîðíèÿ ïðîçîðåö å òî÷íî òàì, êúäåòî å áèë + ïðåäè. + +Ìîæå äà ïðîäúëæèòå äà èçïîëçâàòå C-x o, çà äà ïðåâêëþ÷âàòå ìåæäó +ïðîçîðöèòå. Âñåêè ïðîçîðåö èìà ñîáñòâåíî ìÿñòî íà êóðñîðà, íî ñàìî +åäèí ïðîçîðåö ïîêàçâà êóðñîð. Âñè÷êè îáèêíîâåíè êîìàíäè çà +ðåäàêòèðàíå ñå ïðèëàãàò â ïðîçîðåöà, â êîéòî å êóðñîðúò. Íèå íàðè÷àìå +òîçè ïðîçîðåö "òåêóù ïðîçîðåö". + +Êîìàíäàòà C-M-v å ìíîãî ïîëåçíà, êîãàòî ðåäàêòèðàòå òåêñò â åäèí +ïðîçîðåö è èçïîëçâàòå äðóãèÿ ïðîçîðåö ïðîñòî çà ñïðàâêà. Ìîæå äà +äúðæèòå êóðñîðà âèíàãè â ïðîçîðåöà, êúäåòî ðåäàêòèðàòå, è äà +íàïðåäâàòå ïîñëåäîâàòåëíî â äðóãèÿ ïðîçîðåö ÷ðåç C-M-v. + +C-M-v å ïðèìåð çà çíàê CONTROL-META. Àêî èìàòå èñòèíñêè êëàâèø META, +ìîæå äà âúâåæäàòå C-M-v, çàäúðæàéêè åäíîâðåìåííî CONTROL è META, +äîêàòî âúâåæäàòå v. Íÿìà çíà÷åíèå äàëè CONTROL èëè META "å íàòèñíàò +ïúðâè", çàùîòî è äâàòà êëàâèøà äåéñòâàò, ìîäèôèöèðàéêè çíàêà, êîéòî +ñòå âúâåëè. + +Àêî íÿìàòå èñòèíñêè êëàâèø META è èçïîëçâàòå âìåñòî òîâà, ðåäúò +èìà çíà÷åíèå: òðÿáâà äà âúâåæäàòå , ïîñëåäâàí îò CONTROL-v, +çàùîòî CONTROL- v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî å +ñîáñòâåí çíàê, à íå ìîäèôèêàòîð. + +>> Âúâåäåòå C-x 1 (â ãîðíèÿ ïðîçîðåö), çà äà ìàõíåòå äîëíèÿ ïðîçîðåö. + +(Àêî ñòå âúâåëè C-x 1 â äîëíèÿ ïðîçîðåö, òîâà ùå ìàõíå ãîðíèÿ. +Ìèñëåòå çà òàçè êîìàíäà êàòî "Çàäðúæ òî÷íî åäèí ïðîçîðåö -- òîçè, â +êîéòî ñúì ñåãà".) + +Íÿìà íóæäà äà èçâåæäàòå åäèí è ñúùè áóôåð â äâàòà ïðîçîðåöà. Àêî +èçïîëçâàòå C-x C-f, çà äà íàìåðèòå ôàéë â åäèíèÿ ïðîçîðåö, äðóãèÿò +ïðîçîðåö íå ñå ïðîìåíÿ. Ìîæå äà íàìèðàòå ôàéë âúâ âñåêè ïðîçîðåö, +íåçàâèñèìî îò òîâà êàêâî èìà â äðóãèòå ïðîçîðöè. + +Åòî îùå åäèí íà÷èí äà èçïîëçâàòå äâà ïðîçîðåöà, çà äà ïîêàæåòå äâå +ðàçëè÷íè íåùà: + +>> Âúâåäåòå C-x 4 C-f, ïîñëåäâàíî îò èìåòî íà åäèí îò âàøèòå ôàéëîâå. + Çàâúðøåòå ñ . Âèæòå êàê òîçè ôàéë ñå ïîÿâÿâà â äîëíèÿ + ïðîçîðåö. Êóðñîðúò ñúùî îòèâà òàì. + +>> Âúâåäåòå C-x o, çà äà ñå âúðíåòå â ãîðíèÿ ïðîçîðåö, è C-x 1, çà äà + èçòðèåòå äîëíèÿ. + + +* ÂËÎÆÅÍÈ ÍÈÂÀ ÍÀ ÐÅÄÀÊÒÈÐÀÍÅ +----------------------------- + +Ïîíÿêîãà ùå ñå îçîâåòå â òîâà, êîåòî ñå íàðè÷à "âëîæåíî íèâî íà +ðåäàêòèðàíå" (recursive editing level). Òîâà ñå îòáåëÿçâà îò +êâàäðàòíè ñêîáè â ðåäà íà ðåæèìà, êîèòî îãðàæäàò ñêîáèòå îêîëî èìåòî +íà ãëàâíèÿ ðåæèì. Íàïðèìåð, ìîæå äà âèäèòå [(Fundamental)] âìåñòî (Fundamental). -úÁ ÄÁ ÓÅ ÍÁÈÎÅÔÅ ÏÔ ×ÌÏÖÅÎÏÔÏ ÎÉ×Ï ÎÁ ÒÅÄÁËÔÉÒÁÎÅ, ×ß×ÅÄÅÔÅ ESC ESC -ESC. ôÏ×Á Å ÏÂÝÁ ËÏÍÁÎÄÁ ÚÁ "ÉÚÌÉÚÁÎÅ". íÏÖÅ É ÄÁ Ñ ÉÚÐÏÌÚ×ÁÔÅ ÚÁ -ÍÁÈÁÎÅ ÎÁ ÄÏÐßÌÎÉÔÅÌÎÉ ÐÒÏÚÏÒÃÉ, É ÍÁÈÁÎÅ ÏÔ ÍÉÎÉÂÕÆÅÒÁ. +Çà äà ñå ìàõíåòå îò âëîæåíîòî íèâî íà ðåäàêòèðàíå, âúâåäåòå + . Òîâà å îáùà êîìàíäà çà "èçëèçàíå". Ìîæå è äà ÿ +èçïîëçâàòå çà ìàõàíå (ñêðèâàíå) íà äîïúëíèòåëíè ïðîçîðöè, êàêòî è çà +äà ñå ìàõíåòå îò ìèíèáóôåðà. ->> ÷ß×ÅÄÅÔÅ M-x ÚÁ ÄÁ ×ÌÅÚÅÔÅ × ÍÉÎÉÂÕÆÅÒ; ÔÏÇÁ×Á ×ß×ÅÄÅÔÅ ESC ESC ESC - ÚÁ ÄÁ ÉÚÌÅÚÅÔÅ. +>> Âúâåäåòå M-x, çà äà âëåçåòå â ìèíèáóôåð; òîãàâà âúâåäåòå + , çà äà èçëåçåòå. -îÅ ÍÏÖÅÔÅ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ C-g ÚÁ ÄÁ ÉÚÌÅÚÅÔÅ ÏÔ ×ÌÏÖÅÎÏ ÎÉ×Ï ÎÁ -ÒÅÄÁËÔÉÒÁÎÅ. ôÏ×Á Å ÔÁËÁ, ÚÁÝÏÔÏ C-g ÓÅ ÉÚÐÏÌÚ×Á ÚÁ ÐÒÅËÒÁÔÑ×ÁÎÅ ÎÁ -ËÏÍÁÎÄÉ É ÁÒÇÕÍÅÎÔÉ ÷ÿôòå ×ß× ×ÌÏÖÅÎÏ ÎÉ×Ï ÎÁ ÒÅÄÁËÔÉÒÁÎÅ. +Íå ìîæåòå äà èçïîëçâàòå C-g, çà äà èçëåçåòå îò âëîæåíî íèâî íà +ðåäàêòèðàíå. Òîâà å òàêà, çàùîòî C-g ñå èçïîëçâà çà ïðåêðàòÿâàíå íà +êîìàíäè è àðãóìåíòè ÂÚÒÐÅ âúâ âëîæåíî íèâî íà ðåäàêòèðàíå. -* ðïìõþá÷áîå îá äïðÿìîéôåìîá ðïíïý +* ÏÎËÓ×ÀÂÀÍÅ ÍÀ ÄÎÏÚËÍÈÒÅËÍÀ ÏÎÌÎÙ ---------------------------------- -÷ ÔÏ×Á ×ß×ÅÄÅÎÉÅ ÓÅ ÏÐÉÔÁÈÍÅ ÄÁ ÏÓÉÇÕÒÉÍ ÄÏÓÔÁÔßÞÎÏ ÉÎÆÏÒÍÁÃÉÑ, ÚÁ ÄÁ -ÚÁÐÏÞÎÅÔÅ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ åÍÁËÓ. éÍÁ ÔÏÌËÏ×Á ÍÎÏÇÏ ÏÝÅ × åÍÁËÓ, ÞÅ ÎÅ Å -×ßÚÍÏÖÎÏ ÔÏ ÄÁ ÂßÄÅ ÏÂÑÓÎÅÎÏ ×ÓÉÞËÏÔÏ ÔÕË. ïÂÁÞÅ ÍÏÖÅ ÄÁ ÐÏÉÓËÁÔÅ ÄÁ -ÎÁÕÞÉÔÅ ÐÏ×ÅÞÅ ÚÁ åÍÁËÓ, ÔßÊ ËÁÔÏ ÔÏÊ ÐÒÉÔÅÖÁ×Á ÏÝÅ ÍÎÏÇÏ ÐÏÌÅÚÎÉ -ÓÐÏÓÏÂÎÏÓÔÉ. åÍÁËÓ ÉÍÁ ËÏÍÁÎÄÉ ÚÁ ÞÅÔÅÎÅ ÎÁ ÄÏËÕÍÅÎÔÁÃÉÑÔÁ ÎÁ åÍÁËÓ -ËÏÍÁÎÄÉÔÅ. ôÅÚÉ "ÐÏÍÏÝÎÉ" ËÏÍÁÎÄÉ ×ÓÉÞËÉ ÚÁÐÏÞ×ÁÔ ÓßÓ ÚÎÁËÁ -CONTROL-h, ËÏÊÔÏ ÓÅ ÎÁÒÉÞÁ "ÚÎÁËßÔ ÚÁ ÐÏÍÏÝ". - -úÁ ÄÁ ÉÚÐÏÌÚ×ÁÔÅ ÓÐÏÓÏÂÎÏÓÔÉÔÅ ÎÁ ÔÁÚÉ ÐÏÍÏÝ, ×ß×ÅÄÅÔÅ ÚÎÁËÁ C-h, É -ÓÌÅÄ ÔÏ×Á ÚÎÁËÁ, ËÁÚ×ÁÝ ËÁËß× ×ÉÄ ÐÏÍÏÝ ÉÓËÁÔÅ. áËÏ îáéóôéîá ÓÔÅ ÓÅ -ÉÚÇÕÂÉÌÉ ×ß×ÅÄÅÔÅ C-h ? É åÍÁËÓ ÝÅ ×É ËÁÖÅ Ó ËÁË×Ï ÍÏÖÅ ÄÁ ×É -ÐÏÍÏÇÎÅ. áËÏ ÓÔÅ ×ß×ÅÌÉ C-h É ÒÅÛÉÔÅ, ÞÅ ÎÅ ÓÅ ÎÕÖÄÁÅÔÅ ÏÔ ÐÏÍÏÝ, -ÐÒÏÓÔÏ ×ß×ÅÄÅÔÅ C-g ÚÁ ÄÁ Ñ ÐÒÅËÒÁÔÉÔÅ. - -(îÑËÏÉ ËÏÍÐÀÔÒÉ ÐÒÏÍÅÎÑÔ ÚÎÁÞÅÎÉÅÔÏ ÎÁ ÚÎÁËÁ C-h. ôÅ ÎÁÉÓÔÉÎÁ ÎÅ -ÔÒÑÂ×Á ÄÁ ÐÒÁ×ÑÔ ÔÏ×Á ËÁÔÏ ÓÌÑÐÁ ÍÑÒËÁ ÚÁ ×ÓÉÞËÉ ÐÏÔÒÅÂÉÔÅÌÉ, ÔÁËÁ ÞÅ -ÉÍÁÔÅ ÏÓÎÏ×ÁÎÉÅ ÄÁ ÓÅ ÏÐÌÁÞÅÔÅ ÎÁ ÓÉÓÔÅÍÎÉÑ ÁÄÍÉÎÉÓÔÒÁÔÏÒ. íÅÖÄÕ -ÄÒÕÇÏÔÏ, ÁËÏ C-h ÎÅ ÉÚ×ÅÖÄÁ ÓßÏÂÝÅÎÉÅ ÚÁ ÐÏÍÏÝ × ÄßÎÏÔÏ ÎÁ ÅËÒÁÎÁ, -ÏÐÉÔÁÊÔÅ ËÌÁ×ÉÛÁ F1 ÉÌÉ M-x help ×ÍÅÓÔÏ ÔÏ×Á.) - -îÁÊ-ÏÓÎÏ×ÎÁÔÁ ÐÏÍÏÝÎÁ ÓÐÏÓÏÂÎÏÓÔ Å C-h c. ÷ß×ÅÄÅÔÅ C-h, ÚÎÁËÁ c, É -ËÏÍÁÎÄÅÎ ÚÎÁË ÉÌÉ ÐÏÓÌÅÄÏ×ÁÔÅÌÎÏÓÔ ÏÔ ÚÎÁÃÉ ÏÂÒÁÚÕ×ÁÝÁ ËÏÍÁÎÄÁ; ÔÏÇÁ×Á -åÍÁËÓ ÝÅ ÉÚ×ÅÄÅ ÍÎÏÇÏ ËÒÁÔËÏ ÏÐÉÓÁÎÉÅ ÎÁ ËÏÍÁÎÄÁÔÁ. + òîâà âúâåäåíèå ñå îïèòàõìå äà îñèãóðèì äîñòàòú÷íî èíôîðìàöèÿ, çà äà +çàïî÷íåòå äà èçïîëçâàòå Emacs. Èìà òîëêîâà ìíîãî îùå â Emacs, ÷å íå å +âúçìîæíî òî äà áúäå îáÿñíåíî âñè÷êîòî òóê. Îáà÷å ìîæå äà ïîèñêàòå äà +íàó÷èòå ïîâå÷å çà Emacs, òúé êàòî òîé ïðèòåæàâà îùå ìíîãî ïîëåçíè +ñïîñîáíîñòè. Emacs èìà êîìàíäè çà ÷åòåíå íà äîêóìåíòàöèÿòà íà Emacs +êîìàíäèòå. Òåçè "ïîìîùíè" êîìàíäè âñè÷êè çàïî÷âàò ñúñ çíàêà +CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". + +Çà äà èçïîëçâàòå âúçìîæíîñòèòå íà òàçè ïîìîù, âúâåäåòå çíàêà C-h è +ñëåä òîâà çíàêà, êàçâàù êàêúâ âèä ïîìîù èñêàòå. Àêî ÍÀÈÑÒÈÍÀ ñòå ñå +èçãóáèëè, âúâåäåòå C-h ? è Emacs ùå âè êàæå ñ êàêâî ìîæå äà âè +ïîìîãíå. Àêî ñòå âúâåëè C-h è ðåøèòå, ÷å íå ñå íóæäàåòå îò ïîìîù, +ïðîñòî âúâåäåòå C-g, çà äà ÿ ïðåêðàòèòå. + +(Íÿêîè êîìïþòðè ïðîìåíÿò çíà÷åíèåòî íà çíàêà C-h. Òå íàèñòèíà íå +òðÿáâà äà ïðàâÿò òîâà êàòî ñëÿïà ìÿðêà çà âñè÷êè ïîòðåáèòåëè, òàêà ÷å +èìàòå îñíîâàíèå äà ñå îïëà÷åòå íà ñèñòåìíèÿ àäìèíèñòðàòîð. Ìåæäó +äðóãîòî, àêî C-h íå èçâåæäà ñúîáùåíèå çà ïîìîù â äúíîòî íà åêðàíà, +îïèòàéòå êëàâèøà F1 èëè M-x help âìåñòî òîâà.) + +Íàé-îñíîâíîòî ïîìîùíî ñðåäñòâî å C-h c. Âúâåäåòå C-h, çíàêà c è +êîìàíäåí çíàê èëè ïîñëåäîâàòåëíîñò îò çíàöè, îáðàçóâàùè êîìàíäà; +òîãàâà Emacs ùå èçâåäå ìíîãî êðàòêî îïèñàíèå íà êîìàíäàòà. >> Type C-h c C-p. - ôÏ×Á ÓßÏÂÝÅÎÉÅ ÔÒÑÂ×Á ÄÁ ÉÚ×ÅÄÅ ÎÅÝÏ ËÁÔÏ + +Èçâåäåíîòî îïèñàíèå òðÿáâà äà áúäå íåùî êàòî C-p runs the command previous-line - (C-p ÉÚÐßÌÎÑ×Á ËÏÍÁÎÄÁÔÁ ÐÒÅÄÉÛÅÎ-ÒÅÄ) + (C-p èçïúëíÿâà êîìàíäàòà ïðåäèøåí-ðåä) -ôÏ×Á ×É ËÁÚ×Á "ÉÍÅÔÏ ÎÁ ÆÕÎËÃÉÑÔÁ". éÍÅÎÁÔÁ ÎÁ ÆÕÎËÃÉÉÔÅ ÓÅ ÉÚÐÏÌÚ×ÁÔ -ÎÁÊ-×ÅÞÅ ÚÁ ÎÁÓÔÒÏÊ×ÁÎÅ É ÒÁÚÛÉÒÑ×ÁÎÅ ÎÁ åÍÁËÓ. îÏ ÔßÊ ËÁÔÏ ÉÍÅÎÁÔÁ -ÎÁ ÆÕÎËÃÉÉÔÅ ÓÁ ÉÚÂÒÁÎÉ ÔÁËÁ, ÞÅ ÄÁ ÐÏËÁÚ×ÁÔ ËÁË×Ï ÐÒÁ×É ËÏÍÁÎÄÁÔÁ, ÔÅ -ÍÏÇÁÔ ÄÁ ÓÌÕÖÁÔ É ÚÁ ÍÎÏÇÏ ËÒÁÔËÁ ÄÏËÕÍÅÎÔÁÃÉÑ -- ÄÏÓÔÁÔßÞÎÁ ÚÁ ÄÁ ×É -ÐÒÉÐÏÍÎÉ ËÏÍÁÎÄÉ, ËÏÉÔÏ ×ÅÞÅ ÓÔÅ ÕÞÉÌÉ. +Òîâà âè êàçâà "èìåòî íà ôóíêöèÿòà". Èìåíàòà íà ôóíêöèèòå ñå èçïîëçâàò +íàé-âå÷å çà íàñòðîéâàíå è ðàçøèðÿâàíå íà Emacs. Íî òúé êàòî èìåíàòà +íà ôóíêöèèòå ñà èçáðàíè òàêà, ÷å äà ïîêàçâàò êàêâî ïðàâè êîìàíäàòà, òå +ìîãàò äà ñëóæàò è çà ìíîãî êðàòêà äîêóìåíòàöèÿ -- äîñòàòú÷íà, çà äà âè +ïðèïîìíè êîìàíäè, êîèòî âå÷å ñòå ó÷èëè. -íÎÏÇÏÚÎÁËÏ×É ËÏÍÁÎÄÉ, ËÁÔÏ C-x C-s É (ÁËÏ ÎÑÍÁÔÅ ËÌÁ×ÉÛ META ÉÌÉ EDIT -ÉÌÉ ALT) v ÓßÝÏ ÓÁ ÐÏÚ×ÏÌÅÎÉ ÓÌÅÄ C-h c. +Ìíîãîçíàêîâè êîìàíäè, êàòî C-x C-s è (àêî íÿìàòå êëàâèø META èëè EDIT +èëè ALT) v, ñúùî ñà ïîçâîëåíè ñëåä C-h c. -úÁ ÄÁ ÐÏÌÕÞÉÔÅ ÏÝÅ ÉÎÆÏÒÍÁÃÉÑ ÚÁ ËÏÍÁÎÄÁ, ÉÚÐÏÌÚ×ÁÊÔÅ C-h k ×ÍÅÓÔÏ C-h +Çà äà ïîëó÷èòå îùå èíôîðìàöèÿ çà êîìàíäà, èçïîëçâàéòå C-h k âìåñòî C-h c. ->> ÷ß×ÅÄÅÔÅ C-h k C-p. +>> Âúâåäåòå C-h k C-p. -ôÏ×Á ÉÚ×ÅÖÄÁ ÄÏËÕÍÅÎÔÁÃÉÑÔÁ ÎÁ ÆÕÎËÃÉÑÔÁ, ËÁËÔÏ É ÎÅÊÎÏÔÏ ÉÍÅ, × -ÏÔÄÅÌÅÎ åÍÁËÓ ÐÒÏÚÏÒÅÃ. ëÏÇÁÔÏ Ñ ÐÒÏÞÅÔÅÔÅ, ×ß×ÅÄÅÔÅ C-x 1 ÚÁ ÄÁ -ÍÁÈÎÅÔÅ ÐÏÍÏÝÎÉÑ ÔÅËÓÔ. îÅ Å ÎÕÖÎÏ ÄÁ ÐÒÁ×ÉÔÅ ÔÏ×Á ÔÏÞÎÏ ÓÅÇÁ. íÏÖÅ -ÄÁ ÒÅÄÁËÔÉÒÁÔÅ ÄÏËÁÔÏ ÓÅ ÏÂÒßÝÁÔÅ ËßÍ ÐÏÍÏÝÎÉÑ ÔÅËÓÔ ÚÁ ÓÐÒÁ×ËÁ, É -ÓÌÅÄ ÔÏ×Á ÄÁ ×ß×ÅÄÅÔÅ C-x 1. +Òîâà èçâåæäà äîêóìåíòàöèÿòà íà ôóíêöèÿòà, êàêòî è íåéíîòî èìå, â +îòäåëåí Emacs ïðîçîðåö. Êîãàòî ÿ ïðî÷åòåòå, âúâåäåòå C-x 1, çà äà +ìàõíåòå ïîìîùíèÿ òåêñò. Íå å íóæíî äà ïðàâèòå òîâà òî÷íî ñåãà. Ìîæå +äà ðåäàêòèðàòå, äîêàòî ñå îáðúùàòå êúì ïîìîùíèÿ òåêñò çà ñïðàâêà, è +ñëåä òîâà äà âúâåäåòå C-x 1. -åÔÏ ÏÝÅ ÎÑËÏÌËÏ ÐÏÌÅÚÎÉ C-h ×ßÚÍÏÖÎÏÓÔÉ: +Åòî îùå íÿêîëêî ïîëåçíè C-h âúçìîæíîñòè: - C-h f ïÐÉÓ×Á ÆÕÎËÃÉÑ. ôÒÑÂ×Á ÄÁ ×ß×ÅÄÅÔÅ ÉÍÅÔÏ ÎÁ - ÆÕÎËÃÉÑÔÁ. + C-h f Îïèñâà ôóíêöèÿ. Òðÿáâà äà âúâåäåòå èìåòî íà + ôóíêöèÿòà. ->> ïÐÉÔÁÊÔÅ Ó ×ß×ÅÖÄÁÎÅ ÎÁ C-h f previous-line. - ôÏ×Á ÉÚ×ÅÖÄÁ ÃÑÌÁÔÁ ÉÎÆÏÒÍÁÃÉÑ, ËÏÑÔÏ åÍÁËÓ ÚÎÁÅ ÚÁ ÆÕÎËÃÉÑÔÁ, - ËÏÑÔÏ ÏÓßÝÅÓÔ×Ñ×Á ËÏÍÁÎÄÁÔÁ C-p. +>> Îïèòàéòå ñ âúâåæäàíå íà C-h f previous-line. + Òîâà èçâåæäà öÿëàòà èíôîðìàöèÿ, êîÿòî Emacs çíàå çà ôóíêöèÿòà, + êîÿòî îñúùåñòâÿâà êîìàíäàòà C-p. -ðÏÄÏÂÎÁ ËÏÍÁÎÄÁ, C-h v, ÉÚ×ÅÖÄÁ ÄÏËÕÍÅÎÔÁÃÉÑÔÁ ÎÁ ÐÒÏÍÅÎÌÉ×ÉÔÅ, ËÏÉÔÏ -ÍÏÖÅ ÄÁ ÐÒÏÍÅÎÑÔÅ, ÚÁ ÄÁ ÎÁÓÔÒÏÊ×ÁÔÅ ÐÏ×ÅÄÅÎÉÅÔÏ ÎÁ åÍÁËÓ. ôÒÑÂ×Á ÄÁ -×ß×ÅÄÅÔÅ ÉÍÅÔÏ ÎÁ ÐÒÏÍÅÎÌÉ×ÁÔÁ, ËÏÇÁÔÏ åÍÁËÓ ×É ÐÏÄÓËÁÖÅ ÔÏ×Á. +Ïîäîáíà êîìàíäà, C-h v, èçâåæäà äîêóìåíòàöèÿòà íà ïðîìåíëèâèòå, êîèòî +ìîæå äà ïðîìåíÿòå, çà äà íàñòðîéâàòå ïîâåäåíèåòî íà Emacs. Òðÿáâà äà +âúâåäåòå èìåòî íà ïðîìåíëèâàòà, êîãàòî Emacs âè ïîäñêàæå òîâà. - C-h a ëÏÍÁÎÄÁ áÐÒÏÐÏÓ. ÷ß×ÅÖÄÁÔÅ ËÌÀÞÏ×Á ÄÕÍÁ É åÍÁËÓ ÝÅ - ÐÏËÁÖÅ ÓÐÉÓßË ÎÁ ×ÓÉÞËÉ ËÏÍÁÎÄÉ, ÞÉÅÔÏ ÉÍÅ ÓßÄßÒÖÁ - ÔÁÚÉ ËÌÀÞÏ×Á ÄÕÍÁ. ôÅÚÉ ËÏÍÁÎÄÉ ÍÏÇÁÔ ×ÓÉÞËÉ ÄÁ ÂßÄÁÔ - ÉÚ×ÉËÁÎÉ ÞÒÅÚ META-x. úÁ ÎÑËÏÉ ËÏÍÁÎÄÉ ËÏÍÁÎÄÁÔÁ - áÐÒÏÐÏÓ ÝÅ ÉÚ×ÅÄÅ ÄÏÐßÌÎÉÔÅÌÎÏ ÅÄÎÏÚÎÁËÏ×Á ÉÌÉ - Ä×ÕÚÎÁËÏ×Á ÐÏÓÌÅÄÏ×ÁÔÅÌÎÏÓÔ ÏÔ ËÌÁ×ÉÛÉ, ËÏÑÔÏ ÐÕÓËÁÔ - ÓßÝÁÔÁ ËÏÍÁÎÄÁ. + C-h a Êîìàíäà Àïðîïîñ. Âúâåäåòå êëþ÷îâà äóìà è Emacs ùå + ïîêàæå ñïèñúê íà âñè÷êè êîìàíäè, ÷èåòî èìå ñúäúðæà + òàçè êëþ÷îâà äóìà. Òåçè êîìàíäè ìîãàò âñè÷êè äà áúäàò + èçâèêàíè ÷ðåç META-x. Çà íÿêîè êîìàíäè êîìàíäàòà + Àïðîïîñ ùå èçâåäå äîïúëíèòåëíî åäíîçíàêîâà èëè + äâóçíàêîâà ïîñëåäîâàòåëíîñò îò êëàâèøè, êîÿòî ïóñêà + ñúùàòà êîìàíäà. ->> ÷ß×ÅÄÅÔÅ C-h a file. +>> Âúâåäåòå C-h a file. -ôÏ×Á ÉÚ×ÅÖÄÁ × ÄÒÕÇ ÐÒÏÚÏÒÅà ÓÐÉÓßË ÎÁ ×ÓÉÞËÉ M-x ËÏÍÁÎÄÉ, ËÏÉÔÏ -ÓßÄßÒÖÁÔ "file" × ÔÑÈÎÏÔÏ ÉÍÅ. ýÅ ×ÉÄÉÔÅ ÚÎÁËÏ×É ËÏÍÁÎÄÉ ËÁÔÏ C-x C-f -ÉÚÂÒÏÅÎÉ ÉÚÍÅÖÄÕ ÓßÏÔ×ÅÔÎÉÔÅ ÉÍÅÎÁ ÎÁ ËÏÍÁÎÄÉ, ËÁÔÏ find-file. +Òîâà èçâåæäà â äðóã ïðîçîðåö ñïèñúê íà âñè÷êè M-x êîìàíäè, êîèòî +ñúäúðæàò "file" â òÿõíîòî èìå. Ùå âèäèòå çíàêîâè êîìàíäè êàòî C-x +C-f, èçáðîåíè èçìåæäó ñúîòâåòíèòå èìåíà íà êîìàíäè, êàòî find-file. ->> ÷ß×ÅÄÅÔÅ C-M-v ÚÁ ÄÁ ÓËÒÏÌÉÒÁÔÅ ÐÏÍÏÝÎÉÑ ÐÒÏÚÏÒÅÃ. îÁÐÒÁ×ÅÔÅ ÇÏ - ÎÑËÏÌËÏ ÐßÔÉ. +>> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå ïîìîùíèÿ ïðîçîðåö. Íàïðàâåòå ãî + íÿêîëêî ïúòè. ->> ÷ß×ÅÄÅÔÅ C-x 1 ÚÁ ÄÁ ÉÚÔÒÉÅÔÅ ÐÏÍÏÝÎÉÑ ÐÒÏÚÏÒÅÃ. +>> Âúâåäåòå C-x 1, çà äà èçòðèåòå ïîìîùíèÿ ïðîçîðåö. - C-h i þÅÔÅÎÅ ÎÁ ÒßËÏ×ÏÄÓÔ×Á (Info). ôÁÚÉ ËÏÍÁÎÄÁ ×É ÐÒÁÝÁ × - ÓÐÅÃÉÁÌÅÎ ÂÕÆÅÒ ÎÁÒÉÞÁÎ `*info*', ËßÄÅÔÏ ÍÏÖÅ ÄÁ - ÞÅÔÅÔÅ ÒßËÏ×ÏÄÓÔ×ÁÔÁ ÎÁ ÉÎÓÔÁÌÉÒÁÎÉÔÅ ×ß× ×ÁÛÁÔÁ - ÓÉÓÔÅÍÁ ÐÁËÅÔÉ. ÷ß×ÅÄÅÔÅ m emacs ÚÁ ÄÁ - ÞÅÔÅÔÅ ÒßËÏ×ÏÄÓÔ×ÏÔÏ ÎÁ åÍÁËÓ. áËÏ ÎÉËÏÇÁ ÐÒÅÄÉ ÔÏ×Á - ÎÅ ÓÔÅ ÉÚÐÏÌÚ×ÁÌÉ Info, ×ß×ÅÄÅÔÅ ? É åÍÁËÓ ÝÅ ×ËÌÀÞÉ - ×ß×ÅÄÅÎÉÅ ÚÁ ×ßÚÍÏÖÎÏÓÔÉÔÅ ÎÁ ÒÅÖÉÍÁ éÎÆÏ. ÷ÅÄÎßÖ ÓÌÅÄ - ËÁÔÏ ÓÔÅ ÐÒÅÍÉÎÁÌÉ ÔÏ×Á ×ß×ÅÄÅÎÉÅ, ÔÒÑÂ×Á ÄÁ ÓÅ - ËÏÎÓÕÌÔÉÒÁÔÅ Ó åÍÁËÓ éÎÆÏ ÒßËÏ×ÏÄÓÔ×ÏÔÏ ËÁÔÏ ×ÁÛÁ - ÏÓÎÏ×ÎÁ ÄÏËÕÍÅÎÔÁÃÉÑ. + C-h i ×åòåíå íà ðúêîâîäñòâà (Info). Òàçè êîìàíäà âè ïðàùà â + ñïåöèàëåí áóôåð, íàðè÷àí "*info*", êúäåòî ìîæå äà + ÷åòåòå ðúêîâîäñòâàòà íà èíñòàëèðàíèòå âúâ âàøàòà + ñèñòåìà ïàêåòè. Âúâåäåòå m emacs , çà äà + ÷åòåòå ðúêîâîäñòâîòî íà Emacs. Àêî íèêîãà ïðåäè òîâà + íå ñòå èçïîëçâàëè Info, âúâåäåòå ? è Emacs ùå âêëþ÷è + âúâåäåíèå âúâ âúçìîæíîñòèòå íà ðåæèìà Èíôî. Âåäíúæ + ñëåä êàòî ñòå ïðåìèíàëè òîâà âúâåäåíèå, òðÿáâà äà ñå + êîíñóëòèðàòå ñ Emacs Èíôî ðúêîâîäñòâîòî êàòî âàøà + îñíîâíà äîêóìåíòàöèÿ. -* ïýå ÷ÿúíïöîïóôé +* ÎÙÅ ÂÚÇÌÎÆÍÎÑÒÈ ----------------- -íÏÖÅ ÄÁ ÎÁÕÞÉÔÅ ÐÏ×ÅÞÅ ÚÁ åÍÁËÓ Ó ÞÅÔÅÎÅ ÎÁ ÎÅÇÏ×ÏÔÏ ÒßËÏ×ÏÄÓÔ×Ï, ÉÌÉ -ËÁÔÏ ËÎÉÇÁ, ÉÌÉ × éÎÆÏ (ÉÚÐÏÌÚ×ÁÊÔÅ ÍÅÎÀÔÏ ÐÏÍÏÝ (Help) ÉÌÉ ×ß×ÅÄÅÔÅ -F10 h r). ä×Å ×ßÚÍÏÖÎÏÓÔÉ, ËÏÉÔÏ ÍÏÖÅ ÄÁ ÖÅÌÁÅÔÅ × ÎÁÞÁÌÏÔÏ, ÓÁ -ÄÏ×ßÒÛ×ÁÎÅ (completion), ËÏÅÔÏ ÓÐÅÓÔÑ×Á ÐÉÓÁÎÅ, É dired, ËÏÊÔÏ -ÏÐÒÏÓÔÑ×Á ÂÏÒÁ×ÅÎÅÔÏ Ó ÆÁÊÌÏ×Å. - -äÏ×ßÒÛ×ÁÎÅÔÏ Å ÎÁÞÉÎ ÄÁ ÉÚÂÑÇ×ÁÔÅ ÎÅÎÕÖÎÏ ÐÉÓÁÎÅ. îÁÐÉÒÍÅÒ, ÁËÏ -ÉÓËÁÔÅ ÄÁ ÐÒÅ×ËÌÀÞÉÔÅ ËßÍ ÂÕÆÅÒÁ *Messages*, ÍÏÖÅ ÄÁ ×ß×ÅÄÅÔÅ C-x b -*M É åÍÁËÓ ÝÅ ÚÁÐßÌÎÉ ÏÓÔÁÎÁÌÁÔÁ ÞÁÓÔ ÏÔ ÉÍÅÔÏ ÎÁ ÂÕÆÅÒÁ, -ÄÏËÏÌËÏÔÏ ÍÏÖÅ ÄÁ ÓÅ ÏÐÒÅÄÅÌÉ ÏÔ ÔÏ×Á, ËÏÊÔÏ ÓÔÅ ×ß×ÅÌÉ. äÏ×ßÒÛ×ÁÎÅÔÏ -Å ÏÐÉÓÁÎÏ × éÎÆÏ-ÒßËÏ×ÏÄÓÔ×ÏÔÏ ÎÁ åÍÁËÓ × ÐÁÒÞÅÔÏ "äÏ×ßÒÛ×ÁÎÅ" +Ìîæå äà íàó÷èòå ïîâå÷å çà Emacs ñ ÷åòåíå íà íåãîâîòî ðúêîâîäñòâî, èëè +êàòî êíèãà, èëè â Èíôî (èçïîëçâàéòå ìåíþòî ïîìîù (Help) èëè âúâåäåòå +F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà +äîâúðøâàíå (completion), êîåòî ñïåñòÿâà ïèñàíå, è dired, êîéòî +îïðîñòÿâà áîðàâåíåòî ñ ôàéëîâå. + +Äîâúðøâàíåòî å íà÷èí äà èçáÿãâàòå íåíóæíî ïèñàíå. Íàïðèìåð, àêî +èñêàòå äà ïðåâêëþ÷èòå êúì áóôåðà *Messages*, ìîæå äà âúâåäåòå C-x b +*M è Emacs ùå çàïúëíè îñòàíàëàòà ÷àñò îò èìåòî íà áóôåðà, +äîêîëêîòî ìîæå äà ñå îïðåäåëè îò òîâà, êîåòî ñòå âúâåëè. Äîâúðøâàíåòî +å îïèñàíî â Èíôî-ðúêîâîäñòâîòî íà Emacs â ñòðàíèöàòà "Äîâúðøâàíå" ("Completion"). -Dired ×É ÐÏÚ×ÏÌÑ×Á ÄÁ ÇÌÅÄÁÔÅ ÓÐÉÓßËÁ ÏÔ ÆÁÊÌÏ×Å × ÄÉÒÅËÔÏÒÉÑ (É ËÁÔÏ -×ßÚÍÏÖÎÏÓÔ ÎÅÊÎÉÔÅ ÐÏÄÄÉÒÅËÔÏÒÉÉ), ÄÁ ÓÅ ÐÒÉÄ×ÉÖ×ÁÔÅ × ÔÏÚÉ ÓÐÉÓßË, ÄÁ -ÐÏÓÅÝÁ×ÁÔÅ, ÐÒÅÉÍÅÎÕ×ÁÔÅ, ÉÚÔÒÉ×ÁÔÅ É ÉÚÏÂÝÏ ÄÅÊÓÔ×ÁÔÅ ×ßÒÈÕ -ÆÁÊÌÏ×ÅÔÅ. Dired Å ÏÐÉÓÁÎ × éÎÆÏ-ÒßËÏ×ÏÄÓÔ×ÏÔÏ ÎÁ åÍÁËÓ × ÐÁÒÞÅÔÏ +Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî +âúçìîæíîñò: íåéíèòå ïîääèðåêòîðèè), äà ñå ïðèäâèæâàòå â òîçè ñïèñúê, +äà ïîñåùàâàòå, ïðåèìåíóâàòå, èçòðèâàòå è èçîáùî äåéñòâàòå âúðõó +ôàéëîâåòå. Dired å îïèñàí â Èíôî-ðúêîâîäñòâîòî íà Emacs â ñòðàíèöàòà "Dired". -òßËÏ×ÏÄÓÔ×ÏÔÏ ÎÁ åÍÁËÓ ÏÐÉÓ×Á ÏÝÅ ÍÎÏÇÏ ÄÒÕÇÉ ×ßÚÍÏÖÎÏÓÔÉ ÎÁ -ÒÅÄÁËÔÏÒÁ. +Ðúêîâîäñòâîòî íà Emacs îïèñâà îùå ìíîãî äðóãè âúçìîæíîñòè íà +ðåäàêòîðà. -* úáëìàþåîéå +* ÇÀÊËÞ×ÅÍÈÅ ------------ -úÁÐÏÍÎÅÔÅ, ÚÁ ÄÁ ÉÚÌÅÚÅÔÅ ÂÅÚ×ßÚ×ÒÁÔÎÏ ÏÔ åÍÁËÓ ÉÚÐÏÌÚ×ÁÊÔÅ C-x C-c. -úÁ ÄÁ ÉÚÌÅÚÅÔÅ ×ÒÅÍÅÎÎÏ × ÏÂ×É×ËÁ, ÔÁËÁ ÞÅ ÄÁ ÓÅ ×ßÒÎÅÔÅ × åÍÁËÓ -ÐÏ-ËßÓÎÏ, ÉÚÐÏÌÚ×ÁÊÔÅ C-z. +Çàïîìíåòå: çà äà èçëåçåòå áåçâúçâðàòíî îò Emacs, èçïîëçâàéòå C-x C-c. +Çà äà èçëåçåòå âðåìåííî â îáâèâêà, òàêà ÷å äà ñå âúðíåòå â Emacs +ïî-êúñíî, èçïîëçâàéòå C-z. -ôÏ×Á ×ß×ÅÄÅÎÉÅ Å ÐÒÅÄ×ÉÄÅÎÏ ÄÁ ÂßÄÅ ÒÁÚÂÉÒÁÅÍÏ ÚÁ ×ÓÉÞËÉ ÎÏ×É -ÐÏÔÒÅÂÉÔÅÌÉ, ÔÁËÁ ÞÅ ÁËÏ ÎÁÍÉÒÁÔÅ ÎÅÝÏ ÎÅÑÓÎÏ, ÎÅ ÓÅ ÓÁÍÏÏÂ×ÉÎÑ×ÁÊÔÅ --- ÏÐÌÁÞÅÔÅ ÓÅ! +Òîâà âúâåäåíèå å ïðåäâèäåíî äà áúäå ðàçáèðàåìî çà âñè÷êè íîâè +ïîòðåáèòåëè, òàêà ÷å àêî íàìèðàòå íåùî íåÿñíî, íå ñå ñàìîîáâèíÿâàéòå +-- îïëà÷åòå ñå! -* ëïðéòáîå +* ÊÎÏÈÐÀÍÅ ---------- -ôÏ×Á ×ß×ÅÄÅÎÉÅ ÐÒÏÉÚÌÉÚÁ ÏÔ ÄßÌÇÁ ÐÏÒÅÄÉÃÁ ×ß×ÅÄÅÎÉÑ × åÍÁËÓ -ÚÁÐÏÞ×ÁÊËÉ ÏÔ ÅÄÎÏ ÎÁÐÉÓÁÎÏ ÏÔ óÔÀßÒÔ ëÒÁËÒÁÆÔ ÚÁ ÎÁÞÁÌÎÉÑ åÍÁËÓ. +Òîâà âúâåäåíèå ïðîèçëèçà îò äúëãà ïîðåäèöà âúâåäåíèÿ â Emacs, +çàïî÷âàéêè îò åäíî, íàïèñàíî îò Ñòþúðò Êðàêðàôò çà íà÷àëíèÿ Emacs. -ôÁÚÉ ×ÅÒÓÉÑ ÎÁ ×ß×ÅÄÅÎÉÅÔÏ, ËÁËÔÏ É çîõ åÍÁËÓ, Å ÚÁÝÉÔÅÎÁ Ó Á×ÔÏÒÓËÉ -ÐÒÁ×Á É ÉÄ×Á Ó ÒÁÚÒÅÛÅÎÉÅ ÄÁ ÒÁÚÐÒÏÓÔÒÁÎÑ×ÁÔÅ ËÏÐÉÑ ÐÒÉ ÓÌÅÄÎÉÔÅ -ÕÓÌÏ×ÉÑ: +Òàçè âåðñèÿ íà âúâåäåíèåòî, êàêòî è GNU Emacs, å çàùèòåíà ñ àâòîðñêè +ïðàâà è èäâà ñ ðàçðåøåíèå äà ðàçïðîñòðàíÿâàòå êîïèÿ ïðè ñëåäíèòå +óñëîâèÿ: This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -1181,14 +1183,15 @@ Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation under the above conditions, provided also that they carry prominent notices stating who last altered them. -õÓÌÏ×ÉÑÔÁ ÚÁ ËÏÐÉÒÁÎÅ ÎÁ ÓÁÍÉÑ åÍÁËÓ ÓÁ ÐÏ-ÓÌÏÖÎÉ, ÎÏ × ÓßÝÉÑ ÄÕÈ. -íÏÌÑ ÐÒÏÞÅÔÅÔÅ ÆÁÊÌÁ COPYING É ÔÏÇÁ×Á ÄÁ×ÁÊÔÅ ËÏÐÉÑ ÎÁ çîõ åÍÁËÓ ÎÁ -Ó×ÏÉ ÐÒÉÑÔÅÌÉ. ðÏÍÏÇÎÅÔÅ ÄÁ ÓÐÒÅÍ ÚÁÔ×ÏÒÅÎÏÓÔÔÁ ÎÁ ÐÒÏÇÒÁÍÉÔÅ -("ÐÒÉÔÅÖÁÎÉÅÔÏ") ËÁÔÏ ÉÚÐÏÌÚ×ÁÍÅ, ÐÉÛÅÍ É ÓÐÏÄÅÌÑÍÅ Ó×ÏÂÏÄÅÎ ÓÏÆÔÕÅÒ! +Óñëîâèÿòà çà êîïèðàíå íà ñàìèÿ Emacs ñà ïî-ñëîæíè, íî â ñúùèÿ äóõ. +Ìîëÿ, ïðî÷åòåòå ôàéëà COPYING è òîãàâà äàâàéòå êîïèÿ íà GNU Emacs íà +ñâîè ïðèÿòåëè. Ïîìîãíåòå äà ñïðåì çàòâîðåíîñòòà íà ïðîãðàìèòå +("ïðèòåæàíèåòî"), êàòî èçïîëçâàìå, ïèøåì è ñïîäåëÿìå ñâîáîäåí ñîôòóåð! -ðÒÅ×ÏÄßÔ ÎÁ ÂßÌÇÁÒÓËÉ Å ÉÚ×ßÒÛÅÎ ÏÔ ïÇÎÑÎ ëÕÌÅ× +Ïðåâîäúò íà áúëãàðñêè å èçâúðøåí îò Îãíÿí Êóëåâ . ;;; Local Variables: -;;; coding: koi8-r -;;; End: \ No newline at end of file +;;; coding: windows-1251 +;;; End: +;;; arch-tag: 70cf6ad7-c2e4-41fe-8199-74aa52683b0e diff --git a/etc/TUTORIAL.cn b/etc/TUTORIAL.cn new file mode 100644 index 00000000000..f35c53be663 --- /dev/null +++ b/etc/TUTORIAL.cn @@ -0,0 +1,1087 @@ +Emacs ¿ìËÙÖ¸ÄÏ. + +Emacs Ö¸Áîͨ³£°üº¬ÓÐ CONTROL ¼ü£¨ÓÐʱºòÒÔ CTRL »ò CTL À´±êʾ£©»òÊÇ +META ¼ü£¨ÓÐʱºòÒÔ EDIT »ò ALT À´±êʾ£©¡£ÎªÁ˱ÜÃâÿһ´Î¶¼ÒªÐ´³öÆäÈ«Ãû£¬ +ÎÒÃǽ«»áʹÓÃÏÂÊöµÄËõд£º + + C- ±íʾµ±¼üÈë×ÖÔª ʱ °´×¡ CONTROL ¼ü¡£ + Òò´Ë£¬C-f ¾ÍÊÇ£º°´×¡ CONTROL ¼üÔÙ¼üÈë f ¡£ + M- ±íʾµ±¼üÈë×ÖÔª ʱ °´×¡ META »ò EDIT »ò ALT ¼ü¡£ + Èç¹ûûÓÐ META ¡¢ EDIT »ò ALT ¼üʱ£¬Ôò¿ÉÒÔÓà + ¡¸°´Ò»Ï ESC ¼üÈ»ºó·Å¿ª£¬ÔÙ¼üÈë µÄ²½Ö衹 + À´×÷ÎªÌæ´ú¡£ÎÒÃÇÒÔ À´±íʾ ESC ¼ü¡£ + +ÖØÒª±¸Íü¼£ºÒªÀ뿪 Emacs ²Ù×÷½×¶Î£¨ session £©£¬¼üÈë C-x C-c £¨Á½¸ö×Ö +Ôª£©¡£Î»ÔÚ×ó²à±ß½çµÄ¡¸>>¡¹×ÖÔªÊÇÈÃÄú¿ÉÒÔÊÔÖøÊ¹ÓõÄÖ¸ÁîµÄÌáʾ¡£¾ÙÀýÀ´Ëµ£º +<> +[Middle of page left blank for didactic purposes. Text continues below] +>> ÏÖÔÚ¼üÈë C-v £¨ View next screen £©ÒÔÒÆµ½Ï¸öÓ©Ä»¡£ + £¨ÊÔÊÔ¿´£¬¼üÈë×ÖÔª v ʱ£¬°´×¡ CONTROL ¼ü£© + ´ÓÏÖÔÚ¿ªÊ¼£¬ÄúÓ¦¸ÃÔÚÿ´ÎÔĶÁÍêĿǰµÄөĻʱ×öÒ»´ÎÕâ¸ö¶¯×÷¡£ + +ҪעÒâµÄÊÇ£¬µ±Äú´ÓÒ»¸öÓ©Ä»ÒÆµ½ÁíÒ»¸öʱ£¬Öмä»áÓÐÁ½ÐÐÖØ¸´£»ÕâÑù×öÊÇΪÁË +ÌṩһЩÁ¬ÐøÐÔ£¬ÈÃÄú¿ÉÒÔ½ÓÐøµØÔĶÁÎÄ×Ö¡£ + +ÄúÐèÒªÖªµÀµÄµÚÒ»¼þÊÂÊÇÈçºÎÔÚÎÄ×ÖÖÐÒÆ¶¯¡£ÄúÒѾ­ÖªµÀÁË¿ÉÒÔ C-v À´ÏòÇ°ÒÆ +¶¯Ò»¸öÓ©Ä»¡£ÒªÏòºóÒÆ¶¯Ò»¸öÓ©Ä»£¬Ôò¼üÈë M-v £¨°´×¡ META ¼ü£¬È»ºó¼üÈë v +£¬»òÊÇÈç¹ûÄúûÓÐ META ¡¢ EDIT »ò ALT ¼üʱ¼üÈë v £©¡£ + +>> ÊÔÖø¼üÈë M-v È»ºó C-v £¬Á¬Ðø¸ö¼¸´Î¡£ + +¡¾ÏÖÔÚÄú¿ÉÒÔ C-v Ö¸ÁîÒÆµ½ºóÃæ¡¸·­Ò롹һ½Ú£¬ÒÔÈ¡µÃ¹Øì¶±¾Îĵķ­ÒëÏà¹ØÊ +ÏȻºóÒÔ M-v Ö¸Áî»Øµ½ÕâÀï¡£¡¿ + + +* ÕªÒª£¨ SUMMARY £© +------------------- + +ÒÔϵÄÖ¸ÁîÔÚ¼ìÔÄөĻʱÏ൱ÓÐÓ㺡¾ÎÒÃÇÏÖÔÚÒÔ¡¸Ó©Ä»¡¹À´±íʾ¡¸ÏÔʾµµ°¸ÄÚ +ÈݵÄÇøÓò¡¹£¬ÒòΪĿǰÊÇ´¦ÔÚ Emacs Öеĵ¥´°¸ñ£¨ window £©ÏÔʾ״̬£¬Èç¹û +ÊÇÔÚ¶à´°¸ñµÄ״̬Ï£¬ÕâÀïËù½éÉܵÄÖ¸ÁîÔò×÷ÓÃÔÚ¡¸¹¤×÷ÖеĴ°¸ñ¡¹¡£ÓйØì¶´° +¸ñµÄ½éÉÜ£¬Çë¼û´°¸ñ£¨ windows £©Ò»½Ú¡£¡¿ + + C-v ÏòÇ°ÒÆ¶¯Ò»¸öÓ©Ä»£¯´°¸ñ + M-v ÏòºóÒÆ¶¯Ò»¸öÓ©Ä»£¯´°¸ñ + C-l Çå³ýÓ©Ä»£¯´°¸ñ£¬ÔÙÖØÐÂÏÔʾËùÓÐÎÄ×Ö£¬ + ÓαêËùÔÚλÖûáÏÔʾì¶Ó©Ä»£¯´°¸ñµÄÖÐÑë¡£ + £¨ÊÇ CONTROL-L ¶ø²»ÊÇ CONTROL-1 £© + +>> ÕÒ³öÓαêµÄλÖ㬲¢×¢ÒâÆä¸½½üµÄÎÄ×ÖΪºÎ¡£È»ºó¼üÈë C-l ¡£ + ÔÙ´ÎÕÒ³öÓαêµÄλÖã¬È·ÈÏÒ»ÏÂÏàͬµÄÎÄ×ÖÏÖÔÚҲλÔÚÆä¸½½ü¡£ + +Èç¹ûÄúµÄÖÕ¶Ë»úÓÐ PageUp Óë PageDn ¼üµÄ»°£¬ÄúÒ²¿ÉÒÔʹÓÃËüÃÇÀ´ÒÔөĻΪµ¥ +λµØÒƶ¯£¬µ«ÊÇʹÓà C-v ºÍ M-v »á±È½ÏÓÐЧÂÊ¡£ + + +* »ù±¾µÄÓÎ±ê¿ØÖÆ£¨ BASIC CURSOR CONTROL £© +------------------------------------------ + +Ó©Ä»µ½Ó©Ä»µÄÒÆ¶¯ÊǺÜÓÐÓ㬵«ÊÇÄúÈçºÎÒÆ¶¯µ½Î»ì¶Ó©Ä»ÄÚÎÄ×ÖÖеÄÌØ¶¨Î»ÖÃÄØ£¿ + +Óм¸ÖÖ·½Ê½¿ÉÒÔ½øÐС£Äú¿ÉÒÔʹÓ÷½Ïò¼ü£¬µ«Êǽ«ÄúµÄÊÖ·ÅÔÚ±ê×¼µÄ¡²¼üÅÌ¡³Î» +Ö㬲¢ÇÒʹÓÃÖ¸Áî C-p ¡¢ C-b ¡¢ C-f ºÍ C-n ½«±È½ÏÓÐЧÂÊ¡£ÕâЩ×ÖÔªºÍËĸö +·½Ïò¼ü¡²µÄ¹¦ÄÜ¡³ÊÇͬµÈµÄ£¬ÈçÏÂËùʾ£º + + ǰһÐÐ C-p + : + : + ÏòºóÒÆ C-b .... ĿǰÓαêλÖà .... ÏòÇ°ÒÆ C-f + : + : + ºóÒ»ÐÐ C-n + +>> ÒÔ C-n »ò C-p ½«ÓαêÒÆµ½Í¼ÐεÄÖÐÑë¡£ + ¼üÈë C-l »á¿´µ½Õû¸öͼÐÎÏÔʾÔÚÓ©Ä»µÄÖÐÑë¡£ + +Äú»á·¢ÏÖÓÃ×ÖĸËù´ú±íµÄÒâÒåÀ´¼ÇÒäËüÃǺÜÈÝÒ×£ºP ±íʾ previous ¡¢ N ±íʾ +next ¡¢ B ±íʾ backward ¡¢¶ø F Ôò±íʾ forward ¡£Äú½«¡¸×ÜÊÇ¡¹Óõ½ÕâЩÓÎ +±êÒÆ¶¯Ö¸Áî¡£ + +>> °´¼¸´Î C-n °ÑÓαêÍùÏÂÒÆ¶¯µ½ÕâÐС£ + +>> °´¼¸´Î C-f ÍùÇ°ÒÆµ½ÕâÐУ¬È»ºóÔÙÒÔ C-p ÍùºóÒÆ¶¯¡£ + ¿´¿´µ±ÓαêÔÚ±¾ÐÐÖÐÑëʱ£¬C-p µÄ¶¯×÷ÊÇÔõÑù¡£ + +ÿһ¸öÎÄ×ÖÐж¼ÒÔÒ»¸ö Newline ×ÖÔª×÷Ϊ½áÊø£¬ËüÊÇÓÃÀ´ÓëÏÂÒ»ÐÐ×÷Ϊ·Ö±ð¡£ +ÔÚÄúµµ°¸ÖеÄ×îºóÒ»ÐÐÓ¦¸ÃÒªÓÐÒ»¸ö Newline À´×÷Ϊ½áÊø£¨µ«ÊÇ Emacs ²¢²»Ò» +¶¨ÐèÒªËüÀ´±à¼­µµ°¸£©¡£ + +>> ÊÔÖøÔÚÒ»ÐпªÊ¼µÄµØ·½¼üÈë C-b ¡£½á¹ûÓ¦¸Ã»áÒÆ¶¯µ½Ç°Ò»ÐеÄ×îºóÃæ¡£ + ÕâÊÇÒòΪËüÍùºóÒÆ¶¯Ê±Ô½¹ýÁË Newline ×ÖÔª¡£ + +C-f Ò²¿ÉÒÔºÍ C-b Ò»ÑùµØÔ½¹ý Newline ×ÖÔª¡£¡¾Newline ×ÖÔªÊÇ¡¸²»¿É¼û +£¨ invisible £©×ÖÔª¡¹£¬Ôڱ༭Æ÷ÖÐÒ»°ã¿´²»µ½Ëü£¬ÕâÀïÖ»ÊǸæËßÄú£ºÔÚÐÐÊ× +ÔÙÍùǰ×ߣ¬ÄÇôÓαê»áÅܵ½Ç°Ò»ÐУ¨Èç¹ûÓÐǰһÐеϰ£©£»ÔÚÐÐβÔÙÍùºó×ߣ¬ÄÇ +ôÓαê»áÅܵ½ºóÒ»ÐУ¨Èç¹ûÓкóÒ»Ðеϰ£©¡£¡¸Ô½¹ý Newline ×ÖÔª¡¹»áÈÃÓαê +Åܵ½ÁíÍâÒ»ÐС£¡¿ + +>> ¶à°´¼¸´Î C-b£¬×Ô¼º¸Ð¾õÒ»ÏÂÓαêÔÚÄÄ¡£ + È»ºó°´¼¸´Î C-f »Øµ½ÕâÐеÄβ°Í¡£ + ÔÙ°´Ò»´Î C-f ¾Í¿ÉÒÔÒÆµ½ÏÂÒ»ÐÐÁË¡£ + +µ±ÄúÒÆ¶¯Óα괩ԽөϵÄÉÏ·½»òÏ·½Ê±£¬Ôڱ߽çÍâµÄÎÄ×Ö»áÒÆÎ»½øÈëÓ©Ä»ÄÚ¡£Õâ +³ÆÎª¡¸¾í¶¯¡¹¡£ËüÈà Emacs ¿ÉÒÔ½«ÓαêÒÆ¶¯µ½ÎÄ×ÖÖеÄÈÎÒâÌØ¶¨Î»Öã¬Í¬Ê± +£¨Óα꣩²»»áÅܳöÓ©Ä»Íâ¡£ + +>> ÊÔÖøÒÔ C-n ½«ÓαêÔ½¹ýөĻϷ½£¬È»ºó¿´¿´·¢ÉúÁËʲôÊ¡£ + +Èç¹ûÒ»¸ö×ÖÔªÒ»¸ö×ÖÔªµØÒƶ¯Ì«ÂýµÄ»°£¬Äú¿ÉÒÔÒ»¸ö×ÖÒ»¸ö×ÖµØÒƶ¯¡£M-f +(META-f) ÍùÇ°ÒÆ¶¯Ò»¸ö×Ö£¬M-b ÔòÍùºóÒÆ¶¯Ò»¸ö×Ö¡£¡¾¶ÔÖÐÎÄÀ´Ëµ£¬ÔòÊÇÒÆ¶¯ +µ½ÏÂÒ»¸ö»òÏÂÒ»¸ö±êµã·ûºÅµÄËùÔÚ¡£¡¿ + +>> ¼üÈëһЩ M-f ºÍ M-b¡£ + +µ±ÄúÔÚÒ»¸ö×ÖµÄÖмäʱ£¬M-f »áÒÆ¶¯µ½Õâ¸ö×ÖµÄβ°Í¡£µ±ÄúÔÚ×ÖÓë×Ö¼äµÄ¿Õ°×ʱ£¬ +M-f »áÒÆ¶¯µ½ÏÂÒ»¸ö×ÖµÄβ°Í¡£M-b µÄЧ¹ûÏàËÆ£¬Ö»ÊÇ·½Ïò²»Í¬¡£ + +>> °´¼¸´Î M-f ºÍ M-b£¬Öмä¼ÐÔÓһЩ C-f ºÍ C-b£¬ + ÕâÑù×ÓÄú¾Í¿ÉÒÔ¹Û²ì M-f ºÍ M-b ÔÚ¸÷ÖÖ¡¸Î»ÔÚ×Ö¼ä»ò×ÖÔª¼ä¡¹ + µÄ²»Í¬Î»Öã¬Ëù±íÏÖ³öÀ´µÄÐÐΪ¡£ + +Çë×¢Òâ C-f ¡¢ C-b ºÍ M-f ¡¢ M-b Á½¶ÔÖ®¼äµÄÏàËÆÐÔ¡£¡¸¾­³£¡¹µÄ×´¿öÊÇ£º +META ×ÖÔªÊÇÓÃÀ´×÷ΪÓ롸ÒÔÓïÑÔ¶¨Òå³öµÄµ¥Î»£¨×Ö¡¢¾ä×Ó¡¢¶ÎÂ䣩¡¹ÓйصIJ٠+×÷£¬¶ø CONTROL ×ÖÔªÔòÊÇ×÷ÓÃÔÚ¡¸ÓëÄúËù±à¼­Î޹صġº»ù±¾¡»µ¥Î»£¨×ÖÔª»òÐÐ +µÈ£©¡¹ÉÏ¡£ + +Õâ¸öÏàËÆÐÔÔÚ¡¸ÐÐÓë¾ä×Ó¡¹Ö®¼äҲͬÑùÊÊÓãºC-a ºÍ C-e »á½«ÓαêÒÆ¶¯µ½¡¸Ò» +ÐС¹µÄ ¿ªÊ¼ºÍ½áβ´¦£¬¶øM-a ºÍ M-e Ôò½«ÓαêÒÆ¶¯µ½¡¸Ò»¾ä¡¹µÄ ¿ªÊ¼ºÍ½áβ +´¦¡£ + +>> ÊÔÖø°´Á½´Î C-a£¬ÔÙ°´Á½´Î C-e¡£ + ÊÔÖø°´Á½´Î M-a£¬ÔÙ°´Á½´Î M-e¡£ + +¿´Ò»ÏÂÎªÊ²Ã´ÖØ¸´µÄ C-a Ö¸Áî»áûÓÐ×÷Ó㬶øÖظ´µÄ M-a Ö¸ÁîÔò¼ÌÐøÒÆ¶¯µ½Ï +Ò»¸ö¾ä×Ó¡£ËäÈ»Õâ²¢²»ÄÜ˵ÊÇÍêÈ«Àà±È£¬µ«ÊÇÆäÖÐÿ¸öÖ¸ÁîµÄÐÐΪ¿´ÆðÀ´¶¼Ê®·Ö +×ÔÈ»¡£ + +ÓαêÔÚÎÄ×ÖÖеÄλÖÃÒ²¿ÉÒÔ³Æ×÷¡¸µã루 point £©¡¹¡£¼òµ¥À´Ëµ¾ÍÊÇ£ºÓαê±í +ÏÖ³öÓ©Ä»ÖС¸µãλ¡¹ËùÔÚµÄÎÄ×ÖλÖᣠ+ +ÕâÀïÊÇһЩ¼òµ¥¡¸ÓαêÒÆ¶¯£¨ cursor-moving £©²Ù×÷¡¹µÄÕûÀí£¬ÆäÖÐÒ²°üÀ¨ÁË +¡¸×ֺ;䡹µÄÒÆ¶¯Ö¸Á + + C-f ÍùÇ°ÒÆ¶¯Ò»¸ö×ÖÔª + C-b Íù»ØÒƶ¯Ò»¸ö×ÖÔª + + M-f ÍùÇ°ÒÆ¶¯Ò»¸ö×Ö¡¾ÖÐÎÄÊÇÒÆ¶¯µ½ÏÂÒ»¸ö±êµã·ûºÅ¡¿ + M-b Íù»ØÒƶ¯Ò»¸ö×Ö¡¾ÖÐÎÄÊÇÒÆ¶¯µ½ÉÏÒ»¸ö±êµã·ûºÅ¡¿ + + C-n ÒÆ¶¯µ½ÏÂÒ»ÐÐ + C-p ÒÆ¶¯µ½ÉÏÒ»ÐÐ + + C-a ÒÆ¶¯µ½ÐÐÊ× + C-e ÒÆ¶¯µ½ÐÐβ + + M-a ÒÆ»Ø¾äÊ× + M-e ÒÆµ½¾äβ + +>> Á·Ï°¼¸´ÎÕâЩָÁî¡£ÕâЩ¶¼ÊÇ×ʹÓõ½µÄÖ¸Áî¡£ + +»¹ÓÐÁ½¸öÖØÒªµÄÓα궯×÷£¨ cursor-motion £©Ö¸ÁM-<£¨ META Less-than £©£¬ +ÒÆ¶¯µ½ÎÄ×ÖµÄ×ʼ£¬ÒÔ¼°M->£¨ META Greater-than £©£¬Òƶ¯µ½ÎÄ×ÖµÄ×îºó¡£ + +Ôڴ󲿷ݵÄÖÕ¶Ë»ú£¬¡¸<¡¹ÊÇÔÚ comma ÉÏ·½£¬ËùÒÔÄú±ØÐëҪʹÓà shift ¼üÀ´¼ü +Èë¡£ÔÚÕâЩÖÕ¶Ë»úÉÏ£¬Äú±ØÐëʹÓà shift ¼üÀ´¼üÈë M-<£»Ã»ÓÐʹÓà shift ¼ü£¬ +Äú¾Í±ä³É¼üÈë M-comma ÁË¡£ + +>> ÏÖÔÚÊÔһϠM-< £¬ÒƵ½±¾¿ìËÙÖ¸ÄϵÄ×ʼ¡£ + È»ºóÔÙÖØ¸´µØÊ¹Óà C-v »Øµ½ÕâÀï¡£ + +>> ÏÖÔÚÊÔһϠM-> £¬ÒƵ½±¾¿ìËÙÖ¸ÄϵÄ×îºó¡£ + È»ºóÔÙÖØ¸´µØÊ¹Óà M-v »Øµ½ÕâÀï¡£ + +Èç¹ûÄúµÄÖÕ¶Ë»úÓз½Ïò¼üµÄ»°£¬ÄúÒ²¿ÉÒÔÓ÷½Ïò¼üÒÆ¶¯ÓαꡣÎÒÃÇÓÐÈý¸öÀíÓɽ¨ +ÒéÄúѧϰ C-b ¡¢ C-f ¡¢ C-n ¡¢ ºÍ C-p £º(1) ÈκεÄÖÕ¶Ë»ú¶¼ÄÜʹÓá£(2) +Ò»µ©ÄúʹÓà Emacs Ï൱ÊìÁ·ÁË£¬Äú»á·¢ÏÖ¼üÈëÕâЩ CONTROL ×ÖÔª£¬±ÈÆðʹÓ÷½ +Ïò¼ü¿ì¶àÁË£¨ÒòΪÄú²»ÐèÒª½«ÊÖÒÆ¿ª´ò×ÖÇø£©¡£(3) Ò»µ©ÄúʹÓÃÕâЩ CONTROL +×ÖÔªÖ¸Áî³ÉΪϰ¹ß£¬ÄúÒ²¿ÉÒÔºÜÈÝÒ×µØÑ§»áÆäËû½ø½×µÄÓα궯×÷Ö¸Áî¡£ + +´ó²¿·ÝµÄ Emacs Ö¸Áî½ÓÊÜÊý×Ö²ÎÊý£»¶Ô´ó²¿·ÝµÄÖ¸Áî¶øÑÔ£¬ËüµÄ×÷ÓÃÊÇÖ¸¶¨ÖØ +¸´´ÎÊý¡£ÄúÒªÖ¸¶¨Ò»¸öÖ¸ÁîµÄÖØ¸´´ÎÊýµÄ×÷·¨ÊÇ£ºÏȼüÈë C-u£¬È»ºóÔÚÄú¼üÈëÖ¸ +Áîǰ£¬¼üÈë´ú±íÖØ¸´´ÎÊýµÄÊýλ¡£Èç¹ûÄúÓÐÒ»¸ö META£¨»ò EDIT »ò ALT £©¼ü£¬ +ÄÇôÄú»¹ÓÐÁíÍâÒ»¸öÌæ´ú×÷·¨À´ÊäÈëÊý×Ö²ÎÊý£º°´×¡ META ¼üʱ´òÈëÕâÊý×Ö¡£ÎÒ +Ãǽ¨ÒéÄúѧϰ C-u µÄ·½·¨£¬ÒòΪËüÔÚÈκÎÖÕ¶Ë»ú¶¼¿ÉÒÔʹÓᣴËÒ»Êý×Ö²ÎÊýÒ² +³Æ×÷Ϊ¡¸×ÖÊײÎÊý¡¹£¬ÒòΪÄúÔÚÕâ²ÎÊýËù×÷Óõ½µÄÖ¸Áîǰ¼üÈëËü¡£ + +¾ÙÀýÀ´Ëµ£¬ C-u 8 C-f ÏòÇ°ÒÆ¶¯ 8 ¸ö×ÖÔª¡£ + +>> ÊÔÖøÒÔÒ»¸öÊý×Ö²ÎÊýÀ´Ê¹Óà C-n »ò C-p£¬ + Ö»Ò»¸öÖ¸Áî¾Í½«ÓαêÒÆ¶¯µ½ÕâÐеĸ½½ü¡£ + +´ó²¿·ÝµÄÖ¸ÁîʹÓÃÊý×Ö²ÎÊýÀ´×÷ΪÆäÖØ¸´´ÎÊý£¬µ«ÊÇÆäÖÐÓÐЩָÁîÔòÊÇ×÷ΪÆäËû +ÓÃ;¡£Óм¸¸öÖ¸ÁĿǰÄúÉÐδѧµ½£©½«Ëü×÷ΪÆì±ê -- ÒÔÒ»¸ö×ÖÊײÎÊýµÄÐÍ̬ +³öÏÖ£¬¶ø²»¹ÜÆäֵΪºÎ£¬ËüÃÇÈÃÕâÖ¸Áî×öЩ²»Ò»ÑùµÄÊ¡£ + +C-v ºÍ M-v ÔòÊÇÁíÒ»ÀàµÄÀýÍâ¡£µ±¸ø¶¨Ò»¸ö²ÎÊýʱ£¬ËüÃÇ¾í¶¯¡¸ËùÖ¸¶¨µÄÊýÁ¿ +µÄÐУ¨ÒÔÐÐΪµ¥Î»£©¡¹£¬¶ø²»ÊÇÒÔ¡¸Ó©Ä»¡¹Îªµ¥Î»¾í¶¯¡£¾ÙÀýÀ´Ëµ£¬C-u 8 C-v +½«ÏÔʾөĻ¾í¶¯ 8 ÐС£ + +>> ÏÖÔÚÊÔÖø¼üÈë C-u 8 C-v¡£ + +ÕâÖ¸ÁîÓ¦¸ÃÒѾ­½«Ó©Ä»ÏòÉÏÒÆÁË 8 ÐС£ÈôÄúÏ뽫ËüÔٴεØÏòÏÂ¾í¶¯£¬Äú¿ÉÒÔÔÚ +Ö´ÐÐ M-v ʱ¸ø¶¨Ò»¸ö²ÎÊý¡£ + +Èç¹ûÄúÕýÔÚʹÓà X ´°¿Úϵͳ£¬ÔÚ Emacs ´°¿Ú×óÊÖ²àÓ¦¸ÃÓÐÒ»¸ö³ÆÎª¡¸¾í¶¯Ö᡹ +µÄ³¤·½ÐÍÇøÓò¡£Äú¿ÉÒÔÓû¬ÊóÔÚ¾í¶¯Öá°´Ò»ÏÂÀ´¾í¶¯ÎÄ×Ö¡£ + +>> ÊÔÖøÔÚ¡¸¾í¶¯ÖáÄÚ·´°×ÇøÓòÉÏ¡¹Ñ¹Ò»ÏÂÖмäÅ¥¡£ÕâÓ¦¸Ã»á½«ÎÄ×Ö¾í¶¯µ½ + ¡¸ÓÉÄúËù°´Ò»Ï»¬ÊóµÄµØ·½¡¹Ëù¾ö¶¨µÄλÖᣠ+ +>> µ±°´×¡Öмäʱ£¬ÊÔÖø½«»¬ÊóÉÏÏÂÒÆ¶¯¡£ + Äú»á¿´µ½ÎÄ×ÖËæÖøÄúÒÆ¶¯»¬Êó¶øÉÏÏÂÒÆ¶¯¡£ + + +* µ± EMACS ·¢´ôʱ£¨ WHEN EMACS IS HUNG £© +----------------------------------------- + +Èç¹û Emacs Í£Ö¹»ØÓ¦ÄúµÄÖ¸ÁÄú¿ÉÒÔ¼üÈë C-g À´°²È«µØÍ£Ö¹Ëü¡£ÄúÒ²¿ÉÒÔʹ +Óà C-g À´Í£Ö¹Ö´Ðйý¾ÃµÄÖ¸Áî¡£ + +ÄúÒ²¿ÉÒÔʹÓà C-g À´È¡ÏûÊý×Ö²ÎÊý»òÄú²»ÏëÒªÍê³ÉµÄÖ¸Áî¡£ + +>> ¼üÈë C-u 100 ÒÔÉ趨һ¸ö 100 µÄÊý×Ö²ÎÊý£¬È»ºó¼üÈë C-g¡£ + ÏÖÔÚ¼üÈë C-f¡£ËüÓ¦¸ÃÖ»»áÒÆ¶¯Ò»¸ö×ÖÔª£¬ÒòΪÄúÒѾ­ÒÔ C-g + È¡ÏûÁ˲ÎÊý¡£ + +Èç¹ûÄúÒѾ­²»Ð¡ÐĵؼüÈëÒ»¸ö £¬Äú¿ÉÒÔ C-g À´È¡ÏûËü¡£ + + +* ÎÞЧ»¯µÄÖ¸Á DISABLED COMMANDS £© +------------------------------------- + +ÓÐһЩ Emacs Ö¸Áî±»¡¸ÎÞЧ»¯¡¹ÁË£¬Òò´Ë³õѧÕß²»»áÒâÍâµØÊ¹Óõ½ËüÃÇ¡£ + +Èç¹ûÄú¼üÈëÁËijһ¸öÎÞЧ»¯µÄÖ¸ÁEmacs »áÏÔʾһ¸öѶϢ£¬ËµÃ÷Õâ¸öÖ¸ÁîÊÇʲ +ô£¬²¢ÇÒѯÎÊÄúÊÇ·ñÏëÒª¼ÌÐø£¬È»ºóÖ´ÐÐÕâÖ¸Áî¡£ + +Èç¹ûÄúÕæµÄÏëÒªÊÔÒ»ÏÂÕâ¸öÖ¸ÁÄÇôÔÚµ± Emacs ѯÎÊÄúʱ£¬Çë¼üÈë¿Õ°×¡£Ò» +°ãÀ´Ëµ£¬Èç¹ûÄú²»ÏëÒªÖ´ÐÐÕâ¸öÎÞЧ»¯µÄÖ¸ÁÇëÒÔ¡ºn¡»À´»Ø´ðËü¡£ + +>> ¼üÈë C-x C-l £¨ÕâÊǸöÎÞЧ»¯µÄÖ¸Á + È»ºó¼üÈë n À´»Ø´ðÎÊÌâ¡£ + + +* ´°¸ñ£¨ WINDOWS £© +------------------- + +Emacs ¿ÉÒÔÓÐÊý¸ö´°¸ñ£¬Ã¿Ò»¸öÏÔʾËü×Ô¼ºµÄÎÄ×Ö¡£ÎÒÃÇÔÚÉÔºó»á½âÊÍÈçºÎʹÓà +¶àÖØ´°¸ñ¡£ÏÖÔÚÎÒÃÇÏëÒª½âÊÍÈçºÎ³ýÈ¥¶àÓàµÄ´°¸ñ£¬È»ºó»Øµ½»ù±¾µÄµ¥´°¸ñ±à¼­¡£ +ËüºÜ¼òµ¥£º + + C-x 1 One window £¨¼´£¬³ýÈ¥ÆäËûËùÓеĴ°¸ñ£©¡£ + +ÄÇÊǸö CONTROL-x ºóÃæ¸úÖøÊý×Ö 1 ¡£C-x 1 ½«º¬ÓÐÓαêµÄ´°¸ñÀ©´óµ½Õû¸öÓ©Ä»¡£ +Ëü½«ËùÓÐÆäËûµÄ´°¸ñ³ýÈ¥¡£ + +>> ÒÆ¶¯Óα굽±¾Ðв¢ÇÒ¼üÈë C-u 0 C-l¡£ +>> ¼üÈë CONTROL-h k CONTROL-f¡£ + ¿´¿´Õâ¸ö´°¸ñÔÚµ±Ò»¸öеĴ°¸ñ³öÏÖ + £¨ÒÔÏÔʾÓÐ¹Ø CONTROL-f Ö¸ÁîµÄÎĵµÊ±£©£¬ËüÊÇÈçºÎËõСµÄ¡£ + +>> ¼üÈë C-x 1 ÒÔʹÎĵµÁÐ±í´°¸ñÏûʧ¡£ + +Õâ¸öÖ¸Áî²¢²»ÏñÄúÏÈǰËùѧ¹ýµÄÖ¸ÁîÄǰ㣬Ëü°üÀ¨ÁËÁ½¸ö×ÖÔª¡£ËüÊÇÒÔ×ÖÔª +CONTROL-x ×÷Ϊ¿ªÊ¼¡£ÓÐÒ»Õû¸öϵÁеÄÖ¸ÁîÊÇÒÔ CONTROL-x ×÷Ϊ¿ªÊ¼£»ËüÃÇÖ® +ÖÐÓÐÐí¶àÊÇÓ롸´°¸ñ¡¢µµ°¸¡¢ÔÝ´æÇøÒÔ¼°Ïà¹ØÊÂÎÓйصġ£ÕâЩָÁîÓÐ 2 ¡¢ +3 »ò 4 ¸ö×ÖÔª³¤¡£ + + +* ²åÈëÓëɾ³ý£¨ INSERTING AND DELETING £© +---------------------------------------- + +Èç¹ûÄúÏëÒª²åÈëÎÄ×Ö£¬°ÑËü¼üÈë¾ÍÊÇÁË¡£Äú¿ÉÒÔ¿´µ½µÄ×ÖÔª£¬ÏñÊÇ A ¡¢ 7 ¡¢ * +µÈ£¬±» Emacs ÊÓΪÎÄ×Ö²¢ÇÒ¿ÉÒÔÖ±½Ó²åÈë¡£¼üÈë +£¨ carriage-return ¼ü£©ÒÔ²åÈëÒ»¸ö Newline ×ÖÔª¡£ + +Äú¿ÉÒÔ¼üÈë ÒÔɾ³ýÄú×îºó¼üÈëµÄ×ÖÔª¡£ ÊÇÒ»¸öµÄ¼üÅ̼ü +-- ¾ÍÊÇÄúͨ³£ÔÚ Emacs Í⣬ʹÓÃÀ´¡¸É¾³ýÄú×îºó¼üÈë×ÖÔª¡¹µÄͬһ¸ö¡£Ò»°ãÀ´ +˵ÊǸöÔÚ ÉÏ·½ÊýÐеĴó¼ü£¬Í¨³£±êʾΪ¡ºDelete¡»¡¢¡ºDel¡»»ò +¡ºBackspace¡»¡£ + +Èç¹ûÔÚÄÇÀïÓиö±êʾΪ¡ºBackspace¡»µÄ´ó¼ü£¬ÄÇôÄÇÒ»¸ö¾ÍÊÇÄúʹÓÃÀ´×÷Ϊ + µÄ¼üÁË¡£Ä³¸öµØ·½¿ÉÄÜÒ²»áÓÐÁíÒ»¸ö±êʾΪ¡ºDelete¡»µÄ¼ü£¬µ«ÄǸö +²¢²»ÊÇ ¡£ + +¸üÒ»°ãµØËµ£¬ ½«Î»ì¶Ä¿Ç°ÓαêλÖÃǰһ¸ö×ÖÔª¼ÓÒÔɾ³ý¡£ + +>> ÏÖÔÚ×ö -- ¼üÈëһЩ×ÖÔª£¬È»ºó¼üÈ뼸´Î À´É¾³ýËüÃÇ¡£ + ²»Òªµ£ÐÄÕâ¸öµµ°¸»á±»¸ü¶¯£»Äú²»»áÓ°Ïìµ½Ô­À´µÄ¿ìËÙÖ¸ÄÏ¡£ + £¨ÄúÏÖÔÚ¿´µ½µÄ£©ÕâÒ»¸öÊÇÄúµÄ¸öÈË¿½±´¡£ + +µ±Ò»ÐÐÎÄ×Ö±äµÃ±È¡¸ÔÚ´°¸ñÖеÄÒ»ÐС¹³¤Ê±£¬ÕâÒ»ÐÐÎÄ×ֻᡸ½ÓÐø¡¹µ½µÚ¶þÐд° +¸ñÐС£Õâʱһ¸ö·´Ð±Ïß¡¸\¡¹£¨»òÈç¹ûÄúʹÓô°¿Ú»¯µÄÏÔʾ£¬ÔòÊÇÒ»¸öССÍäÍä +µÄ¼ýÍ·£©»áλÔÚÆäÓұ߽çÒÔÖ¸³ö´ËÐнÓÐøÖø¡£ + +>> ²åÈëÎÄ×Ö£¬Ò»Ö±µ½Äú´ïµ½Óұ߽磬ȻºóÔÙ¼ÌÐø²åÈë¡£ + Äú»á¿´µ½Ò»¸ö½ÓÐøÐгöÏÖ¡£ + +>> ʹÓà ɾ³ýһЩÎÄ×Ö£¬Ö±µ½´ËÐÐÔٴγÉΪһ¸ö´°¸ñÐС£ + ½ÓÐøÐÐÏûʧÁË¡£ + +Äú¿ÉÒÔÏñɾ³ýÆäËû×ÖÔªÒ»ÑùµØÉ¾³ý Newline ×ÖÔª¡£½«Î»ÔÚÁ½ÐÐÖÐµÄ Newline ×Ö +Ԫɾ³ý»áÈÃËüÃǺϲ¢³ÉΪһÐС£Èç¹ûºÏ²¢µÄ½á¹ûʹÕâÒ»ÐÐÌ«³¤£¬ÒÔÖÂÎÞ·¨·ûºÏ´° +¸ñµÄ¿í¶È£¬Ëü»áÒÔÒ»¸ö½ÓÐøÐÐÀ´ÏÔʾ¡£ + +>> ÒÆ¶¯Óα굽±¾ÐеĿªÍ·²¢¼üÈë ¡£ + Õâ»á½«±¾ÐÐÓëÆäǰһÐнáºÏΪһÐС£ + +>> ¼üÈë ÒÔÖØÐ²åÈëÄú¸Õ²Åɾ³ýµÄ Newline ×ÖÔª¡£ + +¼ÇµÃ´ó²¿·ÝµÄ Emacs Ö¸Áî¶¼¿ÉÒÔ¸øÓèÒ»¸öÖØ¸´¼ÆÊý£¨ repeat count £©£»ÕâÒ² +°üÀ¨ÁËÎÄ×Ö×ÖÔª¡£Öظ´Ò»¸öÎÄ×Ö×ÖÔª»á½«Ëü²åÈëÊý´Î¡£ + +>> ÏÖÔÚ¾ÍÊÔһϠ-- ¼üÈë C-u 8 * ÒÔ²åÈë ********¡£ + +ÄúÏÖÔÚÒѾ­Ñ§µ½ÁË¡¸¼üÈë¸öʲô¶«Î÷½ø Emacs ÒÔ¼°ÐÞÕý´íÎ󡹵Ĵ󲿷ݻù±¾·½ +·¨¡£ÄúÒ²¿ÉÒÔ¡¸ÒÔ×Ö»òÐÐΪµ¥Î»¡¹µØÉ¾³ý¡£ÕâÀïÓзݹØì¶¡¸É¾³ý²Ù×÷¡¹µÄÕªÒª£º + + ɾ³ýÓαêËùÔÚµÄ Ç°Ò»¸ö×ÖÔª + C-d ɾ³ýÓαêËùÔÚµÄ ºóÒ»¸ö×ÖÔª + + M- ɾ³ýÓαêËùÔÚµÄ Ç°Ò»¸ö×Ö + M-d ɾ³ýÓαêËùÔÚµÄ ºóÒ»¸ö×Ö + + C-k ɾ³ý´ÓÓαêËùÔÚµ½¡¸ÐÐβ¡¹¼äµÄ×ÖÔª + M-k ɾ³ý´ÓÓαêËùÔÚµ½¡¸¾äβ¡¹¼äµÄ×ÖÔª + +×¢Ò⡸ ºÍ C-d¡¹»¹ÓС¸M- ºÍ M-d¡¹ÊÇÆ½ÐеØ×Ô C-f ºÍ +M-f À©³ä³öÀ´µÄ£¨àÅ£¬ ²¢²»ÊÇ¿ØÖÆ×ÖÔª£¬µ«ÊÇûʲôºÃµ£Ðĵģ©¡£ +C-k ºÍ M-k ÔÚijÖ̶ֳÈÉÏÓë C-e ºÍ M-e Ò»Ñù£¬Èç¹û°Ñ¡¸Ò»ÐС¹ºÍ¡¸Ò»¾ä¡¹×÷ +ΪÀà±ÈµÄ»°¡£ + +ÄúÒ²¿ÉÒÔÖ»ÒÔÒ»ÖÖ·½·¨À´É¾³ý»º³åÇøÄÚµÄÈκβ¿·Ý£¬ÏÈÒÆ¶¯µ½ÄúÏëҪɾ³ýµÄ²¿·Ý +µÄÒ»¶Ë£¬È»ºó¼üÈë C-@ »ò C-SPC £¨ÈÎÒ»¸ö¼´¿É£©¡££¨ SPC Ö¸µÄÊÇ Space Bar +£©ÔÙÒÆµ½ÄDz¿·ÝµÄÁíÒ»¶Ë£¬½ÓÖø¼üÈë C-w ¡£ÕâÑù¾Í»á°Ñ½éì¶ÕâÁ½¸öλÖüäµÄËù +ÓÐÎÄ×Öɾ³ý¡£ + +>> ÒÆ¶¯Óα굽ÉÏÒ»¶Î¿ªÍ·µÄ¡¸Äú¡¹×Ö¡£ +>> ¼üÈë C-SPC ¡£ Emacs Ó¦¸Ã»áÔÚÓ©Ä»µÄÏ·½ÏÔʾһ¸ö¡¸Mark set¡¹Ñ¶Ï¢¡£ +>> ÒÆ¶¯Óα굽µÚ¶þÐÐÖеġ¸¶Ë¡¹×Ö¡£ +>> ¼üÈë C-w ¡£ÕâÑù»á°Ñ´Ó¡¸Äú¡¹¿ªÊ¼µ½¸ÕºÃ¡¸¶Ë¡¹Ö®Ç°µÄÎÄ×Öɾ³ý¡£ + +ҪעÒâµÄÊÇ¡¸É±µô£¨ killing £©¡¹ºÍ¡¸É¾³ý£¨ deleting £©¡¹µÄ²»Í¬ÔÚì¶±»É± +µôµÄ¿ÉÒÔÀ­»Ø£¬¶ø±»É¾³ýµÄÔò²»ÄÜ¡£¡¾ÓеãÄÑÒÔÀí½â£¬Äú¿ÉÒÔÕâôÏ룺(1)¡¸±» +ɱµôµÄ¡¹ÉдæÊ¬¹Ç£¬¶ø¡¸±»É¾³ýµÄ¡¹Ôòʬ¹ÇÎÞ´æÁË£¡¿É¼ûµÃ¶ÔµçÄÔ×ÊÁÏÀ´Ëµ£¬ +¡¸É¾³ý¡¹±È¡¸É±µô¡¹ÑÏÖØ¶àÁË¡£(2)ʵ¼ÊÉÏ£¬¾ÍË㱻ɾ³ýÁË£¬ÎÒÃÇ»¹ÊÇÓм¼Êõ¿É +ÒÔ°ÑËü¾È»ØÀ´£¬ÓÈÆäÊÇÎÄ×Ö×ÊÁÏ£¬Ç°ÌáÊÇɾ³ýºó²»ÄܽøÐÐʵÌå¼ÇÒäÌåµÄ¸ñʽ»¯¶¯ +×÷¡£µ«Õâ¶Ôì¶Ò»°ãʹÓÃÕß¶øÑÔÊDz»¿ÉÄܵģ¬Òò´Ë¾Í²»¿¼ÂÇÕâÇéÐÎÁË¡£¡¿ÖØÐ²åÈë +±»É±µôµÄÎÄ×Ö³ÆÎª¡¸À­»Ø£¨ yanking £©¡¹¡£Ò»°ã¶øÑÔ£¬¿ÉÒÔÒÆ³ýµôºÜ¶àÎÄ×ÖµÄ +Ö¸Áî»á°ÑÄÇЩÎÄ×Ö´¢´æÆðÀ´£¨ËüÃÇÉ趨³ÉÄú¿ÉÒÔ½«ÎÄ×ÖÀ­»Ø£©£¬¶øÄÇЩֻÊÇɾ³ý +Ò»¸ö×ÖÔª»òÕßÖ»ÊdzýÈ¥¿Õ°×Ðлò¿Õ°×µÄÖ¸ÁÔò²»»á´¢´æÕâЩ±»É¾³ýµÄÎÄ×Ö£¨Òò +´ËÄú²»Äܽ«ÄÇÎÄ×ÖÀ­»Ø£©¡£ + +>> ÒÆ¶¯Óα굽һ·Ç¿Õ°×ÐеĿªÊ¼¡£ + È»ºó¼üÈë C-k ɱµôÔÚÄÇÒ»ÐÐÉϵÄÎÄ×Ö¡£ +>> µÚ¶þ´Î¼üÈë C-k¡£Äú½«»á¿´µ½Ëüɱµô¸úÔÚÄÇÒ»ÐкóÃæµÄ Newline ×ÖÔª¡£ + +Çë×¢Òâµ¥¶ÀµÄ C-k »á°ÑÒ»ÐеÄÄÚÈÝɱµô£¬¶øµÚ¶þ¸ö C-k Ôò»áɱµôÄÇÒ»Ðб¾Éí£¬ +²¢ÇÒʹµÃËùÓÐÆäËûµÄÐÐÏòÉÏÒÆ¶¯¡£C-k ÒÔºÜÌØ±ðµÄ·½Ê½À´´¦ÀíÊý×Ö²ÎÊý£¬Ëü»áɱ +µôºÜ¶àÐÐÒÔ¼°ËüÃǵÄÄÚÈÝ£¬Õâ²»½ö½öÊÇÖØ¸´¶øÒÑ£¬C-u 2 C-k »á°ÑÁ½ÐÐÒÔ¼°ËüÃÇ +µÄ Newline ×ÖԪɱµô£»Èç¹ûÖ»ÊǼüÈë C-k Á½´Î²¢²»»áÕâÑù¡£ + +½«±»É±µôµÄÎÄ×ֻظ´µÄ¶¯×÷³ÆÎª¡¸À­»Ø£¨ yanking £©¡¹¡££¨°ÑËüÏëÏñ³ÉÄú°Ñ±ð +ÈË´ÓÄúÉíÉ϶áÈ¥µÄ¶«Î÷ÃÍÁ¦µØÀ­»ØÀ´£©Äú¿ÉÒÔÔÚÄúɾ³ýÎÄ×ֵĵط½À­»Ø£¬Ò²¿ÉÒÔ +ÔÚÎÄ×ֵįäËûµØ·½À­»Ø¡£Äú¿ÉÒÔÀ­»ØÊý´ÎͬÑùµÄÎÄ×Ö£¬ÒÔÖÆ×÷ËüµÄÊý·Ý¿½±´¡£ + +À­»ØµÄÖ¸ÁîΪ C-y¡£Ëü»áÔÚĿǰÓαêµÄλÖÃÖØÐ²åÈë×îºóɱµôµÄÎÄ×Ö¡£ + +>> ÊÔÊÔ¿´£»¼üÈë C-y ½«ÎÄ×ÖÀ­»Ø¡£ + +Èç¹ûÄúÁ¬ÐøµØ×öÁËÊý´Î C-k£¬ËùÓб»É±µôµÄÎÄ×Ö¶¼»á±»´¢´æÔÚÒ»Æð£¬Òò´Ë×öÒ»´Î +C-y ¾Í»á°ÑËùÓÐÕâЩÐж¼À­»ØÀ´¡£ + +>> ÏÖÔÚ×öһϣ¬¼üÈë C-k Êý´Î¡£ + +ÏÖÔÚÒª»Ø¸´ÄÇЩɱµôµÄÎÄ×Ö£º + +>> ¼üÈë C-y¡£È»ºó°ÑÓαêÍùÏÂÒÆ¶¯¸ö¼¸ÐУ¬ÔÙÒ»´Î¼üÈë C-y¡£ + ÄúÏÖÔÚÖªµÀÈçºÎ¸´ÖÆÄ³Ð©ÎÄ×ÖÁË¡£ + +Èç¹ûÄúÓÐһЩÎÄ×ÖÏëÒªÀ­»ØÀ´£¬µ«ÊǺóÀ´ÄúÓÖɱÁËijЩ¶«Î÷£¬ÄÇô¸ÃÔõô×öÄØ£¿ +C-y »á°Ñ×î½üɱµôµÄÀ­»ØÀ´£¬µ«ÊÇÏÈǰµÄÎÄ×Ö²¢Ã»ÓÐÏûʧ£¬Äú¿ÉÒÔÓà M-y À´»Ø +µ½Ëü¡£µ±ÄúÒѾ­Ê¹Óà C-y °Ñ×î½üɱµôµÄÀ­»ØÀ´Ö®ºó£¬ÔÙ¼üÈë M-y À´°ÑÕâЩÀ­»Ø +À´µÄÎÄ×ÖÌæ»»ÎªÏÈǰËùɱµôµÄ¡£Ò»´ÎÓÖÒ»´ÎµØ¼üÈë M-y »á°ÑÏÈǰÔÙÏÈǰËùɱµô +µÄÎÄ×Ö´ø»ØÀ´¡£µ±Äúµ½ÁËÄúÏëÕÒµÄÎÄ×Öʱ£¬Äú²»ÐèÒª×öÈκÎÊÂÀ´±£´æËü£¬Ö»Òª¼Ì +ÐøÄúµÄ±à¼­£¬°ÑÕâЩÒÑÀ­»ØµÄÎÄ×ÖÁôÔÚÄÇÀï¾ÍºÃ¡£ + +Èç¹ûÄú M-y ×öÁ˺ܶà´Î£¬Äú¿ÉÄÜ»á»Øµ½Æðʼµã£¬Ò²¾ÍÊÇ×î½üɱµôµÄ¡£ + +>> ɱµôÒ»ÐУ¬µ½´¦ÈÆÈÆ£¬ÔÙɱµôÁíÒ»ÐС£ + È»ºóÓà C-y ½«µÚ¶þ´ÎɱµôµÄÄÇÐдø»ØÀ´¡£ + È»ºóÔÙÓà M-y£¬Ëü½«»á±»µÚÒ»´ÎɱµôµÄÄÇÐÐÈ¡´ú¡£ + ÔÙ×ö¼¸´Î M-y ¿´¿´Äú»áµÃµ½Ê²Ã´¡£ + ²»¼ä¶ÏµØ×ö£¬Ö±µ½µÚ¶þ¸öɱµôÐлØÀ´£¬ÔÙ×ö¸ö¼¸´Î¡£ + Èç¹ûÄúÏëµÄ»°£¬Äú¿ÉÒÔÊÔÖø¸ø M-y ÕýµÄ»òÊǸºµÄ²ÎÊý¡£ + + +* È¡Ïû¶¯×÷£¨ UNDO £© +-------------------- + +Èç¹ûÄú¶ÔÎÄ×Ö×öÁËһЩ¸Ä±ä£¬ºóÀ´¾õµÃËüÊǸö´íÎó£¬Äú¿ÉÒÔ Undo Ö¸ÁîÈ¡ÏûÕâÒ» +¸ö¸Ä±ä£¬C-x u¡£ + +ͨ³£ C-x u »á°ÑÒ»¸öÖ¸ÁîËùÔì³ÉµÄ¸Ä±äÈ¡Ïûµô£»Èç¹ûÄúÔÚÒ»ÐÐÖÐÖØ¸´ÁËÐí¶à´Î +C-x u£¬Ã¿Ò»¸öÖØ¸´¶¼»áÈ¡Ïû¶îÍâµÄÖ¸Áî¡£ + +µ«ÊÇÓÐÁ½¸öÀýÍ⣺ +(1) ûÓиıäÎÄ×ÖµÄÖ¸Áî²»Ë㣨Õâ°üÀ¨ÁËÓαêÒÆ¶¯µÄÖ¸ÁÓоíÖáÖ¸Á£» +(2) ×ÔÐмüÈëµÄ×ÖÔªÒÔһȺһȺ -- ÿȺ×î¶à 20 ¸ö -- À´½øÐд¦Àí¡£ + £¨ÕâÊÇΪÁ˼õÉÙÄúÔÚÈ¡Ïû¡¸²åÈëÎÄ×Ö¶¯×÷¡¹Ëù±ØÐë¼üÈë C-x u µÄ´ÎÊý£© + +>> ÒÔ C-k ½«ÕâÒ»ÐÐɱµô£¬È»ºó¼üÈë C-x u ºóËü»áÔٴγöÏÖ¡£ + +C-_ ÊÇÁíÒ»¸öÈ¡ÏûÖ¸ÁËüµÄ×÷ÓÃ¾ÍºÍ C-x u Ò»Ñù£¬µ«ÊÇÔÚÒ»ÐÐÖÐËü±È½ÏÈÝÒ× +¼üÈëÐí¶à´Î¡£C-_ µÄȱµãÊÇÔÚijЩ¼üÅÌÖв»Ì«Çå³þÈçºÎ¼üÈëËü£¬ÕâÒ²ÊÇΪʲôÎÒ +ÃÇͬʱÌṩ C-x u µÄÔ­Òò¡£ÔÚijЩÖÕ¶Ë»ú£¬Äú¿ÉÒÔ°´×¡ CONTROL ÔÙ¼üÈë / £¬ +À´¼üÈë C-_¡£ + +Ò»¸öÊý×Ö²ÎÊý¶Ô C-_ or C-x u À´Ëµ£¬ÊÇ×÷ÎªÖØ¸´µÄ´ÎÊý¡£ + + +* µµ°¸£¨ FILE £© +---------------- + +ΪÁËʹÄú±à¼­µÄÎÄ×ÖÓÀ¾Ã±£´æ£¬Äú±ØÐë°ÑËü·Åµ½Ò»¸öµµ°¸ÖС£²»È»£¬µ±ÄúÀ뿪 +Emacs ºó£¬Ëü¾Í»áËæÖ®Ïûʧ¡£ÎªÁ˰ÑÄúµÄÎÄ×Ö·ÅÔÚµµ°¸ÖУ¬Äú±ØÐëÔÚÄú¼üÈëÕâЩ +ÎÄ×Öǰ¡¸ÕÒ£¨ find £©¡¹µµ°¸¡££¨ÕâÒ²³ÆÖ®Îª¡¸°Ý·Ã£¨ visiting £©¡¹µµ°¸£© + +ÕÒÒ»¸öµµ°¸±íʾÄú¿ÉÒÔÔÚ Emacs Öп´µ½µµ°¸µÄÄÚÈÝ¡£´ÓÐí¶à·½ÃæÀ´¿´£¬Ëü¾ÍÏñ +ÊÇÄúÖ±½Ó±à¼­ÄǸöµµ°¸Ò»Ñù¡£È»¶ø£¬Ö±µ½Äú¡¸´¢´æ¡¹Õâ¸öµµ°¸Ö®Ç°£¬ÄúʹÓà +Emacs ±à¼­Ëù×ö³öµÄ¸Ä±ä²¢²»»á±£´æÏÂÀ´¡£Õâ¾ÍÊÇΪʲôµ±Äú²»ÏëҪʱ£¬Äú¿ÉÒÔ +±ÜÃâÁôÏÂÐ޸ĵ½Ò»°ëµÄµµ°¸ÔÚϵͳÖС£¼´Ê¹µ±Äú´¢´æÁË£¬Emacs Ò²»á°ÑÔ­±¾µÄµµ +°¸ÒÔÒ»¸ö²»Í¬µÄÃû³Æ±£ÁôÏÂÀ´£¬ÈôÄúÉÔºó¾õµÃÄúµÄ¸Ä±äÊÇÒ»¸ö´íÎóµÄ»°£¬¾Í¿ÉÒÔ +ʹÓÃËü¡£ + +ÔÚ¿¿½üÓ©Ä»µÄÏ·½£¬Äú¿ÉÒÔ¿´µ½ÓÉÆÆÕۺſªÊ¼Óë½áÊøµÄÒ»ÐÐ -- ͨ³£ÊÇÒÔ¡¸--:-- +TUTORIAL.cn¡¹»òÆäËûÀàËÆµÄ¶«Î÷×÷Ϊ¿ªÊ¼¡£ÕâÊÇÓ©Ä»µÄÒ»²¿·Ö£¬Í¨³£ÓÃÀ´±íʾ +ÄúÕýÔڰݷõĵµ°¸¡£ÏÖÔÚ£¬ÄúÕýÔڰݷõĵµ°¸½Ð×ö¡¸TUTORIAL.cn¡¹£¬ËüÊÇÄú¸ö +È˵Ŀ½±´¡£µ±ÄúÒÔ Emacs ÕÒ³öÒ»¸öµµ°¸Ê±£¬ÄǸöµµ°¸µÄÃû×־ͻá³öÏÖÔÚÄǸöµØ +·½¡£ + +¹Øì¶Ñ°ÕÒµµ°¸µÄÖ¸ÁîÖУ¬ÓÐÒ»¸öºÜÌØ±ðµÄÊÇ£¬Äú±ØÐë˵³öÕâ¸öÄúÏëÒªµÄµµ°¸Ãû³Æ¡£ +ÎÒÃÇ˵Õâ¸öÖ¸Á´ÓÖÕ¶Ë»úÖжÁ½øÁËÒ»¸ö²ÎÊý¡¹¡££¨ÔÚÕâ¸öÀý×ÓÖУ¬Õâ²ÎÊý¾ÍÊÇ +µµ°¸µÄÃû³Æ£©µ±Äú¼üÈëÕâ¸öÖ¸Áîºó£¬ + + C-x C-f ÕÒÒ»¸öµµ°¸ + +Emacs »áÒªÄú¼üÈëµµÃû¡£ÄúËù¼üÈëµÄµµÃû»á³öÏÖÔÚÓ©Ä»µÄµ×ÐС£ÔÚ±»ÓÃÀ´×÷ΪÕâ +ÖÖÐÎʽµÄÊäÈëʱ£¬µ×Ðб»³ÆÎªÐ¡»º³åÇø£¨ minibuffer £©¡£Äú¿ÉÒÔʹÓÃÕý³£µÄ +Emacs ±à¼­Ö¸ÁîÀ´±à¼­Õâ¸öµµÃû¡£ + +µ±ÄúÕýÔÚ¼üÈëµµÃûʱ£¨»òÊÇÈκεÄС»º³åÇøÊäÈëʱ£©£¬Äú¿ÉÒÔÓà C-g Õâ¸öÖ¸Áî +À´È¡ÏûËü¡£ + +>> ¼üÈë C-x C-f£¬È»ºó¼üÈë C-g¡£Õâ»áÈ¡ÏûС»º³åÇø£¬ + ²¢ÇÒÒ²»áÈ¡ÏûʹÓÃÕâ¸öС»º³åÇøµÄ C-x C-f Ö¸Áî¡£ + Òò´ËÄúûÓÐÕÒÈκεµ°¸¡£ + +µ±ÄúÒѾ­¼üÈëÁËÕâ¸öµµÃû£¬Çë¼üÈë À´½áÊøËü¡£È»ºó C-x C-f Ö¸Áî¾Í +»á¿ªÊ¼ÔË×÷£¬²¢ÇÒÕÒµ½ÄúËùÑ¡ÔñµÄµµ°¸¡£Ð¡»º³åÇøÔÚµ± C-x C-f Ö¸Áî½áÊøÊ±¾Í +»áÏûʧ¡£ + +¹ýÁËÒ»»á¶ù£¬µµ°¸µÄÄÚÈݾͻá³öÏÖÔÚÓ©Ä»£¬È»ºóÄú¾Í¿ÉÒԱ༭ËüµÄÄÚÈÝ¡£µ±ÄúÏë +ÒªÄúµÄ¸Ä±äÓÀ¾Ã±£´æÊ±£¬¼üÈëÕâ¸öÖ¸Á + + C-x C-s ´¢´æÕâ¸öµµ°¸ + +Õâ»á°ÑÔÚ Emacs ÖеÄÎÄ×Ö¸´ÖƵ½µµ°¸ÖС£µ±ÄúµÚÒ»´Î×öÕâ¸ö¶¯×÷ʱ£¬Emacs »á +½«Ô­Ê¼µÄµµ°¸ÖØÐÂÃüÃû³ÉÒ»¸öеÄÃû×Ö£¬ÕâÑùËü²Å²»»áÏûʧ¡£ÐµÄÃû×Öͨ³£»á¼Ó +È롸~¡¹µ½Ô­Ê¼µµ°¸µÄÃû×ÖºóÃæ¡£ + +µ±´¢´æ½áÊøÊ±£¬Emacs »á°ÑдÈëµµ°¸µÄÃû×ÖÁгöÀ´¡£ÄúÓ¦¸Ã¾­³£µØ½øÐд¢´æ£¬Õâ +Ñù×ÓÈç¹ûϵͳµ±»úʱ£¬Äú¾Í²»»áËðʧ̫¶à¹¤×÷¡£ + +>> ¼üÈë C-x C-s ÒÔ´¢´æ±¾¿ìËÙÖ¸ÄϵÄÄúµÄ¿½±´¡£ + Õâ»á°Ñ¡¸Wrote ...TUTORIAL.cn¡¹Õâ¸öѶϢÏÔʾÔÚÓ©Ä»µÄÏ·½¡£ + +×¢Ò⣺ÔÚijЩϵͳÖУ¬¼üÈë C-x C-s ½«»á°ÑÓ©Ä»¶³½á£¬Äú½«¿´²»µ½´Ó Emacs À´ +µÄÈκÎÊä³ö¡£Õâ±íʾ²Ù×÷ϵͳһ¸ö³ÆÎª¡¸Á÷³Ì¿ØÖÆ¡¹µÄ¡¸¹¦ÄÜ¡¹½« C-s Ö¸ÁîÀ¹ +½Ø×¡£¬²¢ÇÒ²»ÈÃËü´«µ½ Emacs¡£ÒªÈ¡ÏûÓ©Ä»µÄ¶³½á£¬Çë¼üÈë C-q¡£È»ºóµ½ Emacs +ʹÓÃÊÖ²áÖп´¿´¶Ôì¶¡¸½¥½øÊ½ËÑѰµÄͬʱ½øÈ루 Spontaneous Entry to +Incremental Search £©¡¹Õâ¸öÖ÷Ì⣬ÒÔÈ¡µÃ´¦ÀíÕâ¸ö¡¸¹¦ÄÜ¡¹µÄ½¨Òé¡£ + +Äú¿ÉÒÔÕÒ³öÒ»¸öÒѾ­´æÔڵĵµ°¸£¬È»ºó¹Û¿´Ëü»ò±à¼­Ëü¡£ÄúÒ²¿ÉÒÔÕÒÒ»¸ö»¹Ã»ÓÐ +´æÔÚ¹ýµÄµµ°¸¡£ÕâÊÇÒÔ Emacs ½¨Á¢Ò»¸öµµ°¸µÄ·½·¨£ºÕÒÕâ¸öµµ°¸£¬¾Í´ÓÁ㿪ʼ£¬ +È»ºó¿ªÊ¼²åÈëÎÄ×Öµ½Õâ¸öµµ°¸ÖС£µ±ÄúÒªÇ󡸴¢´æ¡¹Õâ¸öµµ°¸£¬Emacs »áÕæµÄ½¨ +Á¢Ò»¸öµµ°¸£¬²¢°ÑÄúËù²åÈëµÄÎÄ×Ö°Úµ½µµ°¸ÖС£´ÓÄÇʱºò¿ªÊ¼£¬Äú¾Í¿ÉÒÔµ±×Ô¼º +ÊÇÔڱ༭һ¸öÒѾ­´æÔڵĵµ°¸ÁË¡£ + + +* »º³åÇø£¨ BUFFER £© +-------------------- + +Èç¹ûÄúÒÔ C-x C-f¡¸ÕÒ¡¹µÚ¶þ¸öµµ°¸£¬µÚÒ»¸öµµ°¸ÈÔÈ»´æÔÚ Emacs ÄÚ¡£ÒªÇл» +»ØËü£¬Äú¿ÉÒÔ C-x C-f ÔÙÕÒËüÒ»´Î¡£ÒÀ´Ë·½Ê½£¬Äú¿ÉÒÔÔÚ Emacs ÄÚ¿ªÆô²»ÉÙµµ +°¸¡£ + +>> ÒÔ¼üÈë C-x C-f foo µÄ·½Ê½½¨Á¢Ò»¸öÃûΪ¡¸foo¡¹µÄµµ°¸¡£ + È»ºó²åÈëһЩÎÄ×Ö£¬±à¼­Ëü£¬È»ºóÔÙÒÔ C-x C-s ´¢´æ¡¸foo¡¹¡£ + ×îºó£¬¼üÈë C-x C-f TUTORIAL.cn »Øµ½±¾¿ìËÙÖ¸ÄÏ¡£ + +Emacs ´¢´æÃ¿¸öµµ°¸µÄÎÄ×ÖÔÚÒ»¸ö³ÆÎª¡¸»º³åÇø£¨ buffer £©¡¹µÄÎï¼þÖС£ÕÒÒ» +¸öµµ°¸»áÔÚ Emacs ÄÚ²¿½¨Á¢Ò»¸ö»º³åÇø¡£ÏëÒª¿´Ä¿Ç°´æÔÚÄúµÄ Emacs µÄ¹¤×÷ÖÐ +»º³åÇøÁÐ±í£¬¼üÈë + + C-x C-b Áгö»º³åÇø + +>> ÏÖÔÚ¾ÍÊÔһϠC-x C-b + +¿´¿´Ã¿Ò»¸ö»º³åÇøÊÇÈçºÎÃüÃûµÄ£¬ËüÒ²¿ÉÄÜͬʱӵÓÐÒ»¸ö¡¸´¢´æÆäÄÚÈݵĵµ°¸¡¹ +µÄÃû³Æ¡£ÄúÔÚÒ»¸ö Emacs ´°¸ñËù¼ûµ½µÄ¡¸ÈκΡ¹ÎÄ×Ö¶¼ÊÇij¸ö»º³åÇøµÄÒ»²¿·Ý¡£ + +>> ¼üÈë C-x 1 ÒÔÀ뿪»º³åÁбí + +µ±ÄúÓÐÊý¸ö»º³åÇøÊ±£¬ÔÚÈκÎʱºòÆäÖÐÖ»ÓÐÒ»¸öÊÇ¡¸Ä¿Ç°×÷Óõġ¹¡£¶øÄǸö¾ÍÊÇ +ÄúÔڱ༭µÄ»º³åÇø¡£Èç¹ûÄúÏëÒª±à¼­ÁíÒ»¸ö»º³åÇø£¬ÄÇôÄú±ØÐ롸Çл»¡¹µ½Ëü¡£ +Èç¹ûÄúÏëÒªÇл»µ½Á¬½Óµ½Ä³¸öµµ°¸µÄ»º³åÇø£¬Äú¿ÉÒÔÓà C-x C-f ÔٴΰݷÃÄǸö +µµ°¸¡£µ«ÊÇÓиö±È½Ï¼òµ¥µÄ·½Ê½£ºÊ¹Óà C-x b £»ÔÚÕâ¸öÖ¸ÁîÖУ¬Äú±ØÐë¼üÈ뻺 +³åÇøµÄÃû³Æ¡£ + +>> ¼üÈë C-x b foo ÒԻص½º¬Óеµ°¸¡¸foo¡¹µÄÎÄ×ֵĻº³åÇø¡£ + È»ºó½¨Èë C-x b TUTORIAL ÒԻص½±¾¿ìËÙÖ¸ÄÏ¡£ + +¾Í´ó²¿·ÝµÄÇé¿öÀ´Ëµ£¬»º³åÇøµÄÃû³ÆÓëµµ°¸µÄÃû³ÆÊÇÏàͬµÄ£¨³ýÈ¥Á˵µÃûÖеÄÄ¿ +¼²¿·Ý£©¡£È»¶ø²¢²»×ÜÊÇÈç´Ë¡£ÄúÒÔ C-x C-b ËùÖÆ×÷³öµÄ»º³åÇøÁбí×ÜÊÇ»áÏÔ +ʾ¸øÄúÿһ¸ö»º³åÇøµÄÃû³Æ¡£ + +ÄúÔÚÒ»¸ö Emacs ´°¸ñÖÐËù¼ûµ½µÄ¡¸ÈκΡ¹ÎÄ×Ö×ÜÊÇij¸ö»º³åÇøµÄÒ»²¿·Ý¡£ÓÐÒ» +Щ»º³åÇø²¢Ã»ÓÐÁ¬½Óµ½µµ°¸¡£¾ÙÀýÀ´Ëµ£¬ÃüÃûΪ¡¸*Buffer List*¡¹µÄ»º³åÇø²¢ +ûÓÐÈκεµ°¸¡£ËüÊǰüº¬ÓÐÄúÒÔ C-x C-b Ö¸ÁîËùÖÆ×÷³öÀ´µÄ»º³åÇøÁбíµÄ»º³å +Çø¡£ÃüÃûΪ¡¸*Messages*¡¹µÄ»º³åÇøÒ²Ã»ÓÐÁ¬½Óµ½Èκεµ°¸£»ËüÔÚÄúµÄ Emacs +²Ù×÷½×¶ÎÖаüº¬³öÏÖÔÚµ×ÐеÄѶϢ¡£ + +>> ¼üÈë C-x b *Messages* À´¿´¿´Ñ¶Ï¢µÄ»º³åÇø¡£ + È»ºó¼üÈë C-x b TUTORIAL »Øµ½±¾¿ìËÙÖ¸ÄÏ¡£ + +Èç¹ûÄú¶Ôµµ°¸ÖеÄÎÄ×Ö×öÁËÐ޸ģ¬È»ºóÕÒÁíÒ»µµ°¸£¬Õâ¸ö¶¯×÷²¢²»»á´¢´æµÚÒ»¸ö +µµ°¸¡£ËüµÄÐÞ¸ÄÈԾɴæÔÚ Emacs ÖУ¬Ò²¾ÍÊÇÔÚÄǸöµµ°¸µÄ»º³åÇøÖС£¶Ôì¶µÚ¶þ +¸öµµ°¸µÄ½¨Á¢»ò±à¼­²¢²»»áÓ°Ïìµ½µÚÒ»¸öµµ°¸µÄ»º³åÇø¡£ÕâÑù×ӷdz£ÓÐÓ㬵«Õâ +¸öÇéÐÎÒ²±íÃ÷ÁËÄúÐèÒª¡¸Ò»¸ö·½±ãµÄ·½·¨¡¹À´´¢´æµÚÒ»¸öµµ°¸µÄ»º³åÇø¡£Ö»ÊÇΪ +´¢´æµÚÒ»¸öµµ°¸¾Í±ØÐëÒÔ C-x C-f Çл»»º³åÇø£¬²ÅÄÜÒÔ C-x C-s ½«Ëü´¢´æ£¬×Ü +ÊǸöÈÃÈËÌÖÑáµÄ¹ý³Ì¡£Òò´ËÎÒÃÇÓÐ + + C-x s ´¢´æÒ»Ð©»º³åÇø + +C-x s »áѯÎÊÄú¹Øì¶ÄúÒÑ×ö³öÐ޸ĵ«»¹Ã»´¢´æµÄÿһ¸ö»º³åÇø¡£Ëü»áÎÊÄú£¬¶Ôì¶ +ÿһ¸öÕâÑùµÄ»º³åÇø£¬ÊÇ·ñÒª´¢´æ£¿ + +>> ²åÈëÒ»ÐÐÎÄ×Ö£¬È»ºó¼üÈë C-x s¡£ + ËüÓ¦¸Ã»áÎÊÄúÊÇ·ñÒª´¢´æÃûΪ TUTORIAL.cn µÄ»º³åÇø¡£ + ¼üÈ롺y¡»ÒԻشðÒª´¢´æ¡£ + + +* À©³äÖ¸Á£¨ EXTENDING THE COMMAND SET £© +------------------------------------------- + +ÓÉì¶ Emacs ÓµÓÐÌ«¶àÖ¸Á¼´±ãʹÓÃÉÏËùÓÐµÄ CONTROL ºÍ META ×ÖÔª£¬Ò²Ã»°ì +·¨ÍêÈ«°ÚÉÏ¡£Emacs ÒÔ X£¨À©³ä¡ºeXtend¡»£©Ö¸ÁîÀ´½â¾öÕâ¸öÎÊÌâ¡£À©³äÖ¸ÁîÓÐ +Á½ÖÖÐÍʽ£º + + C-x ×ÖÔªÀ©³ä¡£ºóÃæ¸úÖøÒ»¸ö×ÖÔª¡£ + M-x ÓÐÃû³ÆµÄÖ¸ÁîÀ©³ä¡£ºóÃæ¸úÖøÒ»¸ö³¤µÄÃû³Æ¡£ + +»¹ÓÐһЩָÁîͨ³£À´ËµÊǺÜÓÐÓõ쬵«ÊDZÈÄúÒѾ­Ñ§µ½µÄÖ¸Áî½ÏÉÙʹÓá£ÄúÒѾ­ +¿´¹ýÆäÖÐÁ½¸ö£ºµµ°¸Ö¸ÁîÖÐµÄ C-x C-f ȥѰÕÒ£¬ÒÔ¼° C-x C-s È¥´¢´æ¡£ÆäËûµÄ +Àý×ÓÔòÓнáÊø Emacs ½×¶ÎµÄÖ¸Áî -- Õâ¸öÖ¸ÁîÊÇ C-x C-c¡££¨²»Òªµ£ÐÄÄú»áʧ +È¥ÒѾ­×ö³öµÄ¸Ä±ä£¬C-x C-c ÔÚËüɱµô Emacs ֮ǰ»áÌṩ´¢´æÃ¿Ò»¸ö±ä¶¯µÄµµ +°¸µÄ»ú»á¡££© + +C-z ÊÇ *ÔÝʱ* À뿪 Emacs µÄÖ¸Áî -- Òò´ËÄúÉÔºó¿ÉÒԻص½Í¬ÑùµÄ Emacs ½×¶Î¡£ + +ÔÚijЩÔÊÐíËüµÄ×÷ÓõÄϵͳÖУ¬ C-z »á¡¸ÔÝͣס£¨ suspends £©¡¹Emacs£¬Ò²¾Í +ÊÇ˵£¬Ëü»á»Øµ½ shell µ«²»»á°Ñ Emacs »Ùµô¡£ÔÚ×î³£ÓÃµÄ shell ÖУ¬Äú¿ÉÒÔ +Óáºfg¡»»ò¡º%emacs¡»Á½ÖÖÖ¸Áî»Ö¸´ Emacs¡£ + +ÔÚûÓÐÌṩÔÝÍ£¹¦ÄܵÄϵͳÖУ¬C-z »áÔÚ Emacs µ×Ͻ¨Á¢Ò»¸ö subshell ÒÔÈà +ÄúÓлú»áÖ´ÐÐÆäËûµÄ³Ìʽ£¬²¢ÇÒÔÚÉÔºó»Øµ½ Emacs£¬Ëü²¢Ã»ÓÐÕæµÄÀ뿪 Emacs¡£ +ÔÚÕâ¸öÀý×ÓÖУ¬shell Ö¸Áexit¡»ÊÇ´Ósubshell »Øµ½ Emacs µÄͨ³£·½Ê½¡£ + +ʹÓà C-x C-c µÄʱ»úÊǵ±Äú´òËãÒªµÇ³öʱ¡£ËüÒ²·Ç³£ÊʺÏÓÃÀ´À뿪±»ÆäËûÓʼþ +´¦Àí³Ìʽ£¬ÒÔ¼°Ðí¶à²»Í¬µÄÓ¦ÓóÌʽËùÆô¶¯µÄ Emacs¡£È»¶øÔÚÒ»°ãµÄ×´¿öÏ£¬Èç +¹ûÄú²»´òËãµÇ³ö£¬×îºÃÊÇ°Ñ Emacs ÔÝÍ£¶ø²»ÊÇÀ뿪Ëü¡£ + +ÓÐÐí¶à C-x µÄÖ¸Áî¡£ÕâÀïÊÇÒ»·ÝÄúÒѾ­Ñ§¹ýµÄÁÐ±í£º + + C-x C-f ÕÒµµ°¸¡£ + C-x C-s ´¢´æµµ°¸¡£ + C-x C-b Áгö»º³åÇø¡£ + C-x C-c À뿪 Emacs¡£ + C-x 1 ³ýÁËÒ»¸öÍ⣬ɾȥÆäËûËùÓеĴ°¸ñ¡£ + C-x u È¡Ïû¶¯×÷¡£ + +ÒÔÀ©³äÀ´ÃüÃûµÄÖ¸Áîͨ³£ÊDz»Ì«³£Ê¹ÓõÄÖ¸Á»òÊÇÖ»ÔÚÌØ¶¨µÄģʽϲŻáʹÓà +µÄÖ¸Áî¡£Ò»¸öÀý×ÓÊÇÈ¡´ú×Ö´®Ö¸ÁËü»áÈ«ÓòµØ½«Ò»¸ö×Ö´®ÒÔÁíÒ»¸öÀ´È¡´ú¡£µ± +Äú¼üÈë M-x ʱ£¬Emacs »áÔÚÓ©Ä»µÄµ×¶ËѯÎÊÄú£¬È»ºóÄúÒ²Ó¦¸Ã¼üÈëÕâ¸öÖ¸ÁîµÄ +Ãû³Æ¡£ÔÚÕâ¸öÀý×ÓÖÐÊÇ¡ºreplace-string¡»Ö»Òª¼üÈ롺repl s¡»£¬È»ºó +Emacs ½«»á²¹ÆëÕâ¸öÃû³Æ¡£ÒÔ À´½áÊøÕâ¸öÖ¸ÁîÃû³Æ¡£ + +È¡´ú×Ö´®Ö¸ÁîÐèÒªÁ½¸ö²ÎÊý -- ±»È¡´úµÄ×Ö´®ÒÔ¼°ÓÃÀ´È¡´úËüµÄ×Ö´®¡£Äú±ØÐëÒÔ +Newline ×ÖÔªÀ´½áÊøÃ¿Ò»¸ö²ÎÊý¡£ + +>> ½«ÓαêÒÆµ½±¾ÐеÄÏÂÁ½Ðпհף¬È»ºó¼üÈë + M-x repl schangedaltered¡£ + + ¡¾ÎªÁË˵Ã÷µÄÄ¿µÄ£¬ì¶Ï±£ÁôÒ»ÐÐÔ­ÎÄ¡£ + Notice how this line has changed: you've replaced... ¡¿ + +Çë×¢ÒâÕâÒ»ÐÐÊÇÔõô¸Ä±äµÄ£ºÔÚÓαêµÄÆðʼλÖÃÖ®ºó£¬ÄúÒѾ­½« c-h-a-n-g-e-d +Õâ¸ö×Ö -- ²»¹ÜËüÔÚÄÄÀï³öÏÖ -- ÒÔ¡¸altered¡¹Õâ¸ö×ÖÀ´È¡´úÁË¡£ + + +* ×Ô¶¯´æµµ£¨ AUTO SAVE £© +------------------------- + +µ±ÄúÔÚÒ»¸öµµ°¸ÖÐ×öÁËÐ޸쬵«ÊÇ»¹Ã»Óн«ËüÃÇ´¢´æÆðÀ´£¬ÄÇôÈç¹ûÄúµÄµçÄÔµ± +»ú£¬ËüÃǽ«ÓпÉÄÜÒÅʧ¡£ÎªÁ˱ÜÃâÕâÖÖÇéÐη¢ÉúÔÚÄúµÄÉíÉÏ£¬Emacs »á¶¨ÆÚµØ½« +ÄúÕýÔڱ༭µÄµµ°¸Ð´È롸×Ô¶¯´¢´æ¡¹µµ°¸ÖС£×Ô¶¯´¢´æµµ°¸ÔÚµµÃûµÄǰºó»á¸÷ÓÐ +Ò»¸ö # ·ûºÅ£»¾ÙÀýÀ´Ëµ£¬Èç¹ûÄúµÄµµ°¸ÃûΪ¡¸hello.c¡¹£¬ÄÇôËüµÄ×Ô¶¯´¢´æµµ +°¸µÄµµÃû¾ÍÊÇ¡¸#hello.c#¡¹¡£µ±ÄúÒÔÆ½³£µÄ·½Ê½´¢´æµµ°¸Ê±£¬Emacs ¾Í»á°ÑËü +µÄ×Ô¶¯´¢´æµµÉ¾³ý¡£ + +Èç¹ûµ±»ú£¬Äú¿ÉÒÔ¾­ÓÉÕý³£µØÑ°ÕÒµµ°¸£¬£¨Ö¸µÄÊÇÄúÔڱ༭µÄµµ°¸¶ø²»ÊÇ×Ô¶¯´¢ +´æµµ£©È»ºó¼üÈë M-x recover file À´»Ø¸´ÄúµÄ×Ô¶¯´¢´æµµ¡£µ±ËüÒªÇó +È·ÈÏʱ£¬¼üÈë yes ÒÔ¼ÌÐø²¢»Ø¸´×Ô¶¯´¢´æµÄ×ÊÁÏ¡£ + + +* »ØÓ¦Çø£¨ ECHO AREA £© +----------------------- + +Èç¹û Emacs ¼ûµ½ÄúºÜÂýµØ¼üÈë¶à×ÖÔªÖ¸ÁËü»á½«ËüÃÇÏÔʾÔÚλ춴°¸ñÏ·½£¬ +³ÆÎª¡¸»ØÓ¦Çø¡¹µÄÇøÓò¸øÄú²ÎÔÄ¡£»ØÓ¦ÇøÎ»ÔÚ´°¸ñµÄ×îºóÒ»ÐС£ + + +* ״̬ÐУ¨ MODE LINE £© +----------------------- + +λÔÚ»ØÓ¦ÇøµÄÕýÉÏÃæÊdzÆÎª¡¸×´Ì¬ÐС¹µÄÒ»ÐС£×´Ì¬ÐÐÏÔʾ³öһЩÐÅÏ¢£¬È磺 + +--:** TUTORIAL.cn (Fundamental)--L670--58%---------------- + +±¾ÐÐÌṩһЩ¹Øì¶¡¸Emacs µÄ״̬¡¹ÒÔ¼°¡¸ÄúÕýÔڱ༭µÄÎÄ×Ö¡¹µÄÓÐÓÃÐÅÏ¢¡£ + +ÄúÒѾ­ÖªµÀµµÃûµÄÒâÒåÊÇʲôÁË -- ¾ÍÊÇÄúÕҵĵµ°¸¡£-NN%-- Ö¸³öĿǰÄúÔÚÎÄ +×ÖµµÖеÄλÖã»ËüµÄÒâ˼ÊÇ˵£ºÓÐ NN °Ù·Ö±ÈµÄÎÄ×ÖλÔÚ´°¸ñµÄÉÏÃæ¡£Èç¹ûµµ°¸ +µÄ¶¥¶Ë¾ÍλÔÚ´°¸ñÖУ¬ÄÇôËü¾Í»áÏÔʾ --Top-- ¶ø²»ÊÇ --00%--¡£Èç¹ûµµ°¸µÄ +µ×²¿¾ÍλÔÚ´°¸ñÖУ¬ÄÇôËüÊÇÏÔʾ --Bot--¡£Èç¹ûÄúÕýÔÚ¿´µÄÎÄ×ÖµµºÜС£¬ÔÚ´° +¸ñÖоÍ×ãÒÔ¿´µ½È«²¿µÄÄÚÈÝ£¬ÄÇô״̬ÐоͻáÏÔʾ --All--¡£ + +L ºÍÊý×ÖÒÔÁíÒ»ÖÖ·½Ê½À´±íʾ³öλÖãºËüÃǸø³öÁËĿǰËùÔÚµÄÐÐÊý£¨ Line £©¡£ + +ÔÚ¿¿½üÇ°ÃæµÄÐǺűíʾÄúÒѾ­¶ÔÕâЩÎÄ×Ö×öÁ˸ı䡣ÔÚÄú¸Õ°Ý·Ã»ò´¢´æÒ»¸öµµ°¸ +Ö®ºó£¬×´Ì¬ÐеÄÄǸö²¿·Ö»áûÓÐÐǺţ¬Ö»ÓÐÆÆÕۺš£ + +״̬ÐÐÖÐλì¶Ð¡À¨»¡ÀïÃæµÄ²¿·Ö£¬ÊÇÓÃÀ´¸æËßÄúÕýÔÚʹÓÃʲô±à¼­Ä£Ê½¡£Ô¤ÉèµÄ +ģʽÊÇ Fundamental£¬Ò²¾ÍÊÇÄúÏÖÔÚʹÓõġ£ËüÊÇ¡¸Ö÷ģʽ¡¹µÄÒ»¸öÀý×Ó¡£ + +Emacs ÓÐÐí¶à²»Í¬µÄÖ÷ģʽ¡£ËüÃÇÖ®ÖÐÓÐһЩÊÇÓÃÀ´±à¼­²»Í¬µÄÓïÑÔÒÔ¼°£¯»ò²» +ͬÖÖÀàµÄÎÄ×Ö£¬ÏñÊÇ Lisp ģʽ¡¢ Text ģʽµÈµÈ¡£ÔÚÈκεÄʱ¼äÖ»ÓÐÒ»¸öÖ÷Ä£ +ʽ¿ÉÒÔ×÷Ó㬲¢ÇÒËüµÄÃû³Æ×Ü¿ÉÒÔÔÚ״̬ÐÐÖб»ÕÒµ½£¬¾ÍÔÚÏÖÔÚµÄ +¡¸Fundamental¡¹ÖеÄλÖᣠ+ +ÿһ¸öÖ÷ģʽ¶¼Ê¹µÃһЩָÁîµÄÐÐΪ±íÏֵò»Ì«Ò»Ñù¡£¾ÙÀýÀ´Ëµ£¬ÔÚÒ»¸ö³ÌʽÖÐ +ÓÐһЩָÁîÓÃÀ´ÖÆ×÷³ö×¢½â£¬¶øÓÉì¶Ã¿Ò»ÖÖ³ÌʽÓïÑÔ¶Ôì¶Ò»¸ö×¢½âÓ¦¸Ã³¤µÃÏñʲ +ô£¬¶¼ÓÐÖø²»Í¬µÄÏë·¨£¬Òò´Ëÿһ¸öÖ÷ģʽ¶¼±ØÐëÒÔ²»Í¬µÄ·½Ê½À´²åÈë×¢½â¡£Ã¿ +Ò»¸öÖ÷ģʽÊÇÒ»¸öÑÓÉìÖ¸ÁîµÄÃû³Æ£¬Ê¹µÃÄú¿ÉÒÔÓÃÀ´Çл»ÖÁÄǸöģʽ¡£¾ÙÀýÀ´Ëµ£¬ +M-x fundamental-mode ¾ÍÊÇÇл»µ½ Fundamental ģʽµÄÒ»¸öÖ¸Áî¡£ + +Èç¹ûÄúÏëÒª±à¼­ÈËÀàÓïÑÔµÄÎÄ×Öµµ°¸ -- ÏñÊÇÏÖÔÚµÄÕâÒ»¸ö£¬ÄúÓ¦¸ÃʹÓà Text +ģʽ¡£ + +>> ¼üÈë M-x text mode¡£ + +²»Òªµ£ÐÄ£¬Ã»ÓÐÈκÎÒ»¸öÄúÒѾ­Ñ§¹ýµÄ Emacs Ö¸Á»á±»¸Ä±ä³ÉÈκηdz£²»Í¬ +µÄÐÎʽ¡£µ«ÊÇÄú¿ÉÒÔ·¢ÏÖµ½ M-f ºÍ M-b ÏÖÔÚ°ÑÆ²ºÅ£¨'£©ÊÓΪ×ÖµÄÒ»²¿·Ö¡£ÏÈ +ǰ£¬ÔÚ Fundamental ģʽÖУ¬M-f ºÍ M-b ½«Æ²ºÅÊÓΪ×ֵķָô·ûºÅ¡£ + +Ö÷ģʽͨ³£»áÏñÉÏÊöÄǸöÀý×ÓÒ»Ñù£¬×ö³öһЩ¾«Çɵĸı䣺´ó²¿·ÖµÄÖ¸ÁîÔÚÿһ +¸öÖ÷ģʽÖС¸×öͬÑùµÄÊ¡¹£¬µ«ÊÇËüÃÇÒÔÒ»µãµã²»Í¬µÄ·½Ê½À´¹¤×÷¡£¡¾ÔپٸöÀý +×Ó£¬½ÓÐøÉÏÃæËù¿ªµÄÍ·£¬ÒÔ³ÌʽÓïÑÔµÄ×¢½âÀ´Ëµ¡£Í¬ÑùÒ»¸ö²åÈë×¢½âµÄ¶¯×÷£¬Òò +ΪÄúʹÓõijÌʽÓïÑÔ£¯Ö÷ģʽµÄ²»Í¬¶ø²»Í¬¡£ÈôÄúʹÓà C ÓïÑÔ£¬Emacs ²åÈë +¡º/* ½éì¶ÖмäµÄΪע½âÇø¿é */¡»£»ÈôÄúʹÓõÄÊÇ Fortran ÓïÑÔ£¬Emacs ²åÈë +¡ºc ÒÔ×ÖÔª c ΪÊ×µÄΪע½âÐС»£»ÈôÄúʹÓõÄÊÇ Basic ÓïÑÔ£¬Emacs Ôò²åÈ롺' +ƲºÅÒÔºóµÄΪע½âÎÄ×Ö¡»¡£±à¼­Æ÷µÄµ¯ÐÔÈç´Ë£¬ÊµÔÚûÓбØÒªÎªÁ˲»Í¬µÄÓïÑÔ¡¢ +Ä¿µÄ»òÍâ¹Û£¬Éè¼ÆÌØÊ⻯µÄ±à¼­Æ÷¡£¡¸Çó´óͬ£¬´æÐ¡Ò졹ÔÚÕâÀïÒ²ÊdzÉÁ¢µÄ¡£¡¿ + +Òªä¯ÀÀÄúÏÖÔÚËù´¦µÄÖ÷ģʽµÄÎĵµ£¬¼üÈë C-h m¡£ + +>> ʹÓà C-u C-v Ò»»òÊý´Î£¬½«±¾Ðдøµ½¿¿½üÓ©Ä»µÄÉÏ·½¡£ +>> ¼üÈë C-h m£¬¿´¿´ Text ģʽÓë Fundamental ģʽÊÇÄÄÀﲻͬ¡£ +>> ¼üÈë C-x 1 ½«Îĵµ´ÓÓ©Ä»ÒÆ³ýµô¡£ + +Ö÷ģʽ֮ËùÒÔ³ÆÎª¡¸Ö÷Òª£¨ major £©¡¹µÄÔ­ÒòÊÇÒòΪËüÃÇÒ²ÓдÎģʽ£¨ minor +mode £©¡£´ÎÒªµÄģʽ²¢²»ÊÇÖ÷ģʽµÄÆäËûÑ¡Ôñ£¬¶øÖ»ÊÇ´ÎÒªµÄ¸ü¸Ä¡£Ã¿Ò»¸ö´Î +ģʽ¿ÉÒÔ±»Ëü±¾ÉíÆôÓûòÍ£Ö¹£¬ºÍËùÓÐÆäËûµÄ´ÎģʽÎ޹أ¬²¢ÇÒÒ²ºÍÄúµÄÖ÷ģʽ +Î޹ء£ËùÒÔÄú¿ÉÒÔ²»Ê¹ÓôÎģʽ£¬»òÒ»¸ö£¬»òÈκÎÊýÁ¿µÄ´ÎģʽµÄ×éºÏ¡£ + +ÓÐÒ»¸ö½Ð×ö Auto Fill ģʽµÄ´Îģʽ·Ç³£ÓÐÓã¬ÌرðÊÇÔڱ༭ÈËÀàÓïÑÔµÄÎÄ×Ö +ʱ¡£µ±Õâ¸öģʽÆôÓÃʱ£¬ Emacs ÔÚµ±Äú²åÈëÎÄ×Ö²¢ÇÒʹһÐÐÌ«¿íʱ£¬»á½«ÄÇÒ» +ÐУ¬ÔÚ×ÖÓë×ÖÖ®¼ä×Ô¶¯µØ·Ö¸ô¿ª¡£ + +Äú¿ÉÒÔ M-x auto fill mode À´½« Auto Fill ģʽÆôÓᣵ±Õâ¸öģʽ +ÆôÓÃʱ£¬Äú¿ÉÒÔʹÓà M-x auto fill mode À´½«ËüÈ¡Ïû¡£µ±Õâ¸öģʽ²» +ÓÃʱ£¬ÔòÕâ¸öÖ¸Áî»á½«ËüÆô¶¯£¬¶øµ±Õâ¸öģʽÆôÓÃʱ£¬Õâ¸öÖ¸Áî»á½«Ëü¹Ø±Õ¡£ÎÒ +ÃÇ˵Õâ¸öÖ¸ÁîÓÃÀ´¡¸Çл»£¨ toggle £©¡¹Ä£Ê½¡£ + +>> ÏÖÔÚ¼üÈë M-x auto fill mode¡£È»ºóÒ»ÔٵزåÈë×Ö´® + ¡¸ asdf ¡¹£¬Ö±µ½Äú¿´µ½Ëü·Ö³ÉÁ½ÐС£Äú±ØÐëÔÚËüÃÇÖ®¼ä°ÚÉϿհף¬ + ÒòΪ Auto Fill Ö»ÔÚ¿Õ°×´¦¶ÏÐС£ + +±ß½çͨ³£±»É趨Ϊ 70 ¸ö×ÖÔª£¬µ«ÊÇÄú¿ÉÒÔÓà C-x f Ö¸ÁîÀ´¸Ä±äËü¡£ÄúÓ¦¸ÃÒÔ +Ò»¸öÊý×Ö²ÎÊýµÄ·½Ê½À´¸ø¶¨ÄúËùÏ£ÍûµÄ±ß½çÉ趨¡£ + +>> ¼üÈë C-x f ²¢¸½ÉÏÒýÊý 20£º¡ºC-u 2 0 C-x f¡»¡£ + È»ºó¼üÈëһЩÎÄ×Ö£¬¿´¿´ Emacs ÒÔ 20 ¸ö×ÖÔª£¬ + ÔÚÐÐÓëÐÐÖ®¼ä½øÐÐ fill ¶¯×÷¡£È»ºóÔÙÓÃÒ»´Î C-x f ½«±ß½çÉè»Ø 70¡£ + +Èç¹ûÄúÔÚÒ»¸ö¶ÎÂäµÄÖмä×ö³ö¸Ä±ä£¬Auto Fill ģʽ²¢²»»áΪÄúÖØÐ½øÐÐ fill +µÄ¶¯×÷£¨ re-fill £©¡£Òª re-fill Õâ¸ö¶ÎÂ䣬¼üÈë M-q (META-q)£¬¶øÓÎ±ê±Ø +Ðë´¦ÔÚÆäÖС£ + +>> ÒÆ¶¯Óα굽ǰһ¶ÎÖУ¬È»ºó¼üÈë M-q¡£ + + +* ËÑѰ£¨ SEARCHING £© +--------------------- + +Emacs ¿ÉÒÔËÑѰ×Ö´®£¨×Ö´®¿ÉÒÔÊÇһȺÁ¬ÐøµÄ×ÖÔª»ò×Ö£©¡¾¾ÍÖÐÎÄÀ´Ëµ£¬×ÖÔªºÍ +×Ö»ù±¾ÉÏÒâÒåÏàͬ£»´Ë´¦ËùÖ¸µÄ¡º×Ö¡»£¬ÊÇÓ¢ÎÄÖÐûÓб»¿Õ°×¸ô¿ªµÄ×ÖÔª¼¯ +ºÏ¡£¡¿£¬Íùǰ»òÍùºóËÑѰ¶¼¿ÉÒÔ¡£ËÑѰһ¸ö×Ö´®ÊÇÒ»ÖÖÓαêÒÆ¶¯Ö¸ÁËü»á½«ÓÎ +±êÒÆ¶¯µ½×Ö´®³öÏÖµÄÏÂÒ»¸öµØ·½¡£ + +Emacs ËÑѰָÁîÓë´ó²¿·Ö±à¼­Æ÷µÄËÑѰָÁͬµÄµØ·½ÔÚì¶£¬ËüÊÇ¡¸½¥½øµÄ +£¨ incremental £©¡¹¡£Õâ±íʾËÑѰ·¢ÉúÔÚÄú¼üÈëÏëÒªËÑѰµÄÎÄ×Ö´®ºó¡£ + +Òª¿ªÊ¼ËÑѰµÄÖ¸ÁîÊÇ£ºC-s ÍùǰËÑѰ£¬C-r ÍùºóËÑѰ¡£µ«ÏȵÈһϣ¡ÏÖÔÚÏȲ»Òª +ÊÔ¡£ + +µ±Äú¼üÈë C-s ʱ£¬»á·¢ÏÖµ½ÓÐÒ»¸ö×Ö´®¡¸I-search¡¹³öÏÖÔÚ»ØÓ¦ÇøÖÐ×÷ΪÌáʾ¡£ +Ëü¸æËßÄú Emacs ÏÖÔÚÕý´¦ì¶³ÆÎª¡¸½¥½øÊ½ËÑѰ¡¹µÄ״̬ÖУ¬µÈ´ýÄú¼üÈëÄúÏëÒª +ËÑѰµÄ×Ö´®¡£ »á½áÊøÒ»¸öËÑѰ¡£ + +>> ÏÖÔÚ¼üÈë C-s ¿ªÊ¼Ò»¸öËÑѰ¡£ÂýÒ»µã£¬Ò»´Î¼üÈëÒ»¸ö×ÖÔª£¬ + ¼üÈ롺cursor¡»Õâ¸ö×Ö£¬Ã¿¼üÈëÒ»¸ö×ÖԪʱ£¬ÉÔ΢ͣһÏ£¬ + ×¢Òâ¿´¿´Óα귢ÉúÁËʲôÊ¡£ÏÖÔÚÄúÒÑÔø¾­ËÑѰ¹ý¡¸cursor¡¹Õâ¸ö×ÖÁË¡£ +>> ÔٴμüÈë C-s À´ËÑѰ¡¸cursor¡¹µÄÏÂÒ»¸ö³öÏÖλÖᣠ+>> ÏÖÔÚ¼üÈë ËĴΣ¬¿´¿´ÓαêÊÇÈçºÎÒÆ¶¯µÄ¡£ +>> ¼üÈë ½áÊøËÑѰ¡£ + +ÄúÓÐûÓп´µ½·¢ÉúÁËʲô£¿ÔÚÒ»¸ö½¥½øÊ½ËÑѰÖУ¬Emacs ÊÔÖøÒª×ßµ½Äú¼üÈëµÄ×Ö +´®µÄÏÂÒ»¸ö³öÏÖλÖá£ÒªÒƶ¯µ½ÓαêËùÔÚµÄÏÂÒ»¸ö³öÏÖλÖã¬Ö»ÒªÔÙ¼üÈë C-s +Ò»´Î¡£Èç¹û²¢Ã»ÓÐÕâÑùµÄ³öÏÖλÖôæÔÚ£¬Emacs »áßÙÒ»Éù£¬²¢¸æËßÄúĿǰµÄËÑѰ +¡¸Ê§°Ü¡¹¡£ÁíÍâ C-g Ò²¿ÉÒÔÓÃÀ´½áÊøËÑѰ¡£ + +×¢Ò⣺ÔÚijЩϵͳÖУ¬¼üÈë C-s ½«»á°ÑÓ©Ä»¶³½á£¬Äú½«¿´²»µ½´Ó Emacs À´µÄÈÎ +ºÎÊä³ö¡£Õâ±íʾ²Ù×÷ϵͳһ¸ö³ÆÎª¡¸Á÷³Ì¿ØÖÆ¡¹µÄ¡¸¹¦ÄÜ¡¹½« C-s Ö¸ÁîÀ¹½Ø×¡£¬ +²¢ÇÒ²»ÈÃËü´«µ½ Emacs¡£ÒªÈ¡ÏûÓ©Ä»µÄ¶³½á£¬Çë¼üÈë C-q¡£È»ºóµ½ Emacs ʹÓà +ÊÖ²áÖп´¿´¶Ôì¶¡¸½¥½øÊ½ËÑѰµÄͬʱ½øÈ루 Spontaneous Entry to +Incremental Search £©¡¹Õâ¸öÖ÷Ì⣬ÒÔÈ¡µÃ´¦ÀíÕâ¸ö¡¸¹¦ÄÜ¡¹µÄ½¨Òé¡£ + +Èç¹ûÄúÔÚÒ»¸ö½¥½øÊ½ËÑѰµÄÖм䣬²¢ÇÒ¼üÈë £¬Äú¿ÉÒÔ·¢ÏÖÔÚËÑѰ×Ö´® +ÖеÄ×îºóÒ»¸ö×ÖÔª±»Ïû³ýÁË£¬²¢ÇÒËÑѰ»á»Øµ½Õâ¸öËÑѰµÄ×îºóÒ»¸öµØ·½¡£¾ÙÀýÀ´ +˵£¬¼ÙÉèÄúÒѾ­¼üÈëÁË¡ºc¡»£¬ÓÃÀ´Ñ°ÕÒ¡¸c¡¹µÄµÚÒ»´Î³öÏÖ¡£ÏÖÔÚÈç¹ûÄú¼üÈë +¡ºu¡»£¬Óαê»áÒÆ¶¯µ½¡¸cu¡¹µÄµÚÒ»´Î³öÏÖλÖá£ÏÖÔÚ¼üÈë £¬Õâ»á½« +¡¸u¡¹´ÓËÑѰ×Ö´®ÖÐÏû³ý£¬²¢ÇÒÓαê»áÒÆ»Øµ½¡¸c¡¹µÄµÚÒ»´Î³öÏÖλÖᣠ+ +Èç¹ûÄúÔÚÒ»¸öËÑѰµÄÖм䣬²¢ÇÒ¼üÈëÒ»¸ö CONTROL »ò META ×ÖÔªµÄ»°£¬£¨µ«ÓÐ +һЩÀýÍâ -- ¶ÔËÑѰ¶øÑÔÌØ±ðµÄ×ÖÔª£¬ÏñÊÇ C-s ºÍ C-r £©£¬ËÑѰ»á±»½áÊø¡£ + +C-s »á¿ªÊ¼Ò»¸öËÑѰ£¬Ëü»áѰÕÒËÑѰ×Ö´®ÔÚĿǰÓαêλÖá¸Ö®ºó¡¹£¬µÄÈκγöÏÖ +λÖá£Èç¹ûÄúÏëÒªÔÚÏÈǰÎÄ×ÖÖÐËÑѰ£¬¼üÈë C-r ×÷ÎªÌæ´ú¡£³ýÁËËÑѰµÄ·½ÏòÏà +·´Ö®Í⣬ÎÒÃÇËù˵µÄÓÐ¹Ø C-s µÄËùÓÐÊÂÇ飬ͬÑùµØ¿ÉÒÔÓ¦Óõ½ C-r ÉÏ¡£ + + +* ¶àÖØ´°¸ñ£¨ MULTIPLE WINDOWS £© +-------------------------------- + +Emacs Ðí¶àºÃ¹¦ÄܵįäÖÐÖ®Ò»ÊÇ£¬Äú¿ÉÒÔÔÚÓ©Ä»ÖÐͬʱչʾ³¬¹ýÒ»¸ö´°¸ñ¡£ + +>> ÒÆ¶¯Óα굽ÕâÒ»Ðв¢ÇÒ¼üÈë C-u 0 C-l¡£ + +>> ÏÖÔÚ¼üÈë C-x 2£¬Ëü»á½«Ó©Ä»Æ½·Ö³ÉÁ½¸ö´°¸ñ¡£ + ÕâÁ½¸ö´°¸ñ¶¼ÏÔÊ¾ÖøÕâ¸ö¿ìËÙÖ¸ÄÏ¡£ÓαêÔòÍ£ÁôÔÚÉÏ·½µÄ´°¸ñ¡£ + +>> ¼üÈë C-M-v ÒÔ¾í¶¯Ï·½µÄ´°¸ñ¡£ + £¨Èç¹ûÄú²¢Ã»ÓÐÒ»¸öÕæµÄ META ¼ü£¬Ôò¼üÈë ESC C-v Òà¿É¡££© + +>> ¼üÈë C-x o£¨¡ºo¡»Ö¸µÄÊÇÆäËû¡ºother¡»µÄÒâ˼£©£¬ + ½«ÓαêÒÆ¶¯µ½Ï·½µÄ´°¸ñ¡£ + +>> ÔÚÏ·½µÄ´°¸ñÖУ¬Ê¹Óà C-v ºÍ M-v À´¾í¶¯Ëü¡£ + ¼ÌÐøÎ¬³ÖÔÚÉÏ·½µÄ´°¸ñÖÐÔĶÁÕâЩָÒý¡£ + +>> ÔÙÒ»´Î¼üÈë C-x o ½«ÓαêÒÆ»Øµ½ÉÏ·½µÄ´°¸ñ¡£ + Óαê»á»Øµ½ËüÔÚÉÏ·½´°¸ñÖУ¬Ô­±¾ËùÔÚµÄλÖᣠ+ +Äú¿ÉÒÔ³ÖÐøÊ¹Óà C-x o ÔÚ´°¸ñÖ®¼äÇл»¡£Ã¿Ò»¸ö´°¸ñÓÐËü×Ô¼ºµÄÓαêλÖ㬵« +ÊÇÖ»ÓÐÒ»¸ö´°¸ñ»áÕæµÄÏÔʾ³öÓαꡣËùÓÐͨ³£µÄ±à¼­Ö¸ÁîÖ»»áÓ¦Óõ½ÄǸöÓαêËù +ÔڵĴ°¸ñ¡£ÎÒÃdzÆÕâ¸öΪ¡¸±»Ñ¡ÔñµÄ´°¸ñ¡¹¡£ + +Ö¸Áî C-M-v ÔÚµ±Äúì¶Ò»¸ö´°¸ñÖб༭ÎÄ×Ö£¬²¢Ê¹ÓÃÆäËûµÄ´°¸ñ×÷Ϊ²Î¿¼Ö®ÓÃʱ£¬ +ÊǷdz£ÓÐÓõġ£Äú¿ÉÒÔ½«ÓαêÒ»Ö±±£³ÖÔÚÄúÕýÔڱ༭µÄ´°¸ñÖУ¬²¢ÒÔ C-M-v Ö¸ +ÁîÔÚÆäËûµÄ´°¸ñÑ­ÐòµØÇ°½ø¡£¡¾ÑéÖ¤¹¤×÷ÌØ±ðÊʺÏÒÔÕâÖÖ·½Ê½À´½øÐУ¬Èç GNU +ÖÐÒëС×飺ÕÒÒ»¸öԭʼӢÎĵµ°¸£»ÔÙÕÒËü·­ÒëºÃµÄÖÐÎĵµ°¸£¬±à¼­Õâ¸ö¡¸±»Ñ¡Ôñ +µÄ´°¸ñ¡¹£¬ÒÔ C-M-v Ö¸Áî¸úÉÏÑéÖ¤ÖеĶÎÂä¡­¡­¡£¡¿ + +C-M-v ÊÇ CONTROL-META ×ÖÔªµÄÒ»¸öÀý×Ó¡£Èç¹ûÄúÓÐÒ»¸öÕæµÄ META ¼ü£¬Äú¿ÉÒÔ +ͬʱ°´×¡ CONTROL ºÍ META ÔÙ¼üÈë v À´¼üÈë C-M-v¡£CONTROL »ò META ¡¸Ë­ÏÈ +±»°´×¡¡¹²¢Ã»ÓÐÓ°Ï죬ÒòΪÕâÁ½¸ö¼ü¶¼ÊÇÓÃÀ´ÐÞÊÎÄúËù¼üÈëµÄ×ÖÔª¡£ + +Èç¹ûÄú²¢Ã»ÓÐÒ»¸öÕæµÄ META ¼ü£¬Äú¿ÉÒÔʹÓà ESC À´×÷ÎªÌæ´ú£¬ÕâÑù×Ó˳Ðò¾Í +ÓйØÏµÁË£ºÄú±ØÐë¼üÈë ESC £¬¸úÖø¼üÈë CONTROL-v£¬CONTROL-ESC v ²¢²»»á×÷ +Óá£ÕâÊÇÒòΪ ESC ÊÇÒ»¸ö¾ßÓб¾Éí×÷ÓõÄ×ÖÔª£¬¶ø²»ÊÇÒ»¸öÐÞÊμü¡£ + +>> £¨ÔÚÉÏ·½´°¸ñ£©¼üÈë C-x 1 ÒÔ³ýȥϷ½´°¸ñ¡£ + +£¨Èç¹ûÄúÒѾ­Ôڵ׶˵Ĵ°¸ñ¼üÈë C-x 1£¬ÄÇô½«»á°ÑÉÏÃæµÄ´°¸ñÒþ²Ø×¡¡£½«Õâ¸ö +Ö¸ÁîÏëÏñ³É¡¸Ö»±£ÁôÒ»¸ö´°¸ñ -- ÎÒÕýÔڱ༭µÄÕâ¸ö¡£¡¹£© + +Äú²»ÐèÒªÔÚÁ½¸ö²»Í¬µÄ´°¸ñÖÐÏÔʾÏàͬµÄ»º³åÇø¡£Èç¹ûÄúʹÓà C-x C-f ÔÚÒ»¸ö +´°¸ñÖÐÕÒµµ°¸£¬ÁíÒ»¸ö´°¸ñ²¢²»Òò¶ø¸Ä±ä¡£Äú¿ÉÒÔÔÚ¶ÀÁ¢µÄÈÎÒ»¸ö´°¸ñÖÐÕÒ¡²Ëü +×Ô¼ºµÄ¡³Ò»¸öµµ°¸¡£ + +ÕâÀïÓÐÁíÍâÒ»¸ö·½Ê½¿ÉÒÔÓÃÀ´£¬Ê¹ÓÃÁ½¸ö´°¸ñÏÔʾÁ½¸ö²»Í¬µÄ¶«Î÷£º + +>> ¼üÈë C-x 4 C-f£¬ºóÃæ¸úÖøÄúµÄÆäÖÐÒ»¸öµµ°¸µÄÃû³Æ¡£ + ÒÔ ×÷Ϊ½áÊø¡£¿´¿´Ö¸¶¨µÄµµ°¸³öÏÖÔÚÏ·½µÄ´°¸ñ¡£ + ÓαêÒ²Åܵ½ÄÇÀï¡£ + +>> ¼üÈë C-x o ÒԻص½ÉÏ·½µÄ´°¸ñ£¬È»ºóÒÔ C-x 1 ɾ³ýµôÏ·½´°¸ñ¡£ + + +* µÝ¹é±à¼­½×²ã£¨ RECURSIVE EDITING LEVELS £© +-------------------------------------------- + +ÓÐʱºòÄú»á½øÈëËùνµÄ¡¸µÝ¹é±à¼­½×²ã¡¹¡£ËüÊÇÓÉλÔÚ״̬Ðеķ½À¨»¡ËùÖ¸Ã÷£¬ +²¢ÇÒ°üº¬×¡ÒÔСÀ¨»¡À´Ö¸Ã÷µÄģʽÃû³Æ¡£¾ÙÀýÀ´Ëµ£¬Äú¿ÉÄܻῴµ½ +[(Fundamental)]£¬¶ø²»ÊÇ (Fundamental)¡£ + +ÒªÀ뿪µÝ¹é±à¼­½×²ã£¬Çë¼üÈë ESC ESC ESC¡£ÕâÊǸöÈ«¹¦Äܵġ¸À뿪¡¹Ö¸Áî¡£Äú +Ò²¿ÉÒÔʹÓÃËüÀ´³ýÈ¥¶àÓàµÄ´°¸ñ£¬²¢ÇÒÀ뿪С»º³åÇø¡£ + +>> ¼üÈë M-x ÒÔ½øÈëС»º³åÇø£»È»ºó¼üÈë ESC ESC ESC À뿪¡£ + +ÄúÎÞ·¨Ê¹Óà C-g À´À뿪µÝ¹é±à¼­½×²ã¡£ÕâÊÇÒòΪ C-g ÊÇÓÃÀ´È¡ÏûÖ¸ÁîÒÔ¼°¡¸Î» +ì¶¡¹µÝ¹é±à¼­½×²ãÖеġ¸ÒýÊý£¨ arguments £©¡¹Ö®¹Ê¡£ + + +* È¡µÃ¸ü¶àµÄ°ïÖú£¨ GETTING MORE HELP £© +--------------------------------------- + +ÔÚ±¾¿ìËÙÖ¸ÄÏÖУ¬ÎÒÃÇÊÔÖø½öÌṩ¸Õ¸ÕºÃµÄÐÅÏ¢ÈÃÄú¿ÉÒÔ¿ªÊ¼Ê¹Óà Emacs¡£ÔÚ +Emacs ÖÐÓÐÌ«¶à¿ÉÈ¡µÃµÄÐÅÏ¢£¬ÏëÒªÔÚÕâÀïÈ«²¿½âÊÍÊDz»¿ÉÄܵġ£È»¶ø£¬ÄúÒ²Ðí +»áÏëҪѧϰ¸ü¶à Emacs Ïà¹ØµÄÐÅÏ¢£¬ÒòΪËüÓÐÐí¶àÆäËûÓÐÓõŦÄÜ¡£Emacs Ìá +¹©ÁË¡¸ÔĶÁÓÐ¹Ø Emacs Ö¸ÁµÄÖ¸Áî¡£ÕâЩ¡¸help¡¹Ö¸Áî¶¼ÒÔ CONTROL-h Õâ¸ö +×ÖÔª×÷Ϊ¿ªÍ·£¬³Æ×÷Ϊ¡¸Help ×ÖÔª¡¹¡£ + +ҪʹÓà Help ¹¦ÄÜ£¬¼üÈë C-h ×ÖÔª£¬È»ºóÔÙ¼üÈëÒ»¸ö˵Ã÷ÄúËùÐèÒªµÄ°ïÖúµÄ×Ö +Ôª¡£Èç¹ûÄúÕæµÄ²»ÖªµÀÒªÎÊʲô£¬ÄÇôÇë¼üÈ롺C-h ?¡»£¬´Ëʱ Emacs ½«»á¸æËß +ÄúËüÄܹ»ÌṩµÄ°ïÖú¡£Èç¹ûÄúÒѾ­¼üÈë C-h£¬µ«·¢ÏÖÄú²¢²»ÐèÒªÈκΰïÖú£¬¼üÈë +C-g À´È¡ÏûµôËü¾ÍÊÇÁË¡£ + +£¨ÓÐÐ©ÍøÕ¾½« C-h Õâ¸ö×ÖÔªµÄÒâÒå¸Ä±äÁË¡£ËûÃÇÕæµÄ²»Ó¦¸Ã°ÑËüÉèΪ¶ÔËùÓÐʹ +ÓÃÕßÈ«²¿¶¼ÊÊÓõķ½·¨£¬ËùÒÔÄúÏÖÔÚ¾ÍÓÐÁ˸öÀíÓÉÀ´±§Ô¹ÏµÍ³¹ÜÀíÕßÁË¡£ÔÚ´Ëͬ +ʱ£¬Èç¹û C-h ²¢Ã»ÓÐÔÚ´°¸ñµÄµ×²¿ÏÔʾÈκÎÓйذïÖúµÄѶϢ£¬ÊÔÖø¼üÈë F1 ¼ü£¬ +»òÊÇ M-x help ¡££© + +×î»ù±¾µÄ HELP ¹¦ÄÜÊÇ C-h c¡£¼üÈë C-h£¬×ÖÔª c£¬ÒÔ¼°Ò»¸ö»òÒ»´®×ÖÔª£»È»ºó +Emacs »áÏÔʾһ¸ö·Ç³£¼ò¶ÌµÄÓйØÕâ¸öÖ¸ÁîµÄ½âÊÍ¡£ + +>> ¼üÈë C-h c C-p¡£ + +ѶϢӦ¸Ã»áÏñÊÇÕâÑù£º + + C-p runs the command previous-line + +Õâ¸æËßÁËÄú¡¸º¯ÊýµÄÃû³Æ¡¹¡£º¯ÊýÃû³ÆÖ÷ÒªÊÇÓÃÀ´×Ô¶©ÒÔ¼°À©³ä Emacs¡£µ«ÊÇÓÉ +춺¯ÊýÃû³ÆÊÇÓÉ¡¸ÓÃÀ´Ö¸³öÕâÖ¸ÁîÔÚ×öЩʲô¡¹¶ø±»Ñ¡¶¨£¬ËüÃÇÒò´ËÒ²¿ÉÒÔ×÷Ϊ +·Ç³£¼ò¶ÌµÄÎĵµ -- ×ã¹»ÌáÐÑÄúÒѾ­Ñ§¹ýµÄÖ¸Áî¡£ + +¶à×ÖÔªÖ¸ÁîÏñÊÇ C-x C-s ºÍ £¨Èç¹ûÄúûÓÐ META »ò EDIT »ò ALT ¼ü£©v +Ò²¿ÉÒÔÔÚ C-h c ºóÃæ³öÏÖ¡£ + +ҪȡµÃ¸ü¶àÓйØÒ»¸öÖ¸ÁîµÄÐÅÏ¢£¬Óà C-h k À´È¡´úʹÓà C-h c ¡£ + +>> ¼üÈë C-h k C-p¡£ + +Õâ»áÔÚÒ»¸ö Emacs ´°¸ñÏÔʾÕâ¸öº¯ÊýµÄ˵Ã÷ÎĵµÒÔ¼°ËüµÄÃû³Æ¡£µ±ÄúÔĶÁÍêºó£¬ +¼üÈë C-x 1 ÒÔÌøÀëÕâЩ°ïÖúÎÄ×Ö¡£Äú²¢²»ÐèÒªÂíÉϸúÖø×ö¡£Äú¿ÉÒÔ×öЩ±à¼­£¬ +µ±²Î¿¼µ½°ïÖúÎÄ×ÖʱÔÙ¼üÈë C-x 1¡£ + +ÕâÀïÓÐһЩÆäËûÓÐÓÃµÄ C-h Ñ¡Ï + + C-h f ½âÊÍÒ»¸öº¯Êý¡£ÄúÒª¼üÈë´Ëº¯ÊýµÄÃû³Æ¡£ + +>> ÊÔÖø¼üÈë C-h f previous-line¡£ + Õâ»áÓ¡³ö Emacs ËùÓеÄÓйء¸Êµ×÷³ö C-p Õâ¸öÖ¸ÁîµÄº¯Êý¡¹µÄÐÅÏ¢ + +C-h v Õâ¸öÀàËÆµÄÖ¸Áî»áÏÔʾ³ö¡¸Äú¿ÉÒÔÓÃÀ´×Ô¶© Emacs ÐÐΪµÄ±äÊý¡¹µÄÎĵµ¡£ +µ± Emacs ÒªÇóʱ£¬ÄúÐèÒª¼üÈëÕâ±äÊýµÄÃû³Æ¡£ + + C-h a Ö¸ÁîÏà¹Ø²éÕÒ£¨ Command Apropos £©¡£ + ¼üÈëÒ»¸ö¹Ø¼ü×ÖÈ»ºó Emacs »áÁгöËùÓÐ + ¡¸ÔÚÆäÃû³ÆÖк¬Óд˹ؼü×Ö¡¹µÄÈ«²¿Ö¸Áî¡£ + ÕâЩָÁîÈ«²¿¶¼¿ÉÒÔ¾­ÓÉ META-x À´Æô¶¯¡£ + ¶Ôì¶Ò»Ð©Ö¸Áî¶øÑÔ£¬Ö¸ÁîÏà¹Ø²éÕÒÒ²»áÁгö + ¡¸¿ÉÒÔÖ´ÐÐÏàָͬÁµÄÒ»¸ö»òÁ½¸ö×ÖÔªµÄ´®ÁС£ + +>> ¼üÈë C-h a file¡£ + +Õâ»áÔÚÁíÒ»¸ö´°¸ñÏÔʾһ¸ö¡¸ÔÚÆäÃû³ÆÖк¬ÓСºfile¡»µÄÈ«²¿ M-x Ö¸ÁµÄÁÐ +±í¡£Äú½«»á¿´µ½ÏñÊÇ C-x C-f µÄ¡¸×ÖÔª-Ö¸ÁÁÐÔÚÆäÏà¶ÔÓ¦Ö¸ÁîÃû³Æ£¨È磺 +find-file £©µÄÅԱߡ£ + +>> ¼üÈë C-M-v ÉÏÏÂÒÆ¶¯ help ´°¸ñ¡£ÊÔ¸ö¼¸´Î¡£ + +>> ¼üÈë C-x 1 À´É¾³ý help ´°¸ñ¡£ + + C-h i ÔĶÁÏßÉÏʹÓÃÊֲᣨ a.k.a. Info £©¡£ + Õâ¸öÖ¸ÁÄú´øµ½Á˳ÆÎª¡¸*info*¡¹µÄÌØÊ⻺³åÇø£¬ÔÚÄÇ£¬ + Äú¿ÉÒÔÔĶÁ°²×°ÔÚÄúµÄϵͳÀïµÄÈí¼þ°üµÄÏßÉÏʹÓÃÊֲᡣ + ¼üÈë m emacs ÒÔÔĶÁ Emacs ʹÓÃÊֲᡣ + Èç¹ûÄúÔÚ´ËÖ®Ç°Î´ÔøÊ¹Óùý Info ϵͳ£¬Çë¼üÈ롺?¡»¡£ + Emacs ½«»á´øÄú½øÈë Info ģʽ¹¦Äܵĵ¼ÀÀÖ¸ÄÏ¡£ + Ò»µ©Íê³ÉÁ˱¾¿ìËÙÖ¸ÄϵÄÑжÁ£¬ÄúÓ¦¸Ã²éÔÄ Emacs Info + ʹÓÃÊֲᣬÒÔ×÷ΪÖ÷ÒªµÄ²Î¿¼Îĵµ¡£ + + +* ¸ü¶à¹¦ÄÜÌØÉ«£¨ MORE FEATURES £© +--------------------------------- + +Äú¿ÉÒÔ¾­ÓÉÔĶÁ Emacs ʹÓÃÊֲᡴ²»ÂÛÊÇÒ»±¾Êé»òÊÇÔÚ Info ÖеÄÏßÉϰ汾 +£¨Ê¹Óà Help Ñ¡µ¥»òÊǼüÈë F10 h r £©¡µÀ´Ñ§µ½¸ü¶àÓйØËüµÄ֪ʶ¡£ÓÐÁ½¸öÄú +¿ÉÄÜ»áÌØ±ðϲ»¶µÄ¹¦ÄÜÌØÉ«ÊÇ¿ÉÒÔ½ÚÊ¡´ò×ÖÁ¿µÄ completion »¹Óмò»¯µµ°¸´¦Àí +µÄ dired ¡£ + +Completion ÊÇÒ»ÖÖ±ÜÃâ²»±ØÒªµÄ´ò×ֵķ½Ê½¡£¾ÙÀýÀ´Ëµ£¬Èç¹ûÄúÏëÒªÇл» +*Messages* »º³åÇø£¬Äú¿ÉÒÔ¼üÈë C-x b *M £¬Ö»Òª¿ÉÒÔ´ÓÄúÒѾ­¼üÈëµÄÎÄ +×ÖÖÐÈ·¶¨£¬ Emacs ¾Í»á½«Ê£ÏµĻº³åÇøÃû³Æ²¹Æë¡£ Completion ÊÇÔÚ Emacs ʹ +ÓÃÊÖ²áµÄ Info ÖУ¬³ÆÎª¡¸Completion¡¹µÄ½ÚµãÖÐËù½âÊ͵ġ£ + +Dired ʹÄú¿ÉÒÔÔÚÒ»¸öĿ¼ÖÐÁгöµµ°¸£¨´ÎĿ¼ÔòÊÇ¿ÉÑ¡µÄ£©¡¢ÔÚÁбíÖе½´¦ÒÆ +¶¯¡¢°Ý·Ã¡¢ÖØÐÂÃüÃû¡¢É¾³ýÒÔ¼°¶Ôµµ°¸×÷²Ù×÷¡£ Dired ÊÇÔÚ Emacs ʹÓÃÊÖ²áµÄ +Info ÖУ¬³ÆÎª¡¸Dired¡¹µÄ½ÚµãÖÐËù½âÊ͵ġ£ + +ʹÓÃÊÖ²áÒ²½âÊÍÁËÐí¶àÆäËü Emacs µÄ¹¦ÄÜÌØÉ«¡£ + + +* ½áÂÛ£¨ CONCLUSION £© +---------------------- + +¼Çס£¬ÒªÍêÈ«À뿪 Emacs ÇëʹÓà C-x C-c ¡£ÒªÔÝʱÀ뿪µ½ shell£¬ÉÔºóÔٻص½ +Emacs£¬ÇëʹÓà C-z ¡£ + +±¾¿ìËÙÖ¸Ä϶Ôì¶ËùÓеÄÐÂÊÖÓ¦¸Ã¶¼ÊÇÒ×ì¶Àí½âµÄ£¬ËùÒÔÈç¹ûÄú·¢ÏÖÁËʲôµØ·½²» +Çå³þ£¬²»ÒªÖ»ÊÇ×øÖø¹Ö×Ô¼º -- £¨Ïò±¾ÎÄ×÷Õߺͷ­Ò룩·¢µãÀÎɧ°É£¡ + + +* ·­Ò루 TRANSLATION £© +----------------------- + +±¾¿ìËÙÖ¸Äϵķ­ÒëÈËÔ±ÁбíÈçÏ£¬Èç¹ûÄúÔÚÔĶÁ±¾ÎÄ֮ǰ£¬¡¸ÍêÈ«¡¹¶Ô Emacs +ûÓиÅÄÇë¸æËßÎÒÃÇÄúµÄÒâ¼ûÒÔ×÷Ϊ±¾ÎĺóÐøµÄ¸Ä½øÒÀ¾Ý¡£·­ÒëÒ²ÌṩÁËÒ»·Ý +¡¶GNU Emacs ÖÐÎÄ´¦Àí˵Ã÷¡·ÔÚ +http://www.gnu.org/software/chinese/guide/emacs-chinese.cn.html ¡´²¿·Ý +ÄÚÈÝÒѾ­ÕûÀíµ½±¾¿ìËÙÖ¸ÄÏ¡µ£¬Ò²ÇëÄú×ÔÐвÎÔÄ¡£ + +±à¼­Æ÷ÊǵçÄÔʹÓÃÕß×î³£½Ó´¥µ½µÄÓ¦ÓóÌʽ£¬Òò´Ë²»Ó¦¸ÃÈóõѧÕ߸е½¹ýì¶À§ÄÑ£¬ +¾ÍÒ»°ãµÄÆÀÂÛÀ´Ëµ£¬ Emacs ÊDz»ÄÑѧ»áʹÓõı༭Æ÷£¬µ«ÄúµÄÒâ¼û¿ÉÒÔʹËü¸ü +ΪÌù½üÒ»°ãµÄʹÓÃÕߣ¬²¢Ê¹µçÄÔ×÷Ϊ¹¤¾ßµÄ½ÇÉ«µÃÒÔ³ä·Ö·¢»Ó¡£Èç¹ûÄúÔ¸ÒâÌṩ +¸Ä½øµÄÒâ¼û£¬Çë¼Ä email µ½ ¡£Çë²»Òªº¦Ðߣ¬ +ÎÒÃÇ»¶Ó­ÈκÎÓйصÄÌÖÂÛ£»Èç¹ûÄú²»Ïë¼Äµ½ÓʼþÇåµ¥£¬ÇëÖ±½Ó email ¸ø±¾ÎÄ·­ +Òë ¡£ÇëÔÚ Title ÐÐÖаüº¬´Ë×Ö´®¡¸Emacs TUTORIAL: ¡¹¡£ + +Èç¹ûÄúÊÇ Emacs ÀÏÊÖ£¬GNU Chinese Translators Team (GNU/CTT) + »¶Ó­ÄúµÄ¼ÓÈ룬ÎÒÃÇÏÖÔÚÕýÐèÒªÔ¸ +ÒâͶÈë·­Òë Emacs ʹÓÃÊÖ²áµÄÈËÔ±¡£ + +±¾¿ìËÙÖ¸Äϲ¢Ã»ÓвÉÓÃϰ¹ßÉϱ༭Æ÷ËùʹÓõķ­ÒëÊõÓһ·½ÃæÒòΪËüµÄʵ¼ÊÒâ +ÒåÓëÒ»°ãµÄ±à¼­Æ÷²»Í¬£¬Ô­Îı¾¾Í²»Í¬£»ÁíÒ»·½ÃæÒ²ÒòΪ Emacs Ëù²ÉÓõÄÊÓ¾õ +Éè¼Æ¸ÅÄÔçÔÚ´°¿Ú»¯ÏµÍ³Ö®Ç°¾ÍÒѾ­´æÔÚ£¬±¾ÖÊÒ²²»Ïàͬ¡£×ÜÖ®£¬·­ÒëÒÔΪÕâ +Ñù¿ÉÒÔ°ïÖú¶Ôì¶ Emacs Õû¸öÉè¼ÆÕÜѧµÄÀí½â¡£Èç¹ûÊÕµ½µÄ»Ø¸²ÖУ¬´ó²¿·ÝÒªÇó +Ìá³öÐ޸ģ¬ÎÒÃÇ»¹ÊÇ´ÓÉÆÈçÁ÷¡£ + +(0) ΪÁ˱ÜÃ⡸ÓαêÒÆ¶¯Ö¸ÁÂÛÊöÉϵĻìÏý£¬±¾ÎIJÉÓõÄÊõÓïΪ£º + Íù¡¸Ç°¡¹ÒÆ£¨ move Forward £©£»Íù¡¸ºó¡¹ÒÆ£¨ move Backware £© + ¡²»òÊÇÍù¡¸»Ø¡¹ÒÆ¡³£» + Íù¡¸ÉÏ¡¹ÒÆ£¨ Previous line £©£»Íù¡¸Ï¡¹ÒÆ£¨ Next line £©¡£ +(1) ÔÚ±¾ÎÄÖУ¬¡¸ÐС¹Ö¸µÄÊÇ row£¬ÕâÊDzÉÓÃÒ»°ãµÄϰ¹ßÓ÷¨¡£ + ΪÁ˱ÜÃâÎóµ¼ÖÐÎĶÁÕߣ¬ÌرðÔÚ´Ë˵Ã÷¡£ÔÚÕýʽµÄÓ÷¨ÖУº + ¡¸column¡¹·­ÒëΪ¡¸ÐС¹£¬ÒÔ¡¸×Ý¡¹ÎªÐУ¨Ö±ÐУ©£¬Ò²ÒëΪ¡¸À¸¡¹£» + ¡¸row¡¹·­ÒëΪ¡¸ÁС¹£¬ÒÔ¡¸ºá¡¹ÎªÁУ¨ºáÁУ©¡£ + ¶ÁÕß˼Ë÷һϡ¸ºÏ×ÝÁ¬ºá¡¹Ó¦¸Ã¿ÉÒÔÀí½â¡£ + ´óÔ¼ÊÇÒòΪÖÐÎÄÔ­±¾ÊÇÖ±ÊéµÄ£¬ÎÒÃÇ˵¡¸Ò»ÐÐ×Ö¡¹ÊÇûÎÊÌ⣻ + µ«ÏÖÔڴ󲿷ݵÄÇéÐÎÖÐÎÄÊǺáÊéµÄ£¬ÓÉì¶Ï°¹ßʹȻҲ³ÆÎªÒ»ÐÐ×ÖÁË¡£ +(2) ÓйØì¶¡¸ÎÄ×Ö¡¹¼°Æä¼¯ºÏµÄÏà¹ØÒëÎÄ£¬·­ÒëËù²ÉÓõÄÓУº + ±à¼­µÄ¡¸ÎÄ×Ö¡¹£º¡¸È»ºó¼üÈëһЩÎÄ×Ö¡¹£» + ÓÃÀ´×÷Ϊ˵Ã÷¹¦Äܵġ¸Îĵµ¡¹£º¡¸Õâ¸öº¯ÊýµÄ˵Ã÷Îĵµ¡¹£» + ÌØÖ¸ÆäËù˵Ã÷µÄÄÚÈݵġ¸Îı¾¡¹£º¡¸Êµ¼ÊЧÁ¦ÒÔÓ¢Îı¾Îª×¼¡¹¡£ + ¼´Ê¹Ö»ÊÇ¡¸Ò»ÐÐ×Ö¡¹£¬Ö»ÒªËüÊÇÓÃÀ´×÷Ϊ˵Ã÷Ö®Ó㬠+ ·­Ò뻹Êǽ«ËüÊÓΪ¡¸Îĵµ¡¹¡£ +(3) ¡¸cut¡¹µÄ¶¯×÷ÔÚ Emacs ÖзÖΪ¡¸É±µô¡¹ºÍ¡¸É¾³ý¡¹£¬Ö®¼äµÄ²îÒìÈçÏ£º + Ò»°ã±à¼­Æ÷Öеġ¸cut¡¹£ºÖ»ÓÐ×î½ü±» cut µÄÎÄ×Ö°Úµ½ clipboard ÖУ» + ¡¸É±µô£¨ killing £©¡¹£º±»É±µôµÄÎÄ×Ö£¬È«²¿±»¼ÓÈëµ½ kill ring ÖУ» + ¡¸É¾³ý£¨ deleting £©¡¹£º±»É¾³ýµÄÎÄ×Ö£¬¾ÍÊDZ»É¾³ýÁË¡£ + Òò´ËÔÚÒ»°ã±à¼­Æ÷ÖУ¬ÄúÖ»ÄÜ paste¡¸×î½ü¡¹±» cut µÄÎÄ×Ö£» + ¶øÔÚ Emacs ÖУ¬Äú¿ÉÒÔ¡¸À­»Ø¡¹ÈκÎÏÈǰ±»É±µôµÄÎÄ×Ö£¬Í¬Ê±£¬ + ËüµÄ×÷·¨ºÜÈÝÒס£ÖÁì¶±»É¾³ýµÄ£¬ÒòΪÓÃÀ´×÷Ϊ¡¸É¾³ý¡¹¹¦ÄܵÄÖ¸Á + ËùÄÜÒÆÈ¥µÄÎÄ×ÖÊýÁ¿¶¼ºÜÉÙ£¬Òò´ËҲûʲôºÃÀ­»ØµÄ£» + Èç¹ûÕæµÄÏë»Ø¸´ÕâЩÎÄ×Ö£¬undo ÄúµÄ¶¯×÷¾ÍÊÇÁË¡£ +(4) ¡¸window¡¹Í¬Ê±·­ÒëΪ¡¸´°¿Ú¡¹ºÍ¡¸´°¸ñ¡¹£¬ + ǰÕß±íʾÏÖÔÚÒ»°ã¸ÅÄîÖеĴ°¿Úϵͳ£¬È硸X ´°¿Ú¡¹£» + ºóÕß±íʾ Emacs ÖеĴ°¿Ú£¬·­ÒëÔÚ´Ëͨ³ÆÎª¡¸´°¸ñ¡¹¡£ + Emacs µÄ¡¸´°¸ñ¡¹¼´Ê¹ÔÚÃüÁîÁÐÌáʾÏÂÒ²¿ÉÒÔÕý³£¹¤×÷£¬ + ´ËÒ»»ù±¾ÌØÐÔÏÔȻֵµÃÎÒÃÇÒÔÁíÒ»¸öרÓÃÊõÓïÀ´ÃèÊöËü¡£ +(5) ¹Øì¶µµ°¸µÄÊõÓ¡¸ÕÒ¡¹Ò»¸öµµ°¸ÔÚ Emacs ÖÐÓÐÁ½ÖÖ×÷Ó㺠+ ÕÒÒ»¸ö¡¸²¢²»´æÔÚ¡¹µÄµµ°¸£¬¶ÁÕßÓ¦ÈÏ֪Ϊ¡¸¿ªÐµµ°¸¡¹£» + ÕÒÒ»¸ö¡¸ÒѾ­´æÔÚ¡¹µÄµµ°¸£¬ÔòÊÇ¡¸¿ªÆô¾Éµµ¡¹¡£ + Emacs Ö»ÒÔÒ»¸ö¡¸ÕÒ¡¹µÄ¶¯×÷À´½â¾ö£¬Ö÷ÒªµÄÔ­ÒòÊÇ¡¸Êµ¼ÊÉÏ¡¹ + µÄÈí¼þ¹¤×÷Èç´Ë¡£ºÚ¿ÍÃÇÓ¦¸Ã»á·¢ÏÖÕâÑù±È½Ï×ÔÈ»£¬ + ÒòΪËü·´Ó¦Á˵çÄԵŤ×÷·½Ê½£¬Í¬Ê±²Ù×÷ÆðÀ´Ò²½ÏÉÙ·Ï»°¡£ +(6) ÔÚ¡¾¡¿ÖеÄÎÄ×ÖΪ·­ÒëµÄ×¢½â¡£ +(7) ¹Øì¶Ê¹ÖÐÎÄÎĵµ½á¹¹»¯µÄÒéÌ⣬ÎÊÌâÒѾ­»ñµÃ½â¾ö¡£ +(8) ±¾·­ÒëÎı¾Ëù²ÉÓõļò·±ÓÃÓï²îÒìÁбíÈçÏ£º + zh cn + Îļþ Îĵµ + ÈíÌå Èí¼þ + ×÷Òµ ²Ù×÷ + Ì×¼þ °ü + ÊÓ´° ´°¿Ú + µÝ»Ø µÝ¹é + º§¿Í ºÚ¿Í + ×ÊѶ ÐÅÏ¢ + +ÁíÍ⣬ÎÒÃÇҲʮ·Ö»¶Ó­¶ÁÕß¿ÉÒÔÖ±½ÓÐ޸ı¾¿ìËÙÖ¸ÄÏ£¬×ö³ö×Ô¼ºµÄ°æ±¾£¬ÒÔ×Ô¼º +ÈÏΪ×îΪºÏÊʵķ½Ê½À´½éÉÜ Emacs ¡£Èç¹ûÄú×ö³öÁËÕâÑù¸öÈË»¯µÄ°æ±¾£¬²¢ÇÒÈÏ +Ϊ×㹩´ó¼Ò²Î¿¼Ê¹Óã¬Çë¼Ä¸ø £¬ÎÒÃǻὫÄú +µÄ°æ±¾¹«¿ªÔÚ GNU/CTT µÄÍøÒ³ÖÐÌṩ¸øÖÐÎÄʹÓÃÕßÏÂÔØ¡£ + +·­Ò룺Áõ ÕѺê +ÑéÖ¤£ºÂí ѩƼ + + +* ¸´ÖÆ£¨ COPYING £© +------------------- + +±¾¿ìËÙÖ¸ÄÏÑØÏ®×Ô¾ßÓÐÓÆ¾ÃÀúÊ·µÄ Emacs ¿ìËÙÖ¸ÄÏ£¬ÓÉ Stuart Cracraft ΪÁË +ԭʼµÄ Emacs Ëù׫дµÄ°æ±¾¿ªÊ¼¡£ + +Õâ¸ö°æ±¾µÄ¿ìËÙÖ¸ÄÏºÍ GNU Emacs Ò»Ñù¶¼ÊǰæÈ¨»¯µÄ£¬²¢ÇÒÔÊÐíÔÚijЩÌõ¼þÏ +É¢²¼Æä¿½±´£º + +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. +Chinese Translation by Chao-Hong Liu (2002, 2003) + + Permission is granted to anyone to make or distribute verbatim copies + of this document as received, in any medium, provided that the + copyright notice and permission notice are preserved, + and that the distributor grants the recipient permission + for further redistribution as permitted by this notice. + + ±¾ÎÄÔÊÐíÔÚ²»±ä¸üÎĵµÄÚÈݵÄǰÌáÏ¿¯µÇÔÚÈκÎÐÎʽµÄýÌåÖУ¬ + µ«Ðè±£Áô°æÈ¨ÉùÃ÷ÒÔ¼°Ðí¿ÉÉùÃ÷£¬ + É¢²¼ÕßÒ²±ØÐë¸øÓè½ÓÊÜÕßÈçͬ´ËÉùÃ÷ËùÔÊÐíµÄ£¬½øÒ»²½É¢²¼µÄÐí¿É¡£ + ¡¾±¾¶ÎÒëÎÄÌṩ¶ÁÕß×÷Ϊ²Î¿¼ÒÔ°ïÖúÀí½â£¬Êµ¼ÊЧÁ¦ÒÔÓ¢Îı¾Îª×¼¡£¡¿ + + Permission is granted to distribute modified versions + of this document, or of portions of it, + under the above conditions, provided also that they + carry prominent notices stating who last altered them. + + ±¾ÎÄÔÊÐíÔÚÓëÉÏÊöÏàͬµÄÌõ¼þÏ£¬É¢²¼Ð޸ĺóµÄ°æ±¾£¬»òÊÇÆäÖеÄÒ»²¿·Ý£¬ + µ«ËüÃÇÒ²±ØÐë´øÓÐÏÔÖøµÄ£¬ËµÃ÷ÓÉË­×îºó¸ü¶¯ÁËËüµÄÉùÃ÷¡£ + ¡¾Copyleft °æÈ¨³ýÁËÌṩʹÓÃÕß×ÔÓÉÍ⣬Ҳά»¤Ô­Ê¼×÷Õߣ¬ + ÒÔ¼°ºóÀ´µÄÐÞ¸Ä×÷ÕßµÄÃûÓþȨ£¨ credit £©¡£ + ±¾¶ÎÒëÎÄÌṩ¶ÁÕß×÷Ϊ²Î¿¼ÒÔ°ïÖúÀí½â£¬Êµ¼ÊЧÁ¦ÒÔÓ¢Îı¾Îª×¼¡£¡¿ + +¸´ÖÆ Emacs ±¾ÉíµÄÌõ¼þ½ÏΪ¸´ÔÓ£¬µ«ÊǾßÓÐÏàͬµÄ¾«Éñ¡£ÇëÔĶÁ COPYING Õâ¸ö +µµ°¸£¬²¢ÇÒȷʵ¸øÓèÄúµÄÅóÓÑ GNU Emacs µÄ¿½±´¡£Çë¾­ÓÉ¡¸Ê¹Óá¢×«Ð´¡¢ÒÔ¼° +·ÖÏí×ÔÓÉÈí¼þ¡¹À´°ïÖúÏû³ýÈí¼þÕϰ­Ö÷Ò壨ӵÓÐȨ£©£¡ + +;;; DO NOT PUT THIS ON ZHS OR ZHT FILE... +;;; Local Variables: +;;; coding: chinese-iso-8bit +;;; End: + +;;; arch-tag: 46a53d82-a85a-46b6-bdc7-583aca063578 diff --git a/etc/TUTORIAL.cs b/etc/TUTORIAL.cs index 316098c0e77..57e77de9a4b 100644 --- a/etc/TUTORIAL.cs +++ b/etc/TUTORIAL.cs @@ -1,4 +1,4 @@ -Copyright (c) 1985 Free Software Foundation, Inc; podmínky viz na konci. +Tutoriál k Emacsu. Podmínky viz na konci. Do èe¹tiny pøelo¾il Milan Zamazal . Máte pøed sebou tutoriál k Emacsu. @@ -488,7 +488,7 @@ vyvol C-x C-f Vyhledání souboru Emacs se vás zeptá na jméno souboru. Jméno souboru, které pí¹ete, se -objevuje ve spodním øádku obrazovky, který se v této situaci nazývá +objevuje ve spodním øádku obrazovky, který se v této situaci nazývá minibuffer. Pro editaci jména souboru mù¾ete pou¾ívat obvyklé editaèní pøíkazy Emacsu. @@ -1022,7 +1022,8 @@ tutori Tato verze tutoriálu je, podobnì jako GNU Emacs, chránìna copyrightem a je ¹íøena se svolením distribuovat kopie za jistých podmínek: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Ka¾dému je zaruèeno právo vytváøet a distribuovat pøesné kopie tohoto dokumentu tak, jak jej obdr¾el, na jakémkoliv médiu, s tím, ¾e bude @@ -1042,3 +1043,5 @@ GNU Emacsu sv ;;; Local Variables: ;;; coding: iso-latin-2 ;;; End: + +;;; arch-tag: 479ef577-3d4d-4384-aeea-9fe79d5e89ca diff --git a/etc/TUTORIAL.de b/etc/TUTORIAL.de index 81f01b60add..17019ad66dc 100644 --- a/etc/TUTORIAL.de +++ b/etc/TUTORIAL.de @@ -1,4 +1,4 @@ -Einführung in Emacs. (c) 2002 Free Software Foundation, Inc. +Einführung in Emacs. Siehe Dateiende für Vervielfältigungsbedingungen. Emacs-Befehle beinhalten im allgemeinen die CONTROL-Taste (manchmal auch als CTRL, CTL oder STRG beschriftet) sowie die META-Taste (auch @@ -187,7 +187,7 @@ Textsuche in wissenschaftlichen Texten oft vorteilhaft ist.] [Anmerkung 2: Die Tasten `Home' (Pos1) und `End' (Ende) verhalten sich standardmäßig wie C-a und C-e, wie wohl die meisten Benutzer -annehmen würden.] +annehmen.] Die aktuelle Position des Cursors wird im Englischen auch `point' (Punkt) genannt. Beachten Sie bitte, daß sich `point' stets @@ -220,7 +220,7 @@ Kleiner-als) und M-> (META Gr Ende des ganzen Textes springen. Bei den meisten Terminal-Tastaturen befindet sich `<' über dem Komma, -d.h. Sie müssen zusätzlich die SHIFT-Taste verwenden (der Umschalter +d.h., Sie müssen zusätzlich die SHIFT-Taste verwenden (der Umschalter ist auf deutschen Tastaturen normalerweise mit einem dicken Aufwärtspfeil markiert). Ohne SHIFT-Taste würden Sie M-Komma eingeben. @@ -252,14 +252,14 @@ Markierungsring ansteuern. ein, bis Sie wieder an dieser Position angelangt sind. Die meisten Emacs-Befehle akzeptieren ein numerisches Argument, das in -der Regel als Wiederholungszähler dient (d.h. wie oft der Befehl +der Regel als Wiederholungszähler dient (d.h., wie oft der Befehl ausgeführt werden soll). Eingegeben wird diese Zahl mit C-u, dann die Ziffern und dann der Befehl selbst. Alternativ können Sie die META-Taste (bzw. EDIT- oder ALT-Taste) gedrückt halten und dann die Ziffern des Wiederholungszählers eingeben. Wir empfehlen allerdings, die C-u-Methode zu lernen, da sie mit jedem Terminal funktioniert. -Das numerische Argument wird auch `Präfix-Argument' genannt, da man -es vor dem zugehörigen Befehl eingibt. +Das numerische Argument wird auch `Präfix-Argument' genannt, da man es +vor dem zugehörigen Befehl eingibt. Beispiel: C-u 8 C-f bewegt den Cursor acht Zeichen vorwärts. @@ -582,8 +582,7 @@ Anzahl der notwendigen C-x u-Befehle zu reduzieren. C-_ ist ein alternativer Undo-Befehl; er arbeitet genauso wie C-x u, ist jedoch einfacher zu tippen, wenn Sie den Befehl mehrmals hintereinander ausführen möchten. Der Nachteil von C-_ ist, daß bei -manchen Tastaturen es nicht sofort einsichtig ist, wie man das -eingibt. +manchen Tastaturen nicht sofort einsichtig ist, wie man das eingibt. Eine weitere Eingabemöglichkeit bei vielen Terminals ist C-/. @@ -791,9 +790,9 @@ Auf den meisten Systemen wie Linux oder FreeBSD wird Emacs `suspendiert', wenn Sie C-z drücken, d.h., Sie kehren zurück zur Eingabezeile des Betriebssystems, ohne Emacs zu beenden. In der Regel können Sie dann mittels des Befehls `fg' bzw. `%emacs' wieder zu Emacs -umschalten. Bei X bewirkt C-z in der Regel, daß Emacs ikonofiziert -wird, also als Ikone (`Icon') darauf wartet, mit einem Mausklick bei -Bedarf wieder vergrößert zu werden. +umschalten. Unter X Window System bewirkt C-z in der Regel, daß Emacs +ikonofiziert wird, also als Ikone (`Icon') darauf wartet, mit einem +Mausklick bei Bedarf wieder vergrößert zu werden. Bei Betriebssystemen bzw. Shells, die Suspension von Programmen nicht implementiert haben (z.B. MS-DOS), startet C-z einen @@ -882,7 +881,7 @@ werden kann.] Die Bildschirmzeile unmittelbar über dem Echo-Bereich ist die Statuszeile (`mode line'). Sie schaut ungefähr so aus: --1:** TUTORIAL.de (Fundamental)--L865--58%---------------- +-1:** TUTORIAL.de 58% L865 (Fundamental)---------------------- Diese Zeile gibt nützliche Hinweise über den momentanen Zustand von Emacs und den Text, den Sie gerade editieren. @@ -890,10 +889,10 @@ Emacs und den Text, den Sie gerade editieren. Sie wissen bereits, was der Dateiname bedeutet. `--NN%--' zeigt die momentane Position innerhalb des Textes an: NN Prozent davon sind oberhalb des Bildschirms. Ist der Dateianfang zu sehen, dann -erscheint `--Top--' anstelle von `--00%--'. Analog dazu erscheint -`--Bot--' (für das englische Wort `bottom'), wenn das Dateiende -sichtbar ist. Wenn Sie einen Text betrachten, der komplett auf den -Bildschirm paßt, dann erscheint `--All--'.] +erscheint `Top' anstelle von `00%'. Analog dazu erscheint `Bot' (für +das englische Wort `bottom'), wenn das Dateiende sichtbar ist. Wenn +Sie einen Text betrachten, der komplett auf den Bildschirm paßt, dann +erscheint `All'. Das `L' und die nachfolgenden Ziffern geben die aktuelle Zeilennummer an, in denen sich der Cursor befindet. @@ -962,7 +961,7 @@ Dokumentation zum derzeit aktuellen Hauptmodus bekommen Sie mit C-h m. >> Drücken Sie C-u C-v ein- oder mehrmals, um diese Zeile in die Nähe des oberen Bildschirmrands zu bringen. ->> Lesen Sie nun mittels C-h m die englischeDokumentation zum +>> Lesen Sie nun mittels C-h m die englische Dokumentation zum Textmodus. >> Entfernen Sie schließlich das Dokumentationsfenster mit C-x 1. @@ -972,7 +971,7 @@ Verf (z.B. der Überschreibmodus: Zeichen werden nicht eingefügt, sondern überschreiben den Text). Man kann Nebenmodi ein- und ausschalten unabhängig von anderen Nebenmodi und Hauptmodi; mit anderen Worten, -Sie können zu Ihrem Hauptmodus, keinen, einen oder sogar mehrere +Sie können zu Ihrem Hauptmodus keinen, einen oder sogar mehrere Nebenmodi haben. Ein Nebenmodus, welcher äußerst nützlich ist, besonders für das @@ -989,7 +988,7 @@ ausgeschaltet bzw. eingeschaltet war. Wir sagen, da den Modus umschaltet (`toggle'). >> Geben Sie nun M-x auto-fill-mode ein. Fügen Sie - anschließend eine Zeile ein, die aus lauter "asdf " besteht, und + anschließend eine Zeile ein, die aus lauter `asdf ' besteht, und zwar so lange, bis die Zeile automatisch umgebrochen wird. Vergessen Sie nicht, Leerzeichen einzugeben, da nur dort ein Umbruch erfolgt. @@ -1016,21 +1015,22 @@ Absatzes stehen mu * SUCHEN -------- -Emacs kann Zeichenketten (`strings') entweder vorwärts (`forward') -oder rückwärts (`backward') suchen. Gleichzeitig wird der Cursor an -die nächste Stelle bewegt, wo diese Zeichenkette erscheint. +Emacs kann Zeichenketten (`strings') entweder in Richtung Pufferende +(vorwärts, `forward') oder in Richtung Pufferanfang (rückwärts, +`backward') suchen. Gleichzeitig wird der Cursor an die nächste +Stelle bewegt, wo diese Zeichenkette erscheint. Hier unterscheidet sich Emacs von vielen anderen Editoren, da nämlich die Standard-Suchoperation inkrementelles Suchen ist, d.h., die Suche beginnt dann, wenn Sie die Zeichen eingeben. -Der Befehl für Vorwärtssuchen ist C-s, und C-r für Rückwärtssuchen. +Der Befehl für Vorwärtssuchen ist C-s und C-r für Rückwärtssuchen. ABER HALT! Probieren Sie bitte diese Befehle noch nicht. -Wenn Sie C-s eingeben, dann erscheint die Zeichenkette "I-search:" als -Eingabeaufforderung im Echobereich. Das bedeutet, daß Emacs jetzt in -einer inkrementellen Suche ist und darauf wartet, daß Sie den -gewünschten Suchstring eingeben. beendet die Suche. +Wenn Sie C-s eingeben, dann erscheint die Zeichenkette `I-search:' als +Eingabeaufforderung im Echobereich. Das bedeutet, daß Emacs jetzt +eine inkrementellen Suche ausführt und darauf wartet, daß Sie die zu +suchende Zeichenkette eingeben. beendet die Suche. >> Geben Sie jetzt C-s ein, um einen Suchvorgang zu starten. Schreiben Sie LANGSAM, einen Buchstaben nach dem anderen, das Wort `Cursor', @@ -1061,16 +1061,16 @@ erwecken, geben Sie C-q ein, und lesen Sie dann den Abschnitt am besten tun kann. Wenn Sie sich mitten in einer inkrementellen Suche befinden und - drücken, dann wird das letzte Zeichen im Suchstring gelöscht, -und der Cursor springt zurück auf die letzte Suchposition. -Angenommen, Sie haben "c" eingegeben, um das erste Auftreten von "c" -zu suchen. Geben Sie jetzt "u" ein, dann springt der Cursor zu dem -ersten Auftreten der Zeichenkette "cu". Wenn Sie jetzt mit -das "u" vom Suchstring löschen, dann springt der Cursor zurück zum -ersten "c". Drücken Sie dagegen ein paar mal C-s, um weitere -"cu"-Zeichenketten zu finden, dann bewirkt , daß Sie zum -letzten Auftreten von "cu" zurückspringen, und erst wenn es kein -weiteres "cu" mehr gibt, springt der Cursor zum ersten "c" zurück. + drücken, wird das letzte Zeichen im Suchstring gelöscht, und +der Cursor springt zurück auf die letzte Suchposition. Angenommen, +Sie haben `c' eingegeben, um das erste Auftreten von `c' zu suchen. +Geben Sie jetzt `u' ein, dann springt der Cursor zu dem ersten +Auftreten der Zeichenkette `cu'. Wenn Sie jetzt mit das `u' +vom Suchstring löschen, dann springt der Cursor zurück zum ersten `c'. +Drücken Sie dagegen ein paar mal C-s, um weitere `cu'-Zeichenketten zu +finden, dann bewirkt , daß Sie zum letzten Auftreten von `cu' +zurückspringen, und erst wenn es kein weiteres `cu' mehr gibt, springt +der Cursor zum ersten `c' zurück. Die Suche wird ebenfalls beendet, wenn Sie ein CONTROL- oder META-Zeichen eingeben (mit ein paar Ausnahmen -- Zeichen, die @@ -1210,28 +1210,30 @@ Eingabem Der Standard-Zeichensatz für Deutsch ist Latin-1 (auch bekannt unter dem Namen ISO-8859-1). Wenn anstelle der deutschen Umlaute -unansehnliche Konstrukte wie `\201ä' dargestellt werden, dann ist -die sogenannte Multibyte-Zeichenunterstützung deaktiviert (intern -werden in Emacs nicht-ASCII Zeichensätze durch mehr als ein Byte +unansehnliche Konstrukte wie `\201ä' dargestellt werden, dann ist die +sogenannte Multibyte-Zeichenunterstützung deaktiviert (intern werden +in Emacs nicht-ASCII Zeichensätze durch mehr als ein Byte repräsentiert). Durch den Befehl `M-x toggle-enable-multibyte-characters' wird die -Multibyte-Zeichenunterstützung aktiviert. +Multibyte-Zeichenunterstützung aktiviert. Denken Sie daran, die +Tabulatortaste zur Vervollständigung von Befehlsnamen zu benützen, +z.B. `M-x toggle-e'. Wenn anstelle der Umlaute `ä', `ö' oder `ü' die Zeichen `d', `v' und -`|' erscheinen (also `kleines D', `kleines V', und ein senkrechter +`|' erscheinen (also `kleines D', `kleines V' und ein senkrechter Strich), dann wird das achte Bit von jedem Byte abgeschnitten, sodaß nur ASCII-Zeichen dargestellt werden können. In der Regel gibt es zwei Ursachen für dieses Problem: Sie haben sich nicht `8-bit clean' (z.B. mittels `telnet -8 ...') eingeloggt oder Ihr Telekommunikationsprogramm ist nicht für 8-bit konfiguriert. ->> Geben Sie C-x m ein. Die deutschen Umlaute (so sie von - Ihrem Terminal darstellbar sind) verschwinden und werden durch - Zahlenkonstrukte ersetzt. So wird zum Beispiel Umlaut a (`ä') - dargestellt als `\201ä'. +>> Geben Sie `M-x toggle-enable-multibyte-characters' ein. Die + deutschen Umlaute (so sie von Ihrem Terminal darstellbar sind) + verschwinden und werden durch Zahlenkonstrukte ersetzt. So wird + zum Beispiel Umlaut a (`ä') dargestellt als `\201ä'. >> Aktivieren Sie wieder die Multibyte-Zeichenunterstützung mittels - C-x m. + `M-x toggle-enable-multibyte-characters'. Sehen Sie anstelle der Umlaute leere Kästchen (unter X), dann sollten Sie mit C-x C-c Emacs beenden und folgendermaßen neu starten: @@ -1458,7 +1460,8 @@ geschrieben. Beachten Sie bitte, daß im Zweifelsfalle das englische Original dieser Urheberrechtsnotiz gültig ist (zu finden in der Datei TUTORIAL). -Copyright (c) 1985, 1996, 1997 Free Software Foundation +Copyright (C) 1985, 1996, 1997, 2002, 2003, 2004, + 2005 Free Software Foundation Hiermit wird für jedermann die Erlaubnis erteilt, wörtliche, unveränderte Kopien dieses Dokumentes für jegliches Medium zu @@ -1483,3 +1486,5 @@ freie Software verwenden, verteilen, oder sogar selber schreiben. ;;; Local Variables: ;;; coding: latin-1 ;;; End: + +;;; arch-tag: a8f2fe06-631d-4ae1-887e-446f971b0baa diff --git a/etc/TUTORIAL.es b/etc/TUTORIAL.es index fea5ca6b319..cb5e92a2df3 100644 --- a/etc/TUTORIAL.es +++ b/etc/TUTORIAL.es @@ -1,6 +1,4 @@ -Usted esta viendo el tutorial de Emacs. Vea al final las condiciones -de copiado. Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software -Foundation. +Tutorial de Emacs. Vea al final las condiciones de copiado. Generalmente los comandos de Emacs involucran la tecla CONTROL (algunas veces llamada CTRL O CTL) o la tecla meta (algunas veces @@ -18,32 +16,8 @@ ocasi Nota importante: para terminar la sesión de Emacs teclee C-x C-c (dos caracteres). Los caracteres ">>" en el margen izquierdo indican instrucciones para que usted trate de usar un comando. Por ejemplo: - - - - - - - - - - - - -[Mitad de página en blanco para propósitos didácticos. El texto - continúa abajo] - - - - - - - - - - - - +<> +[Mitad de página en blanco para propósitos didácticos. El texto continúa abajo] >> Ahora teclee C-v (ver la próxima pantalla) para desplazarse a la siguiente pantalla (hágalo manteniendo la tecla control oprimida mientras teclea v). Desde ahora debería hacer esto @@ -1213,7 +1187,8 @@ Por favor, en caso de duda, s siguiente nota de derechos de reproducción (que puede encontrar en el archivo TUTORIAL). -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Se permite a cualquiera hacer o distribuir copias literales de este documento como se recibe, en cualquier medio, siempre que la nota @@ -1237,3 +1212,5 @@ compartiendo software libre! ;;; Local Variables: ;;; coding: latin-1 ;;; End: + +;;; arch-tag: 66aae86e-6f86-4a3e-b82a-44a783f774fd diff --git a/etc/TUTORIAL.fr b/etc/TUTORIAL.fr index 3733054ca6f..30a6f05fe23 100644 --- a/etc/TUTORIAL.fr +++ b/etc/TUTORIAL.fr @@ -1,5 +1,4 @@ Didacticiel d'Emacs. Voir la fin de ce document pour les conditions. -Copyright (c) 1985, 2001, 2002 Free Software Foundation, Inc. Les commandes Emacs utilisent généralement la touche CONTROLE (souvent désignée par CTRL ou CTL) ou la touche META (souvent désignée par EDIT @@ -17,7 +16,7 @@ Tapez C-x C-c (deux caract Dans ce didacticiel, les caractères ">>" en marge gauche indiquent les directions à suivre pour essayer une commande. Ainsi : <> -[Centre de page deliberéement vide. Le texte continue ci-dessous.] +[Centre de page delibérément vide. Le texte continue ci-dessous.] >> Tapez C-v (Voir l'écran suivant) pour passer à l'écran suivant (faites-le, pressez la touche CTRL tout en pressant la touche v). À partir de maintenant, vous devrez le faire à chaque fois que @@ -36,7 +35,7 @@ touche META, EDIT ou ALT). >> Faites M-v, puis C-v plusieurs fois. Si votre terminal en dispose, vous pouvez également utiliser les -touches PgUp et PgDn pour monter ou descendre d'un écran, bien les +touches PgUp et PgDn pour monter ou descendre d'un écran, bien que les combinaisons C-v et M-v soient plus efficaces. * RÉSUMÉ @@ -347,7 +346,7 @@ avant la position courante du curseur. Lorsqu'une ligne de texte devient trop longue pour tenir sur une seule ligne de l'écran, elle se « continue » sur une deuxième ligne d'écran. Une barre de fraction inverse (« \ ») ou, si vous utilisez un -environnement grapgique, une petite flèche recourbée, sur la marge +environnement graphique, une petite flèche recourbée, sur la marge droite indique une ligne qui se poursuit sur la ligne suivante. >> Insérez du texte jusqu'à atteindre la marge droite et continuez @@ -423,7 +422,7 @@ espaces, les effacent (vous ne pouvez donc pas r Notez qu'un simple C-k supprime le contenu de la ligne et qu'un second détruit la ligne elle-même, ce qui fait remonter toutes les lignes suivantes. C-k traite son paramètre numérique d'une façon spéciale : -il détruit ce nombre de lignes ET leurs contenus. Ce n'est pas une +il détruit ce nombre de lignes ET leur contenu. Ce n'est pas une simple répétition : C-u 2 C-k détruit deux lignes et leurs Newlines alors que taper deux fois C-k n'aurait pas le même effet. @@ -523,7 +522,7 @@ sauvegardez, Emacs garde le fichier original sous un nom modifi cas où vous décideriez ensuite d'annuler vos modifications. Si vous examinez le bas de l'écran, vous verrez une ligne qui commence -et finit par des tirets et débute par « --:-- TUTORIAL.fr » ou quelque +et finit par des tirets et débute par « -1:-- TUTORIAL.fr » ou quelque chose comme ça. Cette partie de l'écran montre normalement le nom du fichier que vous êtes en train de visiter. Pour l'instant, vous visitez un fichier appelé « TUTORIAL.fr », qui est votre copie @@ -584,7 +583,7 @@ l' encore. C'est ainsi que l'on crée un fichier avec Emacs : on trouve le fichier, qui démarre vide, puis on insère du texte. Lorsque l'on demande à « sauvegarder » le fichier, Emacs crée alors vraiment le -fichier avec le texte que l'on a inséré. À partir de ce moment là, +fichier avec le texte que l'on a inséré. À partir de ce moment-là, vous pouvez considérer que vous éditez un fichier déjà existant. @@ -638,7 +637,7 @@ fichiers mais la liste obtenue par C-x C-b. Le tampon "*Messages*" ne correspond pas non plus à un fichier ; il contient la liste des messages apparus dans la ligne d'état pendant votre session Emacs. ->> Faites C-x C-b *Messages* pour visualiser le tampon des +>> Faites C-x b *Messages* pour visualiser le tampon des messages. Puis, faites C-x b TUTORIAL pour revenir à ce didacticiel. @@ -666,10 +665,10 @@ non. * EXTENSION DU JEU DE COMMANDES ------------------------------- -Il y bien plus de commandes Emacs qu'il ne serait possible d'en créer -avec tous les caractères de contrôle et les caractères Meta. Emacs -contourne ce problème à l'aide de la commande X (eXtension). Celle-ci -se présente sous deux déclinaisons : +Il y a bien plus de commandes Emacs qu'il ne serait possible d'en +créer avec tous les caractères de contrôle et Meta. Emacs contourne ce +problème à l'aide de la commande X (eXtension). Celle-ci se présente +sous deux déclinaisons : C-x eXtension caractère, suivie d'un seul caractère. M-x eXtension d'une commande nommée, suivie d'un nom long. @@ -742,18 +741,18 @@ param Lorsque vous avez modifié un fichier, mais que vous ne l'avez pas encore sauvegardé, ces modifications pourraient être perdues si votre -système se plantait. Pour vous protéger ce de problème, Emacs écrit +système se plantait. Pour vous protéger de ce problème, Emacs écrit périodiquement un fichier de « sauvegarde automatique » pour chaque fichier en cours d'édition. Le nom de ce fichier commence et se termine par un # : si, par exemple, votre fichier s'appelle -« hello.c », son fichier de sauvegarde automatique s'appellera -« #hello.c# ». Lorsque vous sauvegardez le fichier de la façon +« hello.c », son fichier de sauvegarde automatique s'appellera +« #hello.c# ». Lorsque vous sauvegardez le fichier de la façon habituelle, Emacs détruit son fichier de sauvegarde automatique. Si l'ordinateur se plante, vous pouvez récupérer ce qui a été sauvegardé automatiquement en ouvrant normalement le fichier (celui que vous éditiez, pas la sauvegarde automatique), puis en faisant -M-x recover file. Lorsqu'Emacs vous demande de confirmer, +M-x recover file. Lorsqu'Emacs vous demande de confirmer, tapez yes pour continuer et récupérer ainsi les données sauvées par la sauvegarde automatique. @@ -772,14 +771,14 @@ zone d' La ligne placée immédiatement au dessus de la zone d'écho s'appelle la « ligne de mode ». Elle affiche quelque chose comme ça : ---:** TUTORIAL.fr (Fundamental)--L752--67%---------------- +-1:** TUTORIAL.fr (Fundamental)--L752--67%---------------- Cette ligne donne des informations sur l'état d'Emacs et sur le texte que vous êtes en train d'éditer. Vous savez déjà ce que signifie le nom de fichier -- c'est celui que vous avez chargé. -NN%-- indique votre position actuelle dans le -texte ; cela signifie que NN pourcent du texte se trouve au dessus du +texte ; cela signifie que NN pour cent du texte se trouve au dessus du sommet de l'écran. Si le début du fichier est sur l'écran, il s'affichera --Top-- et non --00%--. Si le bas du texte est sur l'écran, il s'affichera --Bot--. Si tout le texte tient dans l'écran, @@ -802,7 +801,7 @@ Emacs poss prévus pour éditer différents langages et/ou types de texte (mode Lisp, mode Text, etc). À tout instant, il n'y a qu'un seul mode majeur actif et son nom se trouve toujours dans la ligne de mode, à l'endroit -ou « Fundamental » se trouve actuellement. +où « Fundamental » se trouve actuellement. Chaque mode majeur modifie le comportement de quelques commandes. Il existe, par exemple, des commandes pour créer des commentaires dans un @@ -847,7 +846,7 @@ et que la ligne est trop longue. Vous pouvez activer le mode Auto Fill en faisant M-x auto fill mode. Lorsqu'il est activé, vous pouvez le désactiver en -faisant à nouveau M-x auto fill mode. Si le mode est +faisant à nouveau M-x auto fill mode. Si le mode est désactivé, cette commande l'active et, s'il est activé, elle le désactive : on dit que la commande « fait basculer le mode ». @@ -913,10 +912,10 @@ de mettre fin REMARQUE : Sur certains systèmes, C-s gèlera l'écran et vous ne verrez plus rien se produire dans Emacs. Cela indique qu'une -« fonctionnalité » du système d'exploitation, appelée « contrôle de +« fonctionnalité » du système d'exploitation, appelée « contrôle de flux », a intercepté le C-s et ne lui permet pas de parvenir à Emacs. Pour décoincer l'écran, faites C-q puis consultez la section -« Spontaneous Entry to Incremental Search » dans le manuel d'Emacs +« Spontaneous Entry to Incremental Search » dans le manuel d'Emacs pour avoir des avis sur la gestion de cette « fonctionnalité ». Si vous vous trouvez au milieu d'une recherche incrémentale et que @@ -924,7 +923,7 @@ vous tapez , vous remarquerez que cela supprime le dernier caractère de la chaîne recherchée et que la recherche reprend à l'endroit où elle se trouvait précédemment. Supposons, par exemple, que vous ayiez tapé « c » pour trouver la première occurrence de -« c ». Si vous tapez maintenant « u », le curseur ira sur la première +« c ». Si vous tapez maintenant « u », le curseur ira sur la première occurrence de « cu ». Faites : cela supprime le « u » de la chaîne de recherche et le curseur revient à la première occurrence de « c ». @@ -940,7 +939,7 @@ haut dans le texte, faites plut C-s s'applique également à C-r, sauf que la direction de la recherche est inversée. -* FENETRES MULTIPLES +* FENÊTRES MULTIPLES -------------------- L'une des caractéristiques les plus agréables d'Emacs est que vous @@ -1038,7 +1037,7 @@ de possibilit ici. Cependant, vous pouvez vouloir en apprendre plus, car il a bien d'autres fonctionnalités utiles. Emacs dispose de commandes pour lire la documentation sur ses commandes. Ces commandes d'« aide » -commencent toutes par le caractère C-h, le « caractère d'aide ». +commencent toutes par le caractère C-h, le « caractère d'aide ». Pour utiliser l'aide, tapez C-h suivi d'un caractère indiquant le type d'aide que vous souhaitez. Si vous êtes VRAIMENT perdu, faites C-h ? @@ -1113,7 +1112,7 @@ leur correspondent, comme find-file. C-h i Manuels en ligne (alias Info). Cette commande vous place dans un tampon spéciale, appelé « *info* », où vous pouvez lire les manuels en ligne des paquetages installés sur - votre système. Faites m emacs  pour lire le + votre système. Faites m emacs pour lire le manuel d'Emacs. Si vous n'avez jamais utilisé Info auparavant, tapez ? et Emacs vous fera faire une visite guidée des fonctionnalités du mode Info. Lorsque vous @@ -1133,7 +1132,7 @@ frappe, et dired, qui simplifie la manipulation des fichiers. La complétion permet d'éviter les frappes inutiles. Si, par exemple, vous voulez basculer vers le tampon *Messages*, tapez simplement -C-x b *M et Emacs complètera le nom du tampon s'il peut le +C-x b *M et Emacs complètera le nom du tampon s'il peut le déterminer à partir de ce que vous avez saisi avant la tabulation. La complétion est décrite dans la version Info du manuel Emacs, à la rubrique "Completion". @@ -1171,7 +1170,8 @@ Cette version du didacticiel, comme GNU Emacs, est plac copyright, et vous pouvez en distribuer des copies sous certaines conditions : -Copyright (c) 1985, 1996, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Chacun peut créer ou distribuer des copies de ce document tel qu'il l'a reçu, sur n'importe quel support, pourvu que la note de @@ -1197,4 +1197,7 @@ Cette traduction fran ;;; Local Variables: ;;; coding: latin-1 +;;; sentence-end-double-space: nil ;;; End: + +;;; arch-tag: f6c5c2ff-bf24-477c-bd18-32f76f51ba65 diff --git a/etc/TUTORIAL.it b/etc/TUTORIAL.it index 4d8936243b8..d310a16eae4 100644 --- a/etc/TUTORIAL.it +++ b/etc/TUTORIAL.it @@ -1,5 +1,4 @@ -Esercitazione di Emacs. Copyright (c) 2003 Free Software Foundation, Inc. -Condizioni d'uso alla fine del file. +Esercitazione di Emacs. Condizioni d'uso alla fine del file. I comandi di Emacs comportano generalmente l'uso del tasto CONTROL (a volte indicato con CTRL o CTL) o del tasto META (a volte indicato con EDIT @@ -817,7 +816,7 @@ margine che si desidera. testo e osserva come Emacs interrompe le righe a 20 caratteri. Infine torna di nuovo a un margine di 70 caratteri con C-x f. -Se si modifica il testo all'interno di un paragrafo la modalità +Se si modifica il testo all'interno di un paragrafo la modalità "Auto Fill" non lo risistema. Per risistemare i margini di un paragrafo @@ -1094,7 +1093,7 @@ distribuito con il permesso di farne copie a determinate condizioni: indicativo, restando comunque inteso il fatto che è quella originale a fare fede. - Copyright (c) 2003 Free Software Foundation +Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. È permesso a chiunque copiare e distribuire attraverso ogni mezzo copie fedeli di questo documento così come viene ricevuto, a condizione che @@ -1113,3 +1112,9 @@ stesso spirito. Per favore, leggete il file COPYING e poi distribuite copie di GNU Emacs ai vostri amici. Aiutateci a combattere l'ostruzionismo al software ("la proprietà") usando, scrivendo e condividendo software libero! + +;;; Local Variables: +;;; coding: latin-1 +;;; End: + +;;; arch-tag: c6f7079d-8032-473d-91d4-36754af15719 diff --git a/etc/TUTORIAL.ja b/etc/TUTORIAL.ja index 06a76a5908b..dec03f35d20 100644 --- a/etc/TUTORIAL.ja +++ b/etc/TUTORIAL.ja @@ -1,5 +1,4 @@ -$B$"$J$?$,8=:_8+$F$$$k$N$O(B Emacs $BF~Lg%,%$%I$G$9!#%U%!%$%k:G8e$r;2>H$N$3$H!#(B -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. +Emacs $BF~Lg%,%$%I(B. $BK\%U%!%$%k$NCx:n8"$K$D$$$F$O:G8e$r8fMw2<$5$$!#(B Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!$l$KB3$/2~9TJ8;z$r>C$7$^$9$,!"(BC-k $B$r#2EY%?%$%W$7 $B>C5n$7$?J8>O$rI|3h$5$;$kA`:n$r:FF~!J(Byanking$B!K$H8F$S$^$9!#>C$7$?J8>O$O!"(B $B85$HF1$8>l=j$K$G$b85$H$O0c$&>l=j$K$G$b!"$5$i$K$OJL$N%U%!%$%k$K$b:FF~$G(B -$B$-$^$9!#$^$?!"2?EY$b:FF~$7$FJ8>O$N%3%T!<$rJ#?t:n$k$3$H$b$G$-$^$9!#(B +$B$-$^$9!#$^$?!"2?EY$b:FF~$9$k$3$H$GJ8>O$N%3%T!<$rJ#?t:n$k$3$H$b$G$-$^$9!#(B $B:FF~$N$?$a$N%3%^%s%I$O(B C-y $B$G$9!#$3$l$O!":G8e$K>C5n$7$?J8>O$r8=:_%+!<(B $B%=%k$,$"$k0LCV$K:FF~$7$^$9!#(B @@ -592,7 +591,7 @@ Emacs $B$K$O!"%3%s%H%m!<%kJ8;z$d%a%?J8;z$K3dEv$F$i$l$k$h$j$b$:$C$H$:$C$H(B $B;H$$$^$9!#$=$l$K$O!"0J2<$N#2$D$NA0$K$h$k3HD%!#B3$1$F%3%^%s%I$NL>A0$rF~NO$7$^$9!#(B + M-x $BL>A0$K$h$k3HD%!#B3$1$F%3%^%s%I$NL>A0$rF~NO$7$^$9!#(B $B$3$l$i$O!"0lHLE*$K$OJXMx$@$1$l$I$b!"$3$l$^$G8+$F$-$?$b$N$[$I$OIQHK$KMQ(B $B$$$i$l$J$$%3%^%s%I$G$9!#(BC-x C-f $B!J%U%!%$%k$r3+$/!K$d(B C-x C-s$B!J%U%!%$%k(B @@ -1027,7 +1026,7 @@ F10 h r$B!K$G$"$m$&$H!"$=$l$rFI$a$P(B Emacs $B$K$D$$$F$b$C$HB?$/$r3X$Y$^$9!# $B!v$3$NK]LuHG$K$D$$$F$Nnn8&(B $(C>20m(B $(C885i0m(B $(C0x@/GT@87N=a(B $(Cn(B $(C9fGX8&(B ("$(C betekent: houd de CONTROL toets ingedrukt en type de toets - Dus C-f wordt: houd de CONTROL toets ingedrukt en type f. - M- betekent: houd de META, EDIT of ALT toets ingedrukt en type de - toets . Als er geen toets META, EDIT of ALT is, kun je ook - eerst de ESC toets typen, gevolgd door . We refereren aan - de ESC toets als . + C- betekent: houd de CONTROL-toets ingedrukt en tik de toets + Dus C-f wordt: houd de CONTROL-toets ingedrukt en tik f. + M- betekent: houd de META-, EDIT- of ALT-toets ingedrukt en tik + de toets . Als er geen toets META, EDIT of ALT is, kun + je ook eerst de ESC-toets tikken, gevolgd door . We + verwijzen naar de ESC-toets als . -BELANGRIJK: om Emacs te verlaten, type C-x C-c (twee tekens). -De tekens ">>" tegen de linker kantlijn nodigen je uit om een -bepaald commando te proberen. Bijvoorbeeld: -<> ->> Type nu C-v (volgend scherm) om naar het volgende scherm te gaan. - (Geef nu het commando door de control toets ingedrukt te houden - terwijl je de v typt.) - Vanaf nu moet je dit steeds herhalen als je klaar bent met het - lezen van een scherm. +BELANGRIJK: om Emacs te verlaten, tik C-x C-c (twee tekens). +De tekens ">>" tegen de linkerkantlijn nodigen je uit om een bepaald +commando te proberen. Bijvoorbeeld: +<> +[Lege regels om didactische redenen. Hieronder gaat het verder.] +>> Tik nu C-v (volgend scherm) om naar het volgende scherm te gaan. + (Geef nu het commando door de CONTROL-toets ingedrukt te + houden terwijl je de v tikt.) Vanaf nu moet je dit steeds + herhalen als je klaar bent met het lezen van een scherm. -Merk op dat er een tweeregelige overlap is als je van een scherm naar -het volgende scherm gaat; dit zorgt voor continuiteit bij het lezen van -de tekst. +Merk op dat er een overlapping van twee regels is als je van een +scherm naar het volgende gaat; dat zorgt voor continuïteit bij het +lezen van de tekst. -Het eerste wat je moet weten is hoe je naar verschillende plaatsen in de -tekst kan bewegen. Je weet al hoe je een scherm vooruit moet gaan: met -C-v. Om een scherm terug te gaan, type M-v (houd de META toets ingedrukt -en type v, of type v als je geen META, EDIT of ALT toets hebt). +Het eerste wat je moet weten, is hoe je je naar verschillende plaatsen +in de tekst kan bewegen. Je weet al hoe je een scherm vooruit moet +gaan: met C-v. Om een scherm terug te gaan, tik je M-v (houd de +META-toets ingedrukt en tik v, of tik v als je geen META-, EDIT- +of ALT-toets hebt). ->> Probeer nu een paar keer M-v, steeds gevolgd door C-v. +>> Probeer nu een paar keer M-v, steeds gevolgd door C-v. * SAMENVATTING -------------- -De volgende commando's zijn handig volledige schermen te bekijken: +De volgende commando's zijn handig om volledige schermen te bekijken: - C-v ga een scherm vooruit - M-v ga een scherm terug - C-l maak het scherm schoon en teken alle tekst - opnieuw, waarbij de regel waarop de cursor - staat op het midden van het scherm terecht - komt. (C-l is control-L, niet control-1.) + C-v Ga een scherm vooruit + M-v Ga een scherm terug + C-l Maak het scherm schoon en teken alle tekst opnieuw, + waarbij de regel waarop de cursor staat, op het + midden van het scherm terecht komt. (C-l is + CONTROL-L, niet CONTROL-1.) ->> Kijk waar de cursor is en onthoud de tekst in zijn omgeving. - Type C-l. - Zoek de cursor en merk op dat 'ie nog steeds bij dezelfde tekst staat. +>> Kijk waar de cursor staat, en onthoud de tekst er omheen. Tik C-l. + Zoek de cursor en merk op dat hij nog steeds bij dezelfde tekst + staat. + +Als je toetsenbord PageUp- en PageDn-toetsen heeft dan kun je deze ook +gebruiken om een scherm terug dan wel vooruit te gaan, maar het werken +met C-v en M-v is efficiënter. * BASISCOMMANDO'S CURSORBEWEGINGEN ---------------------------------- -Het is handig om per scherm te bewegen, maar hoe beweeg je nu +Het is handig om je per scherm te bewegen, maar hoe beweeg je je nu naar een specifieke plaats op het scherm? -Er is een aantal manieren waarop je dit kan doen. De basismanier is -m.b.v de commando's C-p, C-b, C-f en C-n. Elk van deze commando's -verplaatst de cursor precies een rij of colomn in een bepaalde richting -op het scherm. Hier volgt een figuur met de vier commando's en de -richting waarin ze de cursor bewegen: +Er is een aantal manieren waarop je dit kan doen. Je kan de +pijltjestoetsen gebruiken, maar het is efficiënter om je handen in de +standaardhouding te laten, en de commando's C-p, C-b, C-f en C-n te +gebruiken. Elk van deze commando's verplaatst de cursor precies een +regel of teken in een bepaalde richting op het scherm. Hier volgt een +figuur met de vier commando's en de richting waarin ze de cursor +bewegen: vorige regel, C-p : @@ -71,528 +77,602 @@ richting waarin ze de cursor bewegen: : volgende regel, C-n ->> Verplaats, m.b.v. C-n of C-p, de cursor naar de middelste regel van - de figuur. Type dan C-l om de hele figuur in het midden van het +>> Verplaats, met C-n of C-p, de cursor naar de middelste regel van de + figuur. Tik dan C-l om de hele figuur in het midden van het centrum te plaatsen. -Met een beetje kennis van het engels zijn deze commando's gemakkelijk te -onthouden: de P komt van previous (vorige), de N van next (volgende), de -B van backward (achteruit) en de F van forward (vooruit). Dit zijn de -basiscommando's om de cursor te bewegen, dus je zult ze CONTINUE -gebruiken: Het is slim als je ze nu leert te gebruiken. +Met een beetje kennis van het Engels zijn deze commando's gemakkelijk +te onthouden: de p komt van "previous" (vorige), de n van "next" +(volgende), de b van "backward" (achteruit) en de f van "forward" +(vooruit). Dit zijn de basiscommando's om de cursor te bewegen, dus +je zult ze VOORTDUREND gebruiken: het is vooruitziend als je ze nu +leert te gebruiken. ->> Type een paar keer C-n om de cursor op deze regel te krijgen. +>> Tik een paar keer C-n om de cursor op deze regel te krijgen. ->> Beweeg binnen de regel met C-f (herhaaldelijk) en terug omhoog met C-p - Let op wat C-P doet als de cursor midden in een regel staan. +>> Beweeg je binnen de regel met C-f (herhaaldelijk) en terug omhoog + met C-p. Let op wat C-p doet als de cursor midden in een regel + staat. -Elke regel eindigt met een Newline teken (het engelse `new line' betekent -`nieuwe regel'); dit teken scheidt elke regel van de volgende. De laatste -regel in een bestand moet eigenlijk ook met een Newline eindigen (maar dat -is niet noodzakelijk voor Emacs ). +Elke regel eindigt met een Newline-teken (het Engelse "new line" +betekent "nieuwe regel"); dit teken scheidt elke regel van de +volgende. De laatste regel in een bestand zou eigenlijk ook met een +Newline moeten eindigen (maar dat is niet noodzakelijk voor Emacs). ->> Type een C-b terwijl de cursor aan het begin van een regel staat. - De cursor zal naar het eind van de vorige regel bewegen, omdat je - achteruit over het Newline teken gaat. +>> Probeer C-b aan het begin van een regel. De cursor zal zich naar + het eind van de vorige regel bewegen, omdat je achteruit over het + Newline teken gaat. -Net als C-b kan ook C-f over Newline tekens heen bewegen. +Net als C-b kan ook C-f zich over Newline-tekens heen bewegen. ->> Type nog wat C-b's zodat je door krijgt waar de cursor is. - Type dan C-f's om terug naar het einde van de regel te bewegen. - Een C-f beweegt dan naar de volgende regel. +>> Tik nog een aantal keren het commando C-b, zodat je een gevoel + krijgt waar de cursor is. Tik dan enkele keren C-f om de cursor + terug naar het einde van de regel te bewegen. Een verder C-f + commando beweegt de cursor dan naar de volgende regel. -Wanneer je de cursor voorbij het begin of het einde van het scherm beweegt -zal de tekst over het scherm heen schuiven. Dit heet `scrollen', of -`schuiven' in goed nederlands. Door te scrollen zorgt Emacs ervoor dat -de cursor de gewenste beweging kan doen zonder dat de cursor van het -scherm af beweegt. +Wanneer je de cursor voorbij het begin of het einde van het scherm +beweegt, zal de tekst over het scherm heen schuiven. Dit heet +"scrollen", of "schuiven" in goed Nederlands. Door te scrollen zorgt +Emacs ervoor dat de cursor de gewenste beweging kan maken zonder dat +de cursor van het scherm af beweegt. ->> Probeer de cursor voorbij de onderkant van het scherm te bewegen met - C-n en zie wat er gebeurt. +>> Probeer de cursor voorbij de onderkant van het scherm te bewegen + met C-n en zie wat er gebeurt. -Als beweging op karakterbasis te langzaam gaat, kan je ook per woord -bewegen. M-f (Meta-f) beweegt een woord vooruit en M-b een woord -achteruit. +Als de beweging per teken te langzaam gaat, kan je de cursor ook per +woord bewegen. M-f (META-f) beweegt de cursor een woord vooruit en +M-b een woord achteruit. ->> Type een paar M-f's en M-b's. +>> Tik enkele keren M-f en M-b. -Als je midden in een woord staan beweegt M-f naar het eind van het -woord. Als je op witruimte tussen woorden staat beweegt M-f naar het -eind van het volgende woord. M-b beweegt analoog, de andere kant op. +Als je midden in een woord staat, beweegt M-f de cursor naar het eind +van het woord. Als je op een witte ruimte tussen twee woorden staat, +beweegt M-f de cursor naar het eind van het volgende woord. Het +commando M-b beweegt de cursor analoog de andere kant op. ->> Type een paar M-f's en M-b's met tussendoor wat C-f's en C-b's zodat - je ziet wat M-f en M-b doen vanaf bepaalde plaatsen in een woord en - tussen twee woorden. +>> Tik enkele keren M-f en M-b en daar tussendoor een paar maal C-f en + C-b, zodat je ziet wat M-f en M-b doen vanaf bepaalde plaatsen in + een woord en tussen twee woorden. -Merk op dat er een analogie zit tussen enerzijds C-f en C-b en -anderzijds M-f en M-b. Het is bij veel commando's zo dat Meta tekens +Merk op dat er een analogie bestaat tussen enerzijds C-f en C-b en +anderzijds M-f en M-b. Het is bij veel commando's zo dat META-tekens gebruikt worden om iets te doen in eenheden van de taal (woorden, -zinnen, paragrafen) terwijl Control tekens te maken hebben met dingen -die los staan van wat je aan het editen bent (tekens, regels, etc). +zinnen, alinea's) terwijl CONTROL-tekens te maken hebben met dingen +die los staan van wat je aan het bewerken bent (tekens, regels, enz.). -Deze analogie gaat ook op voor regels en zinnen: C-a en C-e bewegen naar -het begin of eind van een regel, terwijl M-a en M-e naar het begin of -eind van een zin gaan. +Deze analogie gaat ook op voor regels en zinnen: C-a en C-e bewegen de +cursor naar het begin of eind van een regel, terwijl met M-a, +respectievelijk M-e, de cursor naar het begin, respectievelijk het +eind, van een zin gaat. ->> Probeer een paar C-a's gevolgd door een paar C-e's. - Probeer een paar M-a's gevolgd door een paar M-e's. +>> Tik enkele keren C-a, en dan een enkele keren C-e. + Tik een paar maal M-a, en dan enkele keren M-e. -Zie hoe herhaalde C-a's niets doen, terwijl herhaalde M-a's steeds een -zin terug bewegen. Alhoewel ze niet volledig overeenkomen is het gedrag -van allebei niet onnatuurlijk. +Bemerk hoe herhaalde C-a commando's niets doen, terwijl herhaalde M-a +commando's de cursor steeds een zin achteruit bewegen. Alhoewel ze +niet volledig overeenkomen, is het gedrag van beide heel natuurlijk. -De plaats van de cursor in de tekst wordt `punt' genoemd (zonder -lidwoord, `point' in het engels). Anders gezegd: de cursor laat op het -scherm de plek zien waarop punt in de tekst staat. +De plaats van de cursor in de tekst wordt "punt" genoemd (zonder +lidwoord, "point" in het Engels). Anders gezegd: de cursor laat op +het scherm de plek zien waar punt in de tekst staat. -Nu volgt een samenvatting van eenvoudige cursorbewegingsoperaties, -inclusief die commando's die per woord of zin bewegen: +Nu volgt een samenvatting van eenvoudige cursorbewegingen, met +inbegrip van de commando's die de cursor per woord of zin bewegen: - C-f ga een teken vooruit - C-b ga een teken achteruit + C-f Ga een teken vooruit + C-b Ga een teken achteruit - M-f ga een woord vooruit - M-b ga een woord achteruit + M-f Ga een woord vooruit + M-b Ga een woord achteruit - C-n ga naar de volgende regel - C-p ga naar de vorige regel + C-n Ga naar de volgende regel + C-p Ga naar de vorige regel - C-a ga naar het begin van de regel - C-e ga naar het eind van de regel + C-a Ga naar het begin van de regel + C-e Ga naar het eind van de regel - M-a ga terug naar het begin van de zin - M-e ga vooruit naar het eind van de zin + M-a Ga terug naar het begin van de zin + M-e Ga vooruit naar het eind van de zin ->> Probeer al deze commando's een paar keer als oefening. - Deze commando's worden het frequentst gebruikt. +>> Probeer al deze commando's een paar keer als oefening. Deze + commando's worden het vaakst gebruikt. -Er zijn nog twee belangrijk cursorbewegingsoperaties: M-< -(Meta kleiner-dan) beweegt naar het begin van het bestand, -en M-> (Meta groter-dan) beweegt naar het eind. +Er zijn nog twee belangrijke cursorbewegingen: M-< (META kleiner-dan) +beweegt de cursor naar het begin van het bestand, en M-> (META +groter-dan) beweegt hem naar het eind. -Op de meeste toetsenborden zit de "<" boven de comma, zodat je de Shift -toets (ook wel bekend als de hoofdlettertoets) moet gebruiken om het "<" -teken in te typen. Op deze toetsenborden moet je ook de shift gebruiken -om M-< in te typen: zonder shift zou je M-, (Meta komma) typen. +Op de meeste toetsenborden zit de '<' boven de komma, zodat je de +Shift-toets (ook wel bekend als de hoofdlettertoets) moet gebruiken om +het '<'-teken in te tikken. Op deze toetsenborden moet je ook de +shift gebruiken om M-< in te tikken: zonder shift zou je M-, (META +komma) tikken. ->> Type nu M-< om naar het begin van dit bestand te gaan. +>> Tik nu M-< om naar het begin van dit bestand te gaan. Gebruik daarna C-v om hier weer terug te komen. ->> Type nu M-> om naar het eind van het bestand te springen. +>> Tik nu M-> om naar het eind van het bestand te springen. Gebruik daarna M-v om hier weer terug te komen. -Als je toetsenbord pijltjestoetsen heeft kan je ook die gebruiken om de -cursor te verplaatsen. We raden je aan om C-b, C-f, C-n en C-p op zijn -minst te leren, om drie redenen. Ten eerste werken ze op alle -toetsenborden, ook die zonder pijltjestoetsen. Ten tweede zul je merken -dat, wanneer je eenmaal wat ervaring hebt opgedaan in omgaan met Emacs, -het gebruik van deze CTRL tekens sneller is dan de pijltjestoetsen (omdat -je handen in de typehouding kunnen blijven). Ten derde, als je eenmaal -gewend bent aan deze commando's met CTRL tekens, kan je makkelijk andere -geavanceerde cursorbewegingscommandos leren. - -De meeste Emacs commando's accepteren een numeriek argument. Voor de +Als je toetsenbord pijltjestoetsen heeft, kan je die ook gebruiken om +de cursor te verplaatsen. We raden je aan om C-b, C-f, C-n en C-p te +leren, om drie redenen. Ten eerste werken ze op alle toetsenborden, +ook die zonder pijltjestoetsen. Ten tweede zul je merken dat wanneer +je eenmaal wat ervaring hebt opgedaan in de omgang met Emacs, het +gebruik van de CONTROL-tekens sneller is dan werken met de +pijltjestoetsen (omdat je handen in de normale tikpositie kunnen +blijven). Ten derde, als je eenmaal gewend bent aan deze commando's +met CONTROL-tekens, kan je makkelijk andere gevorderde +cursorbewegingscommando's leren. + +De meeste Emacs-commando's accepteren een numeriek argument. Voor de meeste commando's is dit argument het aantal keren dat het commando -herhaald moet worden. Je geeft dit numerieke argument aan door voor het -commando, C-u gevolgd door de cijfers van het getal te typen. Als je -toetsenbord een META (of EDIT of ALT) toets heeft, is er ook een andere -manier om het getal aan te geven: type de cijfers terwijl je de META toets -ingedrukt houdt. We raden je aan de C-u manier te leren omdat die werkt -op elk willekeurig toetsenbord. +herhaald moet worden. Je geeft dit numerieke argument aan met C-u en +vervolgens de cijfers van het getal, vóór het commando. Als je +toetsenbord een META- (of EDIT- of ALT-) toets heeft, is er ook een +andere manier om het getal aan te geven: tik de cijfers terwijl je de +META toets ingedrukt houdt. We raden je aan de C-u manier te leren +omdat die beschikbaar is op elke terminal. Bijvoorbeeld, C-u 8 C-f beweegt de cursor 8 plaatsen naar voren. >> Probeer eens om met C-n of C-p en een numeriek argument de cursor - met slechts een commando naar een regel in de buurt van deze zin - te bewegen. + met slechts een commando naar een regel in de buurt van deze zin te + bewegen. + +Voor de meeste commando's is het numerieke argument het aantal keren +dat het commando herhaald moet worden. Voor sommige commando's +betekent het echter iets anders. Verschillende commando's (die je +totnogtoe niet geleerd hebt) gebruiken het als een vlag -- de +aanwezigheid van een prefix-argument, ongeacht zijn waarde, maakt dat +het commando iets anders doet. -Voor de meeste commando's is het numerieke argument het aantal keren dat -het commando herhaald moet worden. Voor sommige commando's betekent het -echter iets anders, en C-v en M-v vallen hier ook onder. Met een numeriek -argument verschuiven deze commando's de tekst het aangegeven aantal regels -in plaats van (bijna) een heel scherm. Bijvoorbeeld, C-u 4 C-v verschuift -de tekst 4 regels. +C-v en M-v vormen een andere uitzondering. Met een numeriek argument +verschuiven deze commando's de tekst het aangegeven aantal regels in +plaats van (bijna) een heel scherm. Bijvoorbeeld, C-u 4 C-v +verschuift de tekst 4 regels. >> Probeer nu C-u 8 C-v. -Als het goed is is de tekst daarmee 8 regels opgeschoven. Als je het weer -terug omlaag wil scrollen kan je een argument aan M-v geven. +Daarmee zou je tekst 8 regels opgeschoven moeten zijn. Als je terug +omlaag wil scrollen, kan je M-v een argument geven. -Als je een windowing systeem gebruikt, zoals X Windows, dan zou je een -lange rechthoek moeten zien aan de linkerkant van het Emacs window. Deze -rechthoek heet een scrollbar (misschien is `verschuifbalk' een goede -vertaling). Je kan de tekst scrollen door met de muis in de scrollbar te -klikken. +Als je een scherm met vensters gebruikt, zoals X Windows of +MS-Windows, zou je een grote rechthoek moeten zien aan de linkerkant +van het Emacs-venster. Deze rechthoek heet een schuifbalk +("scrollbar"). Je kan de tekst scrollen door met de muis in de +schuifbalk te klikken. ->> Klik met de middelste muisknop bovenaan het donkere gebied in de - scrollbar. Dit zou de tekst moeten scrollen naar een positie die - afhankelijk is van hoe hoog of laag je klikt. +>> Klik met de middelste muisknop bovenaan het heldere gebied in de + schuifbalk. Dit zou de tekst moeten verschuiven naar een positie + die afhankelijk is van hoe hoog of laag je klikt. ->> Beweeg de muis heen en weer terwijl je de middelste muisknop ingedrukt - houdt. Je zal zien dat de tekst met de muis mee heen en weer scrollt. +>> Beweeg de muis op en neer terwijl je de middelste muisknop + ingedrukt houdt. Je zal zien dat de tekst met de muis mee heen en + weer scrollt. * ALS EMACS HANGT ----------------- -Als Emacs niet meer op commando's reageert kan je haar veilig onderbreken -door C-g te typen. Je kan C-g gebruiken om een commando te stoppen als -het te lang duurt om uit te voeren. +Als Emacs niet meer op commando's reageert, kan je het veilig +onderbreken door C-g te tikken. Je kan C-g gebruiken om een commando +te stoppen als het te lang duurt om uit te voeren. -Je kan C-g ook gebruiken om een numeriek argument weg te gooien of -om het begin van een commando dat je niet wilt afmaken te vergeten. +Je kan C-g ook gebruiken om een numeriek argument te verwijderen of om +het begin van een commando dat je niet wilt afmaken, te verwijderen. ->> Type nu C-u 100 om een numeriek argument te maken met de waarde 100, en - type dan C-g. Type vervolgens C-f. Als het goed is is de cursor maar - een positie verplaatst, omdat het argument weggegooid hebt met C-g. +>> Tik nu C-u 100 om een numeriek argument te maken met de waarde 100, + en tik dan C-g. Tik vervolgens C-f. Het zou de cursor maar één + positie mogen verplaatsen, omdat je het argument verwijderd hebt + met C-g. -Als je per ongeluk een typt kan je daarvan komen met een C-g. +Als je per ongeluk een tikt, kan je dat ongedaan maken met het +commando C-g. -* ONMOGELIJKE COMMANDO'S ------------------------- +* UITGESCHAKELDE COMMANDO'S +--------------------------- -Sommige Emacs commando's zijn onmogelijk gemaakt zodat beginnende +Sommige Emacs-commando's zijn uitgeschakeld zodat beginnende gebruikers ze niet per ongeluk kunnen uitvoeren. -Als je een van de onmogelijke commando's intypt laat Emacs uitleg zien -over het commando dat je gegeven hebt en vraagt of je het werkelijk uit -wilt voeren. +Als je een van de uitgeschakelde commando's intikt, laat Emacs uitleg +zien over het commando dat je gegeven hebt, en vraagt of je het +werkelijk wil uitvoeren. -Wanneer je het commando echt wilt uitvoeren, type dan Spatie (de -spatiebalk) als antwoord op de vraag. Normaliter wil je het commando niet -uitvoeren en beantwoord je de vraag met "n" (van `no' of `nee'). +Wanneer je het commando echt wil uitvoeren, tik dan (de +spatiebalk) als antwoord op de vraag. Normaal wil je het commando +niet uitvoeren en beantwoord je de vraag met "n" (van "no" of "nee"). ->> Type C-x C-l (een onmogelijk commando), - en type dan n als antwoord op de vraag. +>> Tik C-x C-l (een uitgeschakeld commando), en tik dan n als antwoord + op de vraag. * VENSTERS ---------- -Emacs kan meerdere vensters laten zien, elk venster met zijn eigen tekst. -We zullen later uitleggen hoe je met meerdere vensters om kan gaan. Op -dit moment willen we slechts uitleggen hoe je van extra vensters af kunt -komen en terug kan keren naar simpelweg editen met 1 venster. Het is -eenvoudig: +Emacs kan meerdere vensters laten zien, elk venster met zijn eigen +tekst. We zullen later uitleggen hoe je met meerdere vensters om kan +gaan. Op dit moment willen we slechts uitleggen hoe je van extra +vensters af kunt komen en terug kan keren naar het werken met één +venster. Het is eenvoudig: + + C-x 1 Een enkel venster (dat wil zeggen: verwijder alle + andere vensters). - C-x 1 een enkel venster (i.e. gooi alle andere vensters weg) +Het commando is CONTROL-x gevolgd door het cijfer 1. C-x 1 vergroot +het venster waar de cursor in staat tot het hele scherm. Alle andere +vensters worden verwijderd. -Het commando is Control-x gevolgd door het cijfer 1. C-x 1 vergroot het -venster waar de cursor in staat tot het hele scherm. Alle andere vensters -worden weggegooid. +>> Zet de cursor op deze regel en tik C-u 0 C-l. +>> Tik nu C-h k C-f. + Zie hoe dit venster kleiner is geworden, terwijl een nieuw venster + verschijnt om de documentatie van het C-f commando te laten zien. ->> Zet de cursor op deze regel en type C-u 0 C-l. ->> Type nu Control-h k Control-f. - Zie hoe dit venster kleiner wordt, terwijl een nieuw venster verschijnt - om de documentatie van het Control-f commando te laten zien. +>> Tik nu C-x 1 en zie het documentatievenster verdwijnen. ->> Type nu C-x 1 en zie het documentatievenster verdwijnen. +Dit commando is anders dan de commando's die je tot nu toe geleerd +hebt aangezien het uit twee tekens bestaat. Het begint met het teken +CONTROL-x. Er zijn een heleboel commando's die met CONTROL-x +beginnen. Veel van die commando's hebben te maken met vensters, +bestanden, buffers, en gelijkaardige dingen. Dergelijke commando's +bestaan uit twee, drie of vier tekens. * TOEVOEGEN EN WEGHALEN ----------------------- -Als je tekst toe wilt voegen type je die eenvoudigweg in. Tekens die je -kan zien, zoals A, 7, *, en dergelijke, worden door Emacs als tekst -ge-interpreteerd en meteen aan de tekst toegevoegd. Type (de -`volgende regel' toets) om een Newline toe te voegen en dus een nieuwe +Als je tekst toe wil voegen, tik je die eenvoudigweg in. Tekens die +je kan zien, zoals A, 7, * en dergelijke, worden door Emacs als tekst +geïnterpreteerd en meteen aan de tekst toegevoegd. Tik (de +"volgende regel"-toets) om een Newline toe te voegen en dus een nieuwe regel te beginnen. -Je kan het laatste teken dat je intypte weghalen door te typen. - is een toets op het toetsenbord, die misschien ook wel "Del" -heet. In sommige gevallen dient de "Backspace" toets als , maar -niet altijd! - -In het algemeen haalt het teken dat juist voor de cursorpositie -staat weg. - ->> Probeer dit nu: type een paar letters en haal ze weer weg door een paar - keer op te drukken. Maak je niet druk over het feit dat dit - bestand verandert; je zal niets veranderen aan de originele versie van - deze uitleg. Je zit slechts je eigen copie te wijzigen. - -Als een regel tekst te lang wordt om op een regel op het scherm te laten -zien dan gaat de regel verder op een volgende schermregel. Een backslash -("\") in de rechtermarge laat dan zien dat de regel op de volgende +Je kan het laatste teken dat je hebt ingetikt weghalen door +te tikken. is een toets op het toetsenbord -- dezelfde +toets die je normaal gesproken gebruikt, buiten Emacs, om het laatst +ingetikte teken te wissen. Het is meestal een grote toets, een paar +rijen boven de -toets, waar "Delete", "Del" of "Backspace" op +staat. + +Als er op die grote toets "Backspace" staat, dan is dat degene die je +gebruikt voor . Er kan op een andere plaats ook nog een +andere toets zijn waarop "Delete" staat, maar dat is niet . + +In het algemeen haalt het teken weg dat juist voor de +cursorpositie staat. + +>> Probeer dit nu: tik een paar letters en haal ze weer weg door een + paar keer op te drukken. Maak je niet druk over het feit + dat dit bestand verandert; je zal niets veranderen aan de originele + versie van deze inleiding. Je zit slechts je eigen kopie te + wijzigen. + +Als een regel tekst te lang wordt om helemaal op het scherm getoond te +worden, dan gaat hij verder op de volgende schermregel. Een backslash +("\") in de rechtermarge (of, als je een scherm met vensters gebruikt, +een kleine gebogen pijl) laat dan zien dat de regel op de volgende schermregel verder gaat. >> Voeg nu tekst toe totdat je de rechter kantlijn raakt, en blijf toevoegen. Je zal zien dat er een vervolgregel verschijnt. ->> Type weer wat s om zoveel tekens weg te halen tot de regel weer - op een schermregel past. De vervolgregel zal verdwijnen. - -Je kan een Newline weggooien als elk ander teken. Als je een Newline -weggooit voeg je de twee regels waar de Newline tussen staat samen tot een -enkele regel. Als de regel die het resultaat is van deze operatie niet op -een schermregel past zal ze getoond worden met een vervolgregel. - ->> Beweeg de cursor naar het begin van een regel en type . Dit - voegt de huidige en vorige regel samen. - ->> Type om de Newline die je net weggooide weer toe te voegen. - -Je herinnert je dat je bij de meeste Emacs commando's het aantal keren dat -het herhaald moet worden op kan geven. Dit geldt ook voor gewone tekens. -Als je een gewoon teken herhaalt wordt dat teken herhaaldelijk toegevoegd. - ->> Probeer dat nu: type C-u 8 * om ******** toe te voegen. - -Je hebt nu de basismanier geleerd om iets in Emacs te typen en fouten te -corrigeren. Je kan tekst ook per woord of regel weggooien. Hier volgt -een samenvatting van de commando's om tekst te verwijderen: - - haal het teken weg dat voor de cursor staat - C-d haal het teken weg dat achter de cursor staat - - M- gooi het woord weg dat voor de cursor staat - M-d gooi het woord weg dat achter de cursor staat - - C-k gooi alles weg van de cursor tot het eind van de regel - M-k gooi alles weg van de cursor tot het eind van de zin - -Merk op dat en C-d met M- en M-d de analogie die begon -met C-f en M-f verder trekken (waarbij we voor het gemak even vergeten dat - niet echt een control teken is). C-k en M-k lijken enigzins op -C-e en M-e in hun relatie tot regels en zinnen. - -Als je meer dan een enkel teken tegelijk weghaalt bewaart Emacs de tekst -die je weggooit zodat je haar weer terug kan halen. Weggegooide tekst -terughalen heet "yanken". Je kan weggegooide tekst terugbrengen op de -plaats waar je haar hebt weggegooid of op een andere plaats in de tekst. -Je kan ook meerdere keren yanken om er meedere copi-en van te maken. Het -yank-commando is C-y. - -Merk op dat er een verschil is tussen het weghalen en weggooien van iets: -iets dat je hebt weggooid kan je terugbrengen, maar iets dat je hebt -weggehaald niet. (In het engels is het verschil tussen `killing' en -`deleting' duidelijker dan tussen de nederlandse vertaling `weggooien' en -`weghalen'.) In het algemeen geldt dat de commando's die meer tekst dan -een enkel teken, Newline of spatie verwijderen deze tekst bewaren zodat ze -geyankt kan worden, terwijl dat niet geldt voor commando's die slechts een -enkel teken weghalen. - ->> Zet de cursor op het begin van een regel die niet leef is. - Type C-k om de tekst op die regl weg te gooien. ->> Type C-k een tweede keer. Nu gooit dit commando het Newline teken - weggooit. - -Merk op hoe een enkele C-k de inhoud van een regel weggooit, een tweede -C-k de regel zelf zodat alle volgende regels een regel omhoog komen. Het -numerieke argument is voor C-k bijzonder: het aangegeven aantal regels zal -worden weggegooid, inclusief de inhoud. Dit is meer dan simpelweg -herhaling: C-u 2 C-k gooit twee regels weg, terwijl tweemaal C-k typen dat -niet doet. - -Om de laatst weggegooide tekst terug te halen naar de plaats waar de -cursor nu op staat (te yanken), type C-y. +>> Tik weer enkele keren om zoveel tekens weg te halen tot + de regel weer op een schermregel past. De vervolgregel zal + verdwijnen. ->> Probeer het nu: type C-y om de tekst te yanken. +Je kan een Newline zoals elk ander teken verwijderen. Als je een +Newline verwijdert, voeg je de twee regels waar de Newline tussen +staat samen tot een enkele regel. Als de regel die het resultaat is +van deze operatie niet op een schermregel past, zal hij getoond worden +met een vervolgregel. + +>> Beweeg de cursor naar het begin van een regel en tik . + Dit voegt de huidige en vorige regel samen. + +>> Tik om de Newline die je net verwijderd hebt weer toe te + voegen. + +Je herinnert je dat je bij de meeste Emacs-commando's het aantal keren +op kan geven, dat ze herhaald moeten worden. Dit geldt ook voor +gewone tekens. Als je een gewoon teken herhaalt, wordt dat teken +herhaaldelijk toegevoegd. + +>> Probeer dat nu: tik C-u 8 * om ******** toe te voegen. + +Je hebt nu de eenvoudigste manier geleerd om iets in Emacs te tikken +en fouten te verbeteren. Je kan tekst ook per woord of regel +verwijderen. Hier volgt een samenvatting van de commando's om tekst +te verwijderen: + + Haal het teken weg dat voor de cursor staat + C-d Haal het teken weg dat achter de cursor staat + + M- Verwijder het woord dat voor de cursor staat + M-d Verwijder het woord dat achter de cursor staat + + C-k Verwijder alles van de cursor tot het eind van de regel + M-k Verwijder alles van de cursor tot het eind van de zin + +Merk op dat en C-d, met M- en M-d de analogie +verder trekken, die begon met C-f en M-f (waarbij we voor het gemak +even vergeten dat niet echt een CONTROL-teken is). C-k en +M-k lijken enigzins op C-e en M-e in hun relatie tot regels en zinnen. + +Je kunt ook op één uniforme manier een willekeurig deel van de tekst +verwijderen. Beweeg daartoe naar één kant van het gedeelte dat je +wilt verwijderen en tik C-@ of C-. ( is de spatiebalk.) +Beweeg daarna naar de andere kant en tik C-w. Dat verwijdert alle +tekst tussen de twee posities. + +>> Beweeg de cursor naar de J aan het begin van de vorige alinea. +>> Tik C-. Emacs toont nu de mededeling "Mark set" ("Markering + geplaatst") onderaan het scherm. +>> Plaats de cursor op de n van "kant" op de tweede regel van de + alinea. +>> Tik C-w. Dit zal de tekst vanaf de J tot vlak voor de n + verwijderen. + +Er is een verschil tussen iets weghalen en iets verwijderen: iets dat +je hebt verwijderd, kan je terugbrengen, maar iets dat je hebt +weggehaald niet. (In het Engels is het verschil tussen "killing" en +"deleting" duidelijker dan tussen de Nederlandse vertalingen +"verwijderen" en "weghalen".) Verwijderde tekst terughalen heet +"yanken". In het algemeen geldt dat de commando's die meer tekst dan +een enkel teken, Newline of spatie verwijderen, deze tekst bewaren +zodat hij geyankt kan worden, terwijl dat niet geldt voor commando's +die slechts een enkel teken weghalen. + +>> Zet de cursor op het begin van een regel die niet leeg is. + Tik C-k om de tekst op die regel te verwijderen. +>> Tik C-k een tweede keer. Nu verwijdert dit commando het + Newline-teken. + +Merk op hoe een enkel C-k commando de inhoud van een regel verwijdert, +een tweede C-k commando de regel zelf zodat alle volgende regels een +regel omhoog komen. Het numerieke argument is voor C-k bijzonder: het +aangegeven aantal regels zal worden verwijderd, inclusief de inhoud. +Dit is meer dan simpelweg herhaling: C-u 2 C-k verwijdert twee regels, +terwijl tweemaal C-k tikken dat niet doet. + +Om de laatst verwijderde tekst terug te halen naar de plaats waar de +cursor nu op staat (te yanken), tik C-y. + +>> Probeer het nu: tik C-y om de tekst te yanken. Het is alsof je met C-y iets uit de prullenbak haalt wat je net had -weggegooid. Merk op dat verschillende C-k's achter elkaar alle regels -die weggegooid worden bij elkaar bewaart zodat een enkele C-y die regels -in een keer terugbrengt. +verwijderd. Merk op dat verschillende C-k's achter elkaar alle regels +die verwijderd worden, bij elkaar bewaart zodat een enkele C-y die +regels in een keer terugbrengt. ->> Probeer het nu: type C-k een paar keer. +>> Probeer het nu: tik C-k een paar keer. -Om de weggegooide tekst terug te halen: +Om de verwijderde tekst terug te halen: ->> Type C-y. Beweeg de cursor wat regels naar beneden en type weer C-y. - Je ziet nu hoe je tekst kan copieren. +>> Tik C-y. Beweeg de cursor enkele regels naar beneden en tik weer + C-y. Je ziet nu hoe je tekst kan kopiëren. -Wat nu te doen als je wat tekst terug wilt brengen, maar je hebt intussen -al iets anders weggegooid? C-y zou datgene terugbrengen wat je het -recentst hebt weggegooid. Gelukkig is de voorgaande tekst niet verloren -gegaan. Je kunt die tekst terughalen met M-y. Nadat je C-y hebt getypt -om de recentst weggegooide tekst terug te halen, vervangt M-y die tekst -met de tekst die je daarvoor had weggegooid. Je kunt M-y herhalen om -tekst terug te halen die je steeds langer geleden hebt weggegooid. Als je -de tekst te pakken hebt die je zocht hoe je niets te doen om die daar te -houden. Je kan gewoon verder werken en de teruggehaalde tekst met rust -laten. +Wat moet je doen als je wat tekst terug wilt brengen, maar je intussen +al iets anders verwijderd hebt? C-y zou datgene terugbrengen wat je +het recentst hebt verwijderd. Gelukkig is de voorgaande tekst niet +verloren gegaan. Je kunt die tekst terughalen met M-y. Nadat je C-y +hebt getikt om de recentst weggegooide tekst terug te halen, vervangt +M-y die tekst met de tekst die je daarvoor had weggegooid. Je kunt +M-y herhalen om tekst terug te halen die je al langer geleden hebt +weggegooid. Als je de tekst te pakken hebt die je zocht, hoef je +niets te doen om die daar te houden. Je kan gewoon verder werken en +de teruggehaalde tekst met rust laten. -Als je M-y vaak genoeg typt kom je terug waar je begon, bij de recentst -weggegooide tekst. +Als je M-y vaak genoeg tikt kom je terug waar je begon, bij de laatst +verwijderde tekst. ->> Gooi een regel weg, beweeg de cursor wat, en gooi nog een regel weg. - Type C-y om de tweede regel die je weggooide terug te halen. - Type nog een M-y en die regel wordt vervangen door de eerste regel - die je weggooide. - Type nog wat M-y's en zie wat er langs komt. Herhaal dit tot de - tweede regel weer langs komt, en dan nog een paar keer. - Je kan ook experimenteren met positieve en negatieve argumenten aan - M-y. +>> Verwijder een regel, beweeg de cursor wat, en verwijder nog een + regel. Tik C-y om de tweede regel die je verwijderde, terug te + halen. Tik nog een M-y en die regel wordt vervangen door de eerste + regel die je verwijderde. Tik nog enkele keren M-y en zie wat er + langs komt. Herhaal dit tot de tweede regel weer langs komt, en + dan nog een paar keer. Je kan ook experimenteren met positieve en + negatieve argumenten bij M-y. * HERSTELLEN ------------ Als je de tekst veranderd hebt en je daar toch niet tevreden mee bent, -dan kan je de verandering ongedaan maken met het herstel commando, C-x u. +dan kan je de verandering ongedaan maken met het herstelcommando, C-x +u. -Normaal gesproken herstelt C-x u de veranderingen die het gevolg zijn van -een enkel commando; door herhaaldelijk C-x u te typen, worden steeds -eerdere commando's hersteld. +Normaal gesproken herstelt C-x u de veranderingen die het gevolg zijn +van een enkel commando; door herhaaldelijk C-x u te tikken, worden +steeds eerdere commando's hersteld. -Er zijn echter twee uitzonderingen: commando's die de tekst niet wijzigen, -zoals cursorbewegingen, worden overgeslagen, en commando's die simpelweg -de ingetypte letter aan de tekst toevoegen worden meestal gegroepeerd -in groepjes van maximaal 20 tekens, zodat je minder C-x u's hoeft te -type om het toevoegen van teksts te herstellen. +Er zijn echter twee uitzonderingen: commando's die de tekst niet +wijzigen, zoals cursorbewegingen, worden overgeslagen, en commando's +die simpelweg het ingetikte teken aan de tekst toevoegen, worden +meestal gegroepeerd in groepjes van maximaal 20 tekens, zodat je +minder vaak het commando C-x u hoeft te tikken om teksttoevoegingen te +herstellen. ->> Gooi deze regel weg met C-k; met C-x u zou ze weer moeten verschijnen. +>> Gooi deze regel weg met C-k; met C-x u zou hij weer moeten + verschijnen. -C-_ is een alternatief voor C-x u. Het levert exact hetzelfde resultaat -op, maar is makkelijker om een paar keer achter elkaar te typen. Een -nadeel van C-_ is dat op sommige toetsenborden het intypen ervan niet -triviaal is. Dat is ook de reden het alternatief, C-x u. Op sommige -terminals kan je C-_ typen door te doen alsof je C-/ typt. +C-_ is een alternatief voor C-x u. Het levert exact hetzelfde +resultaat op, maar is makkelijker om een paar keer achter elkaar te +tikken. Een nadeel van C-_ is dat op sommige toetsenborden het +intikken ervan niet gebruiksvriendelijk is. Dat is ook de reden voor +het alternatief, C-x u. Op sommige terminals kan je C-_ tikken door +"/" te tikken terwijl je de CONTROL-toets ingedrukt houdt. -Een numeriek argument aan C-_ of C-x u duidt het aantal herhalingen aan. +Een numeriek argument bij C-_ of C-x u duidt het aantal herhalingen +aan. * BESTANDEN ----------- -Om een tekst die je gemaakt of veranderd hebt op te slaan moet je de -tekst in een bestand bewaren (`to save a file' in het engels). Als je -dat niet doet ben je die veranderingen kwijt op het moment dat je uit -Emacs gaat. Je kan een bestand veranderen door het bestand `bezoeken'. -(Ook wel `vinden'; `finding' of `visiting' in het engels.) - -Het bezoeken van een bestand betekent dat je de inhoud van dat bestand -in Emacs ziet. Het lijkt er dan op alsof je het bestand aan het -veranderen bent. Echter, deze veranderingen zijn slechts tijdelijk -zolang je het bestand niet bewaart. Op deze manier kan je nooit per +Om een tekst die je gemaakt of veranderd hebt op te slaan, moet je de +tekst in een bestand stoppen ("to save a file" in het Engels). Als je +dat niet doet, ben je die veranderingen kwijt op het moment dat je +Emacs verlaat. Je kan een bestand veranderen door het bestand te +"bezoeken". (Ook wel "vinden"; "finding" of "visiting" in het +Engels.) + +Een bestand bezoeken betekent dat je de inhoud van dat bestand in +Emacs ziet. Het lijkt er dan op alsof je het bestand aan het +veranderen bent. Deze veranderingen zijn echter slechts tijdelijk +zolang je het bestand niet opslaat. Op deze manier kan je nooit per ongeluk een half gewijzigd bestand op het systeem achterlaten. Zelfs -als je het bestand bewaart, zorgt Emacs ervoor dat het originele +als je het bestand opslaat, zorgt Emacs ervoor dat het originele bestand onder een gewijzigde naam nog steeds beschikbaar is, voor het -geval je later besluit dat de veranderingen toch niet zo'n goed plan -waren. - -In de buurt van de onderkant van het scherm zie je een regel die begint en -eindigt met streepjes, met aan het begin "--:-- TUTORIAL.nl" of iets -dergelijks. Dit deel van het scherm laat normaal de naam van het bestand -zien dat je op dat moment bezoekt. Op dit moment bezoek je een bestand -dat "TUTORIAL.nl" heet; het is je eigen copie van de nederlandstalige -Emacs uitleg (`tutorial' in het engels). Als je in Emacs een bestand -bezoekt dan staat de naam van het bestand altijd op deze plaats. - -De commando's om een bestand te bezoek of te bewaren zijn anders dan de -commando's die je tot nu toe geleerd hebt; ze bestaan namelijk uit twee -tekens. Beide commando's beginnen met het teken Control-x. Er zijn een -heleboel commando's die met Control-x beginnen. Veel van die commando's -hebben te maken met bestanden, buffers, en daaraan gerelateerde zaken. -Dergelijke commando's bestaan uit twee, drie of vier tekens. - -Nog iets bijzonders aan het commando om een bestand te bezoeken is dat -je aan moet geven welk bestand je wilt. Dit heet dat het commando "een -argument van de gebruiker vraagt"; in dit geval de naam van het bestand. -Nadat je het commando - - C-x C-f bezoek bestand (met de f van `find file') - -hebt getypt vraagt Emacs om de naam van het bestand. De naam die je -intypt verschijnt op de onderste regel van het scherm. Wanneer die regel -voor dit soort invoer gebruikt wordt, heet ze de minibuffer. Je kan de -gebruikelijke Emacs commando's gebruiken om de filename in te typen. - -Tijdens het invoeren van de naam van het bestand (of willekeurig wat -voor minibuffer invoer) kan je het commando afbreken met C-g. - ->> Type C-x C-f gevolgd door C-g. Dit breekt de minibuffer af en - ook het C-x C-f commando dat van de minibuffer gebruik maakte. - Netto resultaat is dat je geen bestand bezoekt. - -Als je de naam van een bestand hebt ingevoerd, type dan om het -af te sluiten. Hierna gaat het C-x C-f commando aan het werk en bezoekt -het bestand dat je aangegeven hebt. Als het C-x C-f commando klaar is, -verdwijnt de minibuffer. - -Na korte tijd verschijnt de inhoud van het bestand op het scherm en kan -je de inhoud wijzigen. Als je de wijzigingen op wilt slaan, type dan het -commando - - C-x C-s bewaar bestand (met de s van `save file') - -Dit bewaart de tekst zoals Emacs die nu heeft in het bestand. De eerste -keer dat je dit doet bewaart Emacs het originele bestand onder een andere -naam zodat het nog niet verloren is. De nieuwe naam bestaat uit de oude -naam gevolgd door een "~". - -Als Emacs klaar is het bestand te bewaren laat ze de naam van het bestand -zien. Het is een goede gewoonte een bestand redelijk vaak te bewaren -zodat er niet teveel werk verloren gaat als het systeem hangt of crasht. - ->> Type C-x C-s, om je copie van deze uitleg te bewaren. Als het goed is - verschijnt "Wrote ...TUTORIAL" op de onderste schermregel. - -OPMERKING: Op sommige systemen gebeurt er helemaal niets als je C-x C-s -typt, en daarna ook niets meer. Dit komt door een eigenschap van de -machine waarop je werkt die te maken heeft met `flow control'. Met C-s -stopt de `flow' en komt niets meer van wat je typt bij Emacs terecht. Om -deze situatie te herstellen, type C-q. Lees daarna de "Spontaneous Entry -to Incremental Search" sectie in het Emacs handboek over hoe om te gaan -met deze situatie. - -Je kan een bestaand bestand bezoeken, om het te bekijken of het te -wijzigen. Je kan ook een bestand bezoeken dat nog niet bestaat. Dit is -de manier om met Emacs een nieuw bestand te maken: bezoek het bestand, dat -initieel leeg zal zijn, en voeg tekst toe. Zodra je de tekst bewaart -wordt het bestand werkelijk gecreeerd, met de tekst als inhoud. Vanaf dat -moment ben je dus bezig met een bestaand bestand. +geval je later besluit dat de veranderingen toch niet zo goed waren. + +Bij de onderkant van het scherm zie je een regel die begint en eindigt +met streepjes, met aan het begin "-1:-- TUTORIAL.nl" of iets +dergelijks. Dit deel van het scherm laat normaal de naam van het +bestand zien dat je op dat moment bezoekt. Op dit moment bezoek je +een bestand dat "TUTORIAL.nl" heet; het is je eigen kopie van de +Nederlandstalige Emacs-inleiding ("tutorial" in het Engels). Als je +in Emacs een bestand bezoekt dan staat de naam van het bestand altijd +op deze plaats. + +Iets bijzonders aan het commando om een bestand te bezoeken, is dat je +aan moet geven welk bestand je wil. Dit heet dat het commando "een +argument van de gebruiker vraagt"; in dit geval de naam van het +bestand. Nadat je het commando + + C-x C-f Bezoek bestand (met de f van "find file"). + +hebt getikt vraagt Emacs om de naam van het bestand. De naam die je +intikt verschijnt op de onderste regel van het scherm. Wanneer die +regel voor dit soort invoer gebruikt wordt, heet hij de minibuffer. +Je kan gewone Emacs commando's gebruiken om de bestandsnaam te +veranderen. + +Tijdens het invoeren van de bestandsnaam (of om het even welke invoer +in de minibuffer) kan je het commando afbreken met C-g. + +>> Tik C-x C-f gevolgd door C-g. Dit commando breekt de minibuffer af + en ook het C-x C-f commando dat van de minibuffer gebruik maakte. + Het resultaat is dat je geen bestand bezoekt. + +Als je de naam van een bestand hebt ingevoerd, tik dan om het +commando af te sluiten. Hierna gaat het C-x C-f commando aan het werk +en haalt het bestand op dat je aangegeven hebt. Als het C-x C-f +commando daarmee klaar is, verdwijnt de minibuffer. + +Na korte tijd verschijnt de inhoud van het bestand op het scherm en +kan je de inhoud wijzigen. Als je de wijzigingen op wilt slaan, tik +dan het commando + + C-x C-s Sla bestand op (met de s van "save file"). + +Dit commando slaat de tekst zoals Emacs die nu heeft in het bestand +op. De eerste keer dat je dit doet, slaat Emacs het originele bestand +onder een andere naam op, zodat het niet verloren gaat. De nieuwe +naam bestaat uit de oude bestandsnaam gevolgd door een "~". + +Als Emacs het bestand heeft opgeslagen, laat het de naam van het +bestand zien. Het is een goede gewoonte een bestand regelmatig op te +slaan zodat er niet teveel werk verloren gaat als het systeem hangt of +crasht. + +>> Tik C-x C-s, om je kopie van deze inleiding op te slaan. Als het + goed is verschijnt "Wrote ...TUTORIAL.nl" op de onderste + schermregel. + +OPMERKING: Op sommige systemen gebeurt er helemaal niets als je C-x +C-s tikt, en daarna ook niets meer. Dit komt door een eigenschap van +de machine waarop je werkt die te maken heeft met "flow control". Met +C-s stopt de "flow" en komt niets meer van wat je tikt bij Emacs +terecht. Om deze situatie te herstellen, tik C-q. Lees daarna het +hoofdstuk "Spontaneous Entry to Incremental Search" in het +Emacs-handboek over hoe je moet omgaan met deze situatie. + +Je kan een bestaand bestand bezoeken om het te bekijken of het te +wijzigen. Je kan ook een bestand bezoeken dat nog niet bestaat. Dit +is de manier om met Emacs een nieuw bestand te maken: bezoek het +bestand, dat eerst leeg zal zijn, en voeg tekst toe. Zodra je de +tekst opslaat, wordt het bestand werkelijk gecreëerd, met de tekst als +inhoud. Vanaf dat moment ben je dus bezig met een bestaand bestand. * BUFFERS --------- -Als je een tweede bestand bezoekt met C-x C-f blijft het eerste bestand -gewoon in Emacs. Je kan naar dat bestand terug door het gewoon nog een -keer te bezoeken met C-x C-f. Op deze manier kan je een behoorlijk aantal -bestanden in Emacs krijgen. +Als je een tweede bestand bezoekt met C-x C-f, blijft het eerste +bestand gewoon in Emacs. Je kan naar dat bestand terug door het +gewoon nog een keer te bezoeken met C-x C-f. Op deze manier kan je +een behoorlijk aantal bestanden in Emacs krijgen. ->> Cre-eer een bestand dat "foo" heet door te typen: C-f C-f foo - . Voeg hieraan wat tekst toe, wijzig haar, en bewaar "foo" - door C-x C-s te typen. Type hierna C-x C-f TUTORIAL om - weer hier, in de uitleg, terug te komen. +>> Creëer een bestand dat "foo" heet door te tikken: C-x C-f foo + . Voeg hieraan wat tekst toe, wijzig hem, en sla "foo" op + door C-x C-s te tikken. Tik hierna C-x C-f TUTORIAL om + weer hier, in de inleiding, terug te komen. -Emacs bewaart intern de tekst van elk bestand in een ding dat een "buffer" -genoemd wordt. Als je een bestand bezoekt wordt er een nieuwe buffer -gemaakt. Om een lijst van de huidige buffers te zien, type +Emacs bewaart intern de tekst van elk bestand in een ding dat een +"buffer" genoemd wordt. Als je een bestand bezoekt wordt er een +nieuwe buffer gemaakt. Om een lijst van de huidige buffers te zien, +tik - C-x C-b laat de bufferlijst zien + C-x C-b Laat de bufferlijst zien >> Probeer C-x C-b nu. -Zie dat elke buffer een naam heeft en mogelijk ook een bestandsnaam; dit -is de naam van het bestand waarmee de buffer overeenkomt. Sommige buffers -hebben niets met een bestand te maken. Bijvoorbeeld, de buffer die -"*Buffer List*" heet heeft geen bestand. Die buffer is de buffer die de -lijst bevat die door C-x C-b gemaakt wordt. ALLE tekst die je in een -Emacs venster ziet is altijd onderdeel van een of andere buffer. - ->> Type C-x 1 om de bufferlijst te verwijderen. +Bemerk dat elke buffer een naam heeft en mogelijk ook een +bestandsnaam; dit is de naam van het bestand waarmee de buffer +overeenkomt. ALLE tekst die je in een Emacs venster ziet is altijd +onderdeel van een of andere buffer. + +>> Tik C-x 1 om de bufferlijst te verwijderen. + +Wanneer je met meerdere buffers werkt, dan is op elk moment slechts +één van die buffers "actueel". De actuele buffer is degene die je aan +het bewerken bent. Als je een andere buffer wilt bewerken, dan moet +je daarnaar "omschakelen". Als je wilt omschakelen naar een buffer +die overeenkomt met een bestand, dan kun je dit doen door dat bestand +opnieuw te bezoeken met C-x C-f. Er is ook een makkelijkere manier: +gebruik het commando C-x b. Dit commando vraagt je naar de naam van +de buffer. + +>> Tik C-x b foo om terug te gaan naar de buffer "foo" die de + tekst van het bestand "foo" bevat. Tik vervolgens C-x b TUTORIAL + om terug te komen naar deze Emacs-inleiding. + +Meestal is de naam van de buffer gelijk aan de naam van het bestand +(minus de naam van de directory). Dit klopt echter niet altijd. De +lijst met buffers die je maakt met C-x C-b laat je altijd de naam van +elke buffer zien. + +ALLE tekst die je ziet in een venster van Emacs is altijd onderdeel +van een of andere buffer. Sommige buffers komen niet overeen met een +bestand. De buffer genaamd "*Buffer List*" heeft bijvoorbeeld geen +bijbehorend bestand. Deze buffer bevat de lijst met buffers die je +gemaakt hebt met C-x C-b. Ook de buffer "*Messages*" heeft geen +geassocieerd bestand; deze buffer bevat de mededelingen die Emacs je +op de onderste regel toonde. + +>> Tik C-x b *Messages* om de buffer met mededelingen te + bekijken. Tik daarna weer C-x b TUTORIAL om terug te + keren naar deze buffer met de Emacs-inleiding Als je de tekst van het ene bestand verandert en dan een ander bestand -bezoekt dan wordt het eerste bestand niet bewaard. De wijzigingen blijven -in Emacs, in de buffer die bij het bestand hoort. Het cre-eren of -modificeren van de buffer van het tweede bestand heeft geen effect op de -eerste buffer. Dit is erg nuttig, maar betekent ook dat er een eenvoudige -manier nodig is om het eerste bestand te bewaren. Het zou erg vervelend -zijn om er eerst naar terug te moeten gaan met C-x C-f om het dan te -kunnen bewaren met C-x C-s. Dus hebben we +bezoekt, wordt het eerste bestand niet opgeslagen. De wijzigingen +blijven in Emacs, in de buffer die bij het bestand hoort. Het creëren +of veranderen van de buffer van het tweede bestand heeft geen effect +op de eerste buffer. Dit is erg nuttig, maar betekent ook dat er een +eenvoudige manier nodig is om het eerste bestand te bewaren. Het zou +erg vervelend zijn om er eerst naar terug te moeten gaan met C-x C-f +om het dan te kunnen bewaren met C-x C-s. Dus hebben we het commando: - C-x s bewaar een paar buffers + C-x s Sla een paar buffers op C-x s vraagt voor elke buffer die veranderingen heeft die nog niet opgeslagen zijn, of je de buffer wilt bewaren. ->> Voeg een wat tekst toe en type C-x s. +>> Voeg wat tekst toe en tik C-x s. Emacs vraagt nu of je de buffer die TUTORIAL.nl heet wilt bewaren. - Bewantwoord deze vraag positief door een "y" in te typen (de y van - "yes", engels voor "ja"). + Beantwoord deze vraag positief door een "y" in te tikken (de y van + "yes", Engels voor "ja"). * UITGEBREIDE COMMANDO'S @@ -600,493 +680,576 @@ opgeslagen zijn, of je de buffer wilt bewaren. Er zijn veel meer Emacs commando's dan er op de toetsen van het toetsenbord passen, zelfs als we hun aantal kunnen vergroten door de -control of meta toets te gebruiken. Emacs lost dit probleem op met het X -commando (met de X van eXtensie of uitbreiding). Het X commando komt in -twee smaken: - - C-x teken eXtensie; wordt gevolgd door een teken - M-x genaamd commando eXtensie; wordt gevolgd door een naam. - -Deze commando's zijn in het algemeen nuttig, maar worden minder gebruikt -dan de commando's die tot nu toe uitgelegd zijn. Je hebt al twee van deze -commando's gezien: C-x C-f om een bestand te bezoeken, en C-x C-s om het -te bewaren. Een ander voorbeeld is het commando om Emacs te verlaten: dit -is C-x C-c. (Maak je geen zorgen over het verloren gaan van veranderingen -die niet bewaard zijn; C-x C-c vraagt of je veranderde buffers wilt -bewaren voordat Emacs daadwerkelijk eindigt.) - -C-z is het commando om Emacs *tijdelijk* te verlaten, zodat je daarna weer -terug kan keren in dezelfde Emacs sessie. - -Op systemen die deze mogelijkheid bieden, zet C-z Emacs stil: je komt weer -terug in de shell, maar Emacs is nog aanwezig. In de meeste shells kan je -Emacs weer activeren met het "fg" commando, of met "%emacs". - -Op systemen die niet de mogelijkheid bieden om programma's stil te zetten -cre-eert C-z een subshell onder Emacs om je zo in de gelegenheid te -stellen andere programma's uit te voeren en daarna weer in Emacs terug te -keren; Emacs wordt dus niet werkelijk verlaten. In dit geval is het -shellcommando "exit" de normale manier om de subshell te verlaten en in -Emacs terug te keren. - -Het moment om C-x C-c te gebruiken is wanneer je uit gaat loggen. Het is -ook het juiste commando om Emacs te be-eindigen wanneer Emacs opgestart -was door een mail programma of iets dergelijks, aangezien die misschien -niet met een stilgezette Emacs om kunnen gaan. Normaal gezien is het -echter beter Emacs stil te zetten met C-z dan om Emacs te verlaten, -behalve als je uit wilt loggen natuurlijk. - -Er bestaan vele C-x commando's. Hier is een lijst van degene die je nu al -kent: - - C-x C-f bezoek bestand - C-x C-s bewaar bestand - C-x C-b laat bufferlijst zien - C-x C-c verlaat Emacs - C-x u herstel - -Genaamde uitgebreide commando's worden nog minder vaak gebruikt, of worden -alleen onder bepaalde omstandigheden gebruikt. Een voorbeeld is het -commando replace-string, dat in de hele tekst een string vervangt door een -andere string (`to replace' betekent `vervangen'). Als je M-x typt echoot -Emacs onderaan het scherm `M-x' en moet je de naam van het commando -intypen, in dit geval "replace-string". Als je gewoon "repl s" typt -maakt Emacs de naam zelf af. Be-eindig het commando met . +CONTROL- of META-toets te gebruiken. Emacs lost dit probleem op met +het X commando (met de X van eXtensie of uitbreiding). Het X commando +komt voor in twee smaken: + + C-x Tekenuitbreiding. Gevolgd door een teken. + M-x Commando-naam-uitbreiding. Wordt gevolgd door een naam. + +Deze commando's zijn in het algemeen nuttig, maar worden minder +gebruikt dan de commando's die je tot nu toe al geleerd hebt. Je hebt +al enkele van deze commando's gezien: C-x C-f om een bestand te +bezoeken en C-x C-s om het te bewaren, bijvoorbeeld. Een ander +voorbeeld is het commando om Emacs te verlaten: dit is C-x C-c. (Maak +je geen zorgen over het verloren gaan van veranderingen die niet +opgeslagen zijn; C-x C-c vraagt of je veranderde buffers wilt bewaren +voordat Emacs helemaal eindigt.) + +C-z is het commando om Emacs *tijdelijk* te verlaten, zodat je daarna +weer terug kan keren in dezelfde Emacs-sessie. + +Op systemen die deze mogelijkheid bieden, zet C-z Emacs stil: je komt +weer terug in de shell, maar Emacs is nog aanwezig. In de meeste +shells kan je Emacs weer activeren met het "fg" commando, of met +"%emacs". + +Op systemen die niet de mogelijkheid bieden om programma's stil te +zetten, creëert C-z een subshell onder Emacs om je zo in de +gelegenheid te stellen andere programma's uit te voeren en daarna weer +in Emacs terug te keren; Emacs wordt dus niet werkelijk verlaten. In +dit geval is het shellcommando "exit" de normale manier om de subshell +te verlaten en in Emacs terug te keren. + +Het moment om C-x C-c te gebruiken is wanneer je uit gaat loggen. Het +is ook het juiste commando om Emacs te beëindigen wanneer Emacs +opgestart was door een mail-programma of iets dergelijks, aangezien +die misschien niet met een stilgezette Emacs om kunnen gaan. Normaal +gezien is het echter beter Emacs stil te zetten met C-z dan om Emacs +te verlaten, behalve als je uit wilt loggen natuurlijk. + +Er bestaan vele C-x commando's. Hier is een lijst van degene die je +nu al kent: + + C-x C-f Bezoek bestand + C-x C-s Sla bestand op + C-x s Sla een paar buffers op + C-x C-b Laat bufferlijst zien + C-x b Schakel naar een buffer + C-x C-c Verlaat Emacs + C-x 1 Een enkel venster + C-x u Herstel + +Commando-naam-bevelen worden nog minder vaak gebruikt, of alleen onder +bepaalde omstandigheden. Een voorbeeld is het commando +replace-string, dat in de hele tekst een string vervangt door een +andere string ("to replace" betekent "vervangen"). Als je M-x tikt, +toont Emacs onderaan het scherm "M-x" en moet je de naam van het +commando intikken, in dit geval "replace-string". Als je gewoon +"repl s" tikt maakt Emacs de naam zelf af. Beëindig het commando +met . Het replace-string commando heeft twee argumenten nodig: de string die vervangen moet worden en de string waarmee die vervangen moet worden. Je sluit elk argument af met . ->> Plaats de cursor op de lege regel twee regels onder deze. - Type dan M-x repl sgewijzigdveranderd. +>> Plaats de cursor op de lege regel twee regels onder deze regel. + Tik dan M-x repl sgewijzigdveranderd. - Zie hoe deze regel daardoor gewijzigd is. Je hebt elk voorkomen van - het woord g-e-w-i-j-z-i-g-d vervangen door "veranderd"; beginnend op - de plek waar de cursor staat. + Zie hoe deze regel daardoor gewijzigd is. Je hebt elk voorkomen + van het woord g-e-w-i-j-z-i-g-d vervangen door "veranderd"; te + beginnen op de plek waar de cursor staat. * AUTOMATISCH BEWAREN --------------------- -Als je een bestand veranderd hebt maar het nog niet bewaard hebt, zouden -de veranderinge verloren kunnen gaan als het systeem zou hangen of -herstarten. Om je hiertegen te beschermen bewaart Emacs om de zoveel tijd -de veranderde tekst automatisch. De naam van het bestand waarin de tekst -automatisch bewaard wordt begint en eindigt met een #. Bijvoorbeeld, als -je het bestand "hello.c" aan het bewerken bent dan wordt de tekst -automatisch bewaard in een bestand dat "#hello.c#" heet. Zodra je het -bestand werkelijk bewaart, wordt het automatisch bewaarde bestand weer -weggegooid. +Als je een bestand veranderd hebt maar het nog niet opgeslagen hebt, +zouden de veranderingen verloren kunnen gaan als het systeem zou +hangen of herstarten. Om je hiertegen te beschermen, slaat Emacs +regelmatig de veranderde tekst automatisch op. De naam van het +bestand waarin de tekst automatisch wordt opgeslagen begint en eindigt +met een #. Bijvoorbeeld, als je het bestand "hello.c" aan het +bewerken bent, wordt de tekst automatisch opgeslagen in een bestand +dat "#hello.c#" heet. Zodra je het bestand werkelijk opslaat, wordt +het automatisch opgeslagen bestand verwijderd. + +Als de computer crasht, kan je de automatisch opgeslagen tekst +terugkrijgen door het bestand gewoon te bezoeken (het originele +bestand, niet het automatisch opgeslagen), gevolgd door M-x +recover-file. Als Emacs vraagt om bevestiging, antwoord dan +met yes en de automatisch opgeslagen informatie wordt +teruggehaald. + + +* ECHO-GEBIED +------------- -Als de computer crasht kan je de automatisch bewaarde tekst terugkrijgen -door de file normal te bezoeken (de originele file, niet de automatisch -bewaarde), gevolgd door M-x recover file. Als Emacs vraagt om -bevestiging, antwoord dan yes en de automatisch bewaarde -informatie wordt teruggehaald. +Als je een commando langzaam intikt, toont Emacs de tekens aan de +onderkant van het scherm in een deel dat het "echo-gebied" genoemd +wordt. Dit gebied omvat de onderste regel van het scherm. -* ECHO GEBIED +* MODUS-REGEL ------------- -Als je een commando langzaam intypt echoot Emacs de tekens aan de -onderkant van het scherm, in een deel dat het "echo gebied" genoemd wordt. -Dit gebied bevat de onderste regel van het scherm. +De regel direct boven het echo gebied heet de "modusregel". De +modusregel ziet er ongeveer zo uit: +-1:** TUTORIAL.nl 62% L763 (Fundamental)----------------------- -* MODE-REGEL ------------- - -De regel direct boven het echo gebied heet de "mode-regel". De mode-regel -zier er ongeveer zo uit: +Deze regel geeft interessante informatie over Emacs en de tekst die je +aan het bewerken bent. ---**-Emacs: TUTORIAL.nl (Fundamental)--68%------------------------ +Je weet al wat de bestandsnaam betekent: het is de naam van het +bestand dat je bezoekt. NN% geeft je huidige positie in de tekst aan: +NN procent van de tekst bevindt zich boven het scherm. Als het +bestand vanaf het begin op het scherm staat, staat er "Top" in plaats +van " 0%". Als het laatste stuk tekst op het scherm staat, zal er +"Bot" staan (van "bottom", "onderkant" in het Nederlands). Als de +tekst zo klein is dat hij volledig op het scherm past staat "All" in +de modus-regel. -Deze regel geeft interessante informatie over Emacs en de tekst die -je aan het bewerken bent. +De L gevolgd door een getal geeft het nummer van de regel waarin punt +zich bevindt. -Je weet al wat de bestandsnaam betekent: het is de naam van het bestand -dat je bezoekt. -NN%-- geeft je huidige positie in de tekst aan: NN -procent van de tekst bevindt zich boven het scherm. Als het bestand vanaf -het begin op het scherm staat, staat er --Top-- in plaats van --00%--. -Als het laatste stuk tekst op het scherm staat, zal er --Bot-- staan (van -`bottom', `onderkant' in het nederlands). Als de tekst zo klein is dat ze -volledig op het scherm past staat --All-- in de mode-regel. +De sterretjes aan het begin betekenen dat je de tekst veranderd hebt. +Direct na het bezoeken of opslaan staan er gewoon streepjes. -De sterretjes aan het begin betekenen dat je de tekst gemodificeerd hebt. -Direct na het bezoeken of bewaren staan er gewoon streepjes. +In de modusregel staat tussen haakjes in welke modus je aan het werken +bent. De standaardmodus is de "Fundamental" modus, die je nu gebruikt +("fundamental" is "basis" in het Nederlands). Een dergelijke modus +heet een hoofdmodus ("major mode" in het Engels). -In de mode-regel staat tussen haakjes in welke mode je aan het werken -bent. Tenzij een andere mode gewenst is, zit je in de "Fundamental" mode -zoals nu (`fundamental' is `basis' in het nederlands). Een dergelijke -mode heet een hoofdmode (`major mode' in het engels). +Emacs heeft verschillende hoofdmodi. Sommige daarvan zijn bedoeld +voor het bewerken van verschillende talen of soorten tekst, zoals +bijvoorbeeld Lisp modus, Text modus, etc. Op elk moment is er altijd +precies een modus actief, en de naam daarvan staat in de modusregel, +op de plaats waar nu "Fundamental" staat. -Emacs heeft verschillende hoofdmodes. Sommige daarvan zijn bedoelt voor -het bewerken van verschillende talen of soorten tekst, zoals bijvoorbeeld -Lisp mode, Text mode, etc. Op elk moment is er altijd precies een mode -actief, en de naam daarvan staat in de mode-regel, op de plaats waar nu -"Fundamental" staat. +Elke hoofdmodus zorgt ervoor dat sommige commando's zich anders +gedragen. Zo bestaat er een commando om een commentaar in een +programma te tikken, en aangezien elke programmeertaal een ander idee +heeft over hoe commentaar eruit moet zien, moet elke hoofdmodus op een +andere manier het commentaar beginnen. Elke hoofdmodus is de naam van +een uitgebreid commando, en met dat commando schakel je om naar die +hoofdmodus. Zo is bijvoorbeeld M-x fundamental-mode het commando om +naar de basismodus om te schakelen. -Elke hoofdmode zorgt ervoor dat sommige commando's zich anders gedragen. -Zo bestaat er een commando om een commentaar in een programma te typen, en -aangezien elke programmeertaal een ander idee heeft over hoe commentaar -eruit moet zien, moet elke hoofdmode op een andere manier het commentaar -beginnen. Elke hoofdmode is de naam van een uitgebreid commando, en met -dat commando schakel je om naar die hoofdmode. Zo is bijvoorbeeld -M-x fundamental-mode het commando om naar de basismode om te schakelen. +Als je Nederlandse of Engelse tekst wil gaan bewerken, zoals +bijvoorbeeld dit bestand, kan je beter "Text mode" gebruiken, de modus +om tekst in een gewone taal te bewerken: -Als je nederlandse of engelse tekst wil gaan bewerken, zoals bijvoorbeeld -dit bestand, kan je beter "text mode" gebruiken, de mode om tekst in een -gewone taal te bewerken: - ->> Type M-x text-mode. +>> Tik M-x text-mode. Wees gerust; geen van de commando's die je geleerd hebt zorgen voor -grondige veranderingen in Emacs. Een van de dingen die je kan merken is -bijvoorbeeld dat M-f en M-b nu apostrophes als onderdeel van een woord -beschouwen. In de vorige, Fundamental, mode behandelen M-f en M-b de -apostrophe als ruimte tussen twee woorden. - -Het is gebruikelijk dat hoofdmodes dergelijke subtiele verschillen hebben. -De meeste commando's doen dus min of meer hetzelfde in elke hoofdmode. - -Met het commando C-h m kan je de documentatie over de huidige hoofdmode -lezen. - ->> Gebruik C-u C-v een paar keer om deze zin in de buurt van de bovenkant - van het scherm te krijgen. ->> Type C-h m om te zien hoe Text mode verschilt van Fundamental mode. ->> Type C-x 1 om de documentatie van het scherm te verwijderen. - -Hoofdmodes heten hoofdmodes omdat er ook bijmodes zijn. Bijmodes zijn -geen alternatieven voor hoofdmodes; het zijn slechts kleine modificaties -daarvan. Elke bijmode kan aan- of uitgezet worden, onafhankelijk van -andere bijmodes en onafhankelijk van de hoofdmode. Je kan dus nul, een, -of willekeurig veel minor modes gebruiken. - -Een nuttige bijmode voor het bewerken van tekst in een natuurlijke taal, -zoals nederlands, is Auto Fill mode (`auto fill' betekent automatisch -uitvullen). Wanneer deze mode aanstaat breekt Emacs automatisch een regel -tussen twee woorden af als de regel anders te lang zou worden. - -Je kan Auto Fill mode aanzetten met M-x auto-fill-mode. Als deze -mode al aanstaat, kan je hem uitzetten met M-x auto-fill-mode. -Als de mode uitstaat zet dit commando de mode aan; als ze aanstaat zet dit -commando de mode uit. Het commando zet de mode steeds aan en uit zet (`to -toggle' in het engels). - ->> Type nu M-x auto-fill-mode. Type nu vele malen asdf op een - regel zodat je kan zien dat de regel in twee-en gesplitst wordt. Er - moeten wel spaties tussen de woorden staan, omdat de Auto Fill mode - alleen op spaties de regel breekt. - -De rechter kantlijn staat meestal op 70 tekens, maar die kan je veranderen -met het C-x f commando. Dit commando accepteert een numeriek argument -dat de gewenste kantlijn is. - ->> Type C-x f met 20 als argument (C-u 20 C-x f). - Type wat tekst en zie dat Emacs de regels afbreekt bij 20 tekens. - Zet de kantlijn nu terug op 70, weer met C-x f. - -Als je de tekst midden in een regel verandert vult Auto Fill mode -de regel niet opnieuw. -Om een paragraaf opnieuw te vullen, type M-q (Meta-q) terwijl de -cursor in de paragraaf staat. - ->> Plaats de cursor in de voorgaande paragraaf en type M-q. +grondige veranderingen in Emacs. Een van de dingen die je kan merken, +is bijvoorbeeld dat M-f en M-b nu apostrofs als onderdeel van een +woord beschouwen. In de vorige modus (Fundamental) behandelen M-f en +M-b de apostrof als ruimte tussen twee woorden. + +Het is gebruikelijk dat hoofdmodi dergelijke subtiele verschillen +hebben. De meeste commando's doen dus min of meer hetzelfde in elke +hoofdmodus. + +Met het commando C-h m kan je de documentatie over de huidige +hoofdmodus lezen. + +>> Gebruik C-u C-v een paar keer om deze zin in de buurt van de + bovenkant van het scherm te krijgen. +>> Tik C-h m om te zien hoe de tekstmodus verschilt van de basismodus. +>> Tik C-x 1 om de documentatie van het scherm te verwijderen. + +Hoofdmodi heten zo omdat er ook bijmodi zijn. Bijmodi zijn geen +alternatieven voor hoofdmodi; het zijn slechts kleine aanpassingen +daarvan. Elke bijmodus kan aan- of uitgezet worden, onafhankelijk van +andere bijmodi en onafhankelijk van de hoofdmodus. Het is dus +mogelijk geen bijmodi, één bijmodus of een willekeurige combinatie van +bijmodi te gebruiken. + +Een nuttige bijmodus voor het bewerken van tekst in een natuurlijke +taal, zoals het Nederlands, is Auto Fill modus ("auto fill" betekent +automatisch uitvullen). Wanneer deze modus aanstaat, breekt Emacs +automatisch een regel tussen twee woorden af als de regel te lang +wordt. + +Je kan Auto Fill modus aanzetten met M-x auto-fill-mode. Als +deze modus al aanstaat, kan je hem uitzetten met M-x +auto-fill-mode. Als de modus uitstaat, zet dit commando de +modus aan; als ze aanstaat, zet dit commando de modus uit. We zeggen +dat het commando de modus "schakelt" ("to toggle" in het Engels). + +>> Tik nu M-x auto-fill-mode. Tik nu vele malen "asdf " op + een regel zodat je kan zien dat de regel in tweeën gesplitst wordt. + Er moeten wel spaties tussen de woorden staan, omdat de Auto Fill + modus de regel alleen op spaties breekt. + +De rechterkantlijn staat meestal op 70 tekens, maar die kan je +veranderen met het C-x f commando. Dit commando accepteert een +numeriek argument om de gewenste kantlijn te verkrijgen. + +>> Tik C-x f met 20 als argument (C-u 20 C-x f). + Tik wat tekst en zie dat Emacs de regels afbreekt bij 20 tekens. + Zet de kantlijn nu terug op 70, dus met met C-u 70 C-x f. + +Als je de tekst midden in een regel verandert vult Auto Fill modus de +regel niet opnieuw. +Om een alinea opnieuw te vullen, tik M-q (META-q) terwijl de cursor in +de alinea staat. + +>> Plaats de cursor in de voorgaande alinea en tik M-q. * ZOEKEN -------- -Emacs kan strings zoeken (een string is een rij tekens), zowel volgend op -de cursorpositie, als eraan voorafgaand. Het zoeken van een string +Emacs kan tekenreeksen ("strings") zoeken, zowel volgend op de +cursorpositie, als eraan voorafgaand. Het zoeken naar een string verplaatst de cursor naar de volgende plaats waar de gezochte string voorkomt. -Het zoekcommando van Emacs is anders dan de zoekcommando's van de meeste -tekstverwerkers; het zoekt incrementeel. Dit betekent dat het zoeken -gebeurt tijdens het intypen van de gezochte string. - -Het commando om vooruit zoeken te starten is C-s (met de `s' van `to -search', i.e. zoeken); C-r start het zoeken achteruit (met de `r' van -`reverse' of achteruit). WACHT nog even met ze te proberen. - -Als je C-s typt verschijnt de string "I-search" in het echo gebied. Dit -betekent dat Emacs bezig is met een `incremental search' (incrementele -zoekopdracht) en wacht op het intypen van de zoekstring. be-eindigt -het zoeken. - ->> Type nu C-s om het zoeken te start. Type nu, LANGZAAM, een letter per - keer, het woord `cursor', met een pauze na elke letter zodat je kan - zien wat er met de cursor gebeurt. Je hebt nu eenmaal naar het woord - `cursor' gezocht. ->> Type nogmaals C-s, om naar het volgende voorkomen van `cursor' te - zoeken. ->> Type nu viermaal en let op de cursorbewegingen. ->> Type om het zoeken te be-eindigen. - -Zag je wat er gebeurde? Tijdens incrementeel zoeken probeert Emacs naar -de eerste plek te gaan waar de string staat die je tot dan toe getypt -hebt. Om naar de volgende plek te gaan, type je C-s nog een keer. Als er -geen volgende plek is piept Emacs en vertelt je dat de zoekopdracht faalt -(`failing' in het engels); met C-g kan je het zoeken afbreken. - -OPMERKING: Op sommige systemen gebeurt er helemaal niets als je C-x C-s -typt, en daarna ook niets meer. Dit komt door een eigenschap van de -machine waarop je werkt die te maken heeft met `flow control'. Met C-s -stopt de `flow' en komt niets meer van wat je typt bij Emacs terecht. Om -deze situatie te herstellen, type C-q. Lees daarna de "Spontaneous Entry -to Incremental Search" sectie in het Emacs handboek over hoe om te gaan -met deze situatie. - -Als je tijdens incrementeel zoeken typt, zal je zien dat het -laatste teken dat je in de zoekstring typte weggehaald wordt en dat het -zoeken teruggaat naar de voorgaande plaats. Als je bijvoorbeeld begint -met zoeken en je typt een "c" dan ga je naar het eerste voorkomen van een -"c". Type je vervolgens een "u" dan gaat de cursor naar het eerste -voorkomen van de string "cu". Als je nu typt, dan wordt de "u" -van de zoekstring afgehaald en gaat de cursor terug naar de plaats waar -hij stond voordat je de "u" intypte, i.e. het eerste voorkomen van de "c". - -Als je tijdens een zoekoperatie een control- of meta-teken intypt dan -wordt het zoeken be-eindigd. Er zijn een paar uitzonderingen, namelijk -tekens die tijdens zoeken een speciale betekenis hebben, zoals C-s en C-r. - -Met C-s begin je te zoeken naar het eerste voorkomen van de zoekstring NA -de huidige cursorpositie. Als je iets wilt zoeken dat eerder in de tekst -moet voorkomen, gebruik dan C-r i.p.v. C-s. Alles wat we nu weten over -C-s geldt ook voor C-r, alleen de zoekrichting is omgedraaid. +Het zoekcommando van Emacs is anders dan de zoekcommando's van de +meeste tekstverwerkers; het zoekt incrementeel. Dit betekent dat het +zoeken gebeurt tijdens het intikken van de gezochte string. + +Het commando om het voorwaarts zoeken te starten is C-s (met de "s" +van "to search", zoeken); C-r start het achterwaarts zoeken (met de +"r" van "reverse" of achteruit). MAAR WACHT! Probeer ze nu nog niet. + +Als je C-s tikt verschijnt de string "I-search" in het echo-gebied. +Dit betekent dat Emacs bezig is met een "incremental search" +(incrementele zoekopdracht) en wacht op het intikken van de +zoekstring. beëindigt het zoeken. + +>> Tik nu C-s om het zoeken te starten. Tik nu, LANGZAAM, één letter + per keer, het woord "cursor", met een pauze na elke letter zodat je + kan zien wat er met de cursor gebeurt. Je hebt nu eenmaal naar het + woord "cursor" gezocht. +>> Tik nogmaals C-s, om naar het volgende voorkomen van het woord + "cursor" te zoeken. +>> Tik nu viermaal en let op de cursorbewegingen. +>> Tik om het zoeken te beëindigen. + +Zag je wat er gebeurde? Tijdens incrementeel zoeken probeert Emacs +naar de eerste plek te gaan waar de string staat die je tot dan toe +getikt hebt. Om naar de volgende plek te gaan, tik je C-s nog een +keer. Als er geen volgende plek is gevonden, biept Emacs en vertelt +je dat de zoekopdracht niets gevonden heeft ("failing" in het Engels). +C-g zou het zoeken ook afbreken. + +OPMERKING: Op sommige systemen gebeurt er helemaal niets als je C-s +tikt, en daarna ook niets meer. Dit komt door een eigenschap van de +machine waarop je werkt die te maken heeft met "flow control". Met +C-s stopt de "flow" en komt niets meer van wat je tikt bij Emacs +terecht. Om deze situatie te herstellen, tik C-q. Lees daarna het +hoofdstuk "Spontaneous Entry to Incremental Search" in het +Emacs-handboek over hoe je moet omgaan met deze situatie. + +Als je tijdens incrementeel zoeken tikt, zal je zien dat het +laatste teken dat je aan de zoekstring toegevoegd hebt, weggehaald +wordt en dat het zoeken teruggaat naar de voorgaande plaats. Als je +bijvoorbeeld begint met zoeken en je tikt een "c", dan ga je naar de +plaats waar de "c" het eerst voorkomt. Tik je vervolgens een "u", dan +gaat de cursor naar de plaats waar de string "cu" het eerst voorkomt. +Als je nu tikt, dan wordt de "u" van de zoekstring +afgehaald, en gaat de cursor terug naar de plaats waar hij stond +voordat je de "u" intikte, namelijk daar waar "c" het eerst voorkwam. + +Als je tijdens een zoekoperatie een CONTROL- of META-teken intikt, dan +wordt het zoeken beëindigd. Er zijn een paar uitzonderingen, namelijk +tekens die tijdens zoeken een speciale betekenis hebben, zoals C-s en +C-r. + +Met C-s begin je te zoeken naar de plaats waar de zoekstring voor het +eerst voorkomt NA de huidige cursorpositie. Als je iets wilt zoeken +dat eerder in de tekst moet voorkomen, gebruik dan C-r in plaats van +C-s. Alles wat we nu weten over C-s geldt ook voor C-r, alleen is de +zoekrichting omgedraaid. * MEERDERE VENSTERS ------------------- -Een van Emacs' aardige eigenschappen is dat je meerdere vensters op het -scherm kan laten zien. +Een van Emacs' aardige eigenschappen is dat je meerdere vensters op +het scherm kan laten zien. ->> Zet de cursor op deze regel en type C-u 0 C-l. +>> Zet de cursor op deze regel en tik C-u 0 C-l. ->> Type C-x 2 om het scherm in twee vensters op te splitsen. - Beide vensters laten deze uitleg zien; de cursor blijft in het +>> Tik C-x 2 om het scherm in twee vensters op te splitsen. + Beide vensters laten deze inleiding zien; de cursor blijft in het bovenste venster. ->> Type C-M-v om de tekst in het onderste venster te verschuiven. - (Als je geen Meta toets hebt, type dan ESC C-v.) +>> Tik C-M-v om de tekst in het onderste venster te verschuiven. + (Als je geen META-toets hebt, tik dan C-v.) ->> Type C-x o (met de `o' van `other'; `ander' in het nederlands) - om de cursor naar het andere venster te verplaatsen. +>> Tik C-x o (met de o van "other"; "ander" in het Nederlands) om de + cursor naar het andere venster te verplaatsen. ->> Verschuif de tekst in het onderste venster, m.b.v. C-v en M-v. - Zorg ervoor dat je deze uitleg in het bovenste venster leest. +>> Verschuif de tekst in het onderste venster, met C-v en M-v. + Zorg ervoor dat je deze inleiding in het bovenste venster leest. ->> Type weer C-x o om de cursor weer in het bovenste venster - te zetten. De cursor staat weer precies op de plaats waar - hij stond toen je het venster verliet. +>> Tik weer C-x o om de cursor weer in het bovenste venster te zetten. + De cursor staat weer precies op de plaats waar hij stond toen je + het venster verliet. -Je kan C-x o blijven gebruiken om van venster naar venster te gaan. Elk -venster heeft zijn eigen cursorpositie; de cursor is altijd maar zichtbaar -in een daarvan. Alle normale commando's hebben betrekking op het venster -waar de cursor in staat. Dit venster is het `geselecteerde venster' -(`selected window' in het engels). +Je kan C-x o blijven gebruiken om van venster naar venster te gaan. +Elk venster heeft zijn eigen cursorpositie; de cursor is altijd enkel +zichtbaar in een daarvan. Alle normale commando's hebben betrekking +op het venster waarin de cursor staat. Dit venster is het +"geselecteerde venster" ("selected window" in het Engels). -Het C-M-v commando is erg nuttig wanneer je tekst aan het bewerken bent in -het ene venster, terwijl je het andere venster als referentie gebruikt. -Je kan de cursor dan altijd in het venster houden waarin je bezig bent, -terwijl je met C-M-v door de tekst in het andere venster loopt. +Het C-M-v commando is erg nuttig wanneer je tekst aan het bewerken +bent in het ene venster, terwijl je het andere venster als referentie +gebruikt. Je kan de cursor dan altijd in het venster houden waarin je +bezig bent, terwijl je met C-M-v door de tekst in het andere venster +loopt. -C-M-v is een voorbeeld van een CONTROL-META teken. Als je een echte META -toets hebt kan je C-M-v intypen door zowel CTRL als META ingedrukt te -houden terwijl je v typt. Het maakt niet uit in welke volgorde je de CTRL -en META indrukt; het gaat erom welke ingedrukt zijn terwijl je typt. +C-M-v is een voorbeeld van een CONTROL-META teken. Als je een echte +META-toets hebt kan je C-M-v intikken door zowel CONTROL als META +ingedrukt te houden terwijl je v tikt. Het maakt niet uit in welke +volgorde je CONTROL en META indrukt; het gaat erom welke toetsen +ingedrukt zijn terwijl je tikt. -Als je geen echte META toets hebt kan je ESC gebruiken; de volgorde maakt -dan wel uit. Je moet dan ESC typen, gevolgd door CTRL-v; CTRL-ESC v zal -niet werken. Dit komt doordat ESC zelf een teken is, terwijl CTRL en META -dat niet zijn. +Als je geen echte META-toets hebt kan je gebruiken; de volgorde +is dan wel belangrijk. Je moet dan eerst tikken, gevolgd door +CONTROL-v; CONTROL- v zal niet werken. Dit komt doordat +zelf een teken is, terwijl CONTROL en META dat niet zijn. ->> Type C-x 1 (in het bovenste venster) om het onderste venster te laten - verdwijnen. +>> Tik C-x 1 (in het bovenste venster) om het onderste venster te + laten verdwijnen. -(Als je C-x 1 typt in het onderste venster laat je het bovenste -verdwijnen. C-x 1 betekent zoveel als `ik wil maar 1 venster, -en wel dat venster waar de cursor nu in staat.') +(Als je C-x 1 tikt in het onderste venster laat je het bovenste +verdwijnen. C-x 1 betekent zoveel als "ik wil maar 1 venster, en wel +dat venster waar de cursor nu in staat.") -Hier is nog een manier om twee venster te krijgen die elk een andere tekst -laten zien: +Je hoeft niet dezelfde buffer in beide vensters te hebben. Wanneer je +C-x C-f gebruikt om een bestand in één van de vensters te bezoeken, +zal het andere venster niet veranderen. Je kunt de vensters +onafhankelijk van elkaar gebruiken om bestanden te bezoeken. ->> Type C-x 4 C-f gevolgd door de naam van een van je bestanden, gevolgd - door . Het opgegeven bestand zal in het onderste venster - verschijnen, en de cursor zal in dat venster staan. +Hier is nog een manier om twee venster te krijgen die elk een andere +tekst laten zien: ->> Type C-x o om terug naar het bovenste venster te gaan, en C-x 1 om +>> Tik C-x 4 C-f gevolgd door de naam van een van je bestanden, + gevolgd door . Het opgegeven bestand zal in het onderste + venster verschijnen, en de cursor zal in dat venster staan. + +>> Tik C-x o om terug naar het bovenste venster te gaan, en C-x 1 om het onderste venster te laten verdwijnen. * RECURSIEVE BEWERKINGSNIVEAUS ------------------------------ -Soms kom je in Emacs in een recursief bewerkingsniveau terecht (engels: -`recursive editing level'). Dit is te zien in de moderegel aan de rechte -haken om de haakjes die om naam van de hoofdmode staan. Dan staat er -bijvoorbeeld [(Fundamental)] in plaats van (Fundamental). +Soms kom je in Emacs in een recursief bewerkingsniveau terecht +(Engels: "recursive editing level"). Dit is te zien in de modusregel +aan de vierkante haken die om de haakjes van de naam van de hoofdmodus +staan. Dan staat er bijvoorbeeld [(Fundamental)] in plaats van +(Fundamental). -Type ESC ESC ESC Om uit een recursief bewerkingsniveau te komen. Dit is -een generiek `ontsnappingscommando'. Je kan het ook gebruiken om extra -vensters weg te gooien of om uit de minibuffer te komen. +Tik Om uit een recursief bewerkingsniveau te komen. +Dit is een algemeen "ontsnappingscommando". Je kan het ook gebruiken +om extra vensters te verwijderen of om uit de minibuffer te komen. ->> Type M-x om in een minibuffer te komen, en type dan ESC ESC ESC +>> Tik M-x om in een minibuffer te komen, en tik dan om er weer uit te komen. -C-g is niet bruikbaar om uit een recursief bewerkingsniveau te komen. De -reden hiervoor is dat C-g gebruikt wordt om commando's af te breken BINNEN -het recursieve bewerkingsniveau. +C-g is niet bruikbaar om uit een recursief bewerkingsniveau te komen. +De reden hiervoor is dat C-g gebruikt wordt om commando's af te breken +BINNEN het recursieve bewerkingsniveau. * MEER INFORMATIE ----------------- -We hebben geprobeerd je met deze uitleg precies genoeg informatie te geven -om met Emacs te beginnen. De mogelijkheden van Emacs zijn zo legio dat -het onmogelijk is nu alles uit te leggen. Emacs heeft zoveel nuttige -mogelijkheden dat je er meer over zou kunnen willen leren. Emacs heeft -commando's om documentatie te laten zien over Emacs commando's. Deze -`helpcommando's' beginnen allemaal met C-h: `het Hulpteken'. - -Om hulp te krijgen, type C-h, gevolgd door een teken om aan te duiden -welke hulp je wilt. Als je het echt niet meer weet, type C-h ? en Emacs -vertelt welke hulp het allemaal te bieden heeft. Als je C-h hebt getypt -maar van gedachten veranderd bent, type je gewoon C-g om het af te breken. - -(Op sommige computers is de betekenis van C-h veranderd. Dat is een -slecht plan, zeker als die verandering op alle gebruikers invloed heeft, -en is dus een geldige reden om je beklag te doen bij de systeembeheerder -of helpdesk. Als C-h intussen niet een bericht onderaan het scherm laat -zien over mogelijke hulp, probeer dan de F1 toets (functietoets 1) of -gebruik M-x help RET.) - -De eenvoudigste hulp is C-h c. Type C-h, het teken `c' en een teken of +We hebben geprobeerd je met deze inleiding precies genoeg informatie +te leveren om met Emacs te beginnen werken. De mogelijkheden van +Emacs zijn zo groot dat het onmogelijk is nu alles uit te leggen. Het +kan zijn dat je meer over Emacs wil leren omdat het zoveel nuttige +mogelijkheden heeft. Emacs heeft commando's om documentatie te laten +zien over Emacs commando's. Deze "helpcommando's" beginnen allemaal +met C-h: "het Hulpteken". + +Om hulp te krijgen tik je C-h, gevolgd door een teken om aan te duiden +welke hulp je wilt. Als je het echt niet meer weet, tik C-h ? en +Emacs vertelt welke hulp het allemaal te bieden heeft. Als je C-h +hebt getikt maar van gedachten veranderd bent, tik je gewoon C-g om +het af te breken. + +(In sommige installaties wordt de betekenis van C-h veranderd. Dat is +geen goed idee, zeker als die verandering op alle gebruikers invloed +heeft, en is een geldige reden om je beklag te doen bij de +systeembeheerder of de helpdesk. Als C-h intussen niet een bericht +onderaan het scherm laat zien over mogelijke hulp, probeer dan de F1 +toets (functietoets 1) of gebruik M-x help .) + +De eenvoudigste hulp is C-h c. Tik C-h, het teken "c" en een teken of uitgebreid commando, en Emacs laat een zeer korte beschrijving van het commando zien. ->> Type C-h c Control-p. - De beschrijving die getoond wordt zou zoiets moeten zijn als +>> Tik C-h c C-p. + +De beschrijving die getoond wordt, zou zoiets moeten zijn als: C-p runs the command previous-line - (nederlands: C-p voert het commando previous-line uit.) + (Nederlands: C-p voert het commando previous-line uit.) -Dit commando vertelt je `de naam van de functie'. Functies worden vooral -gebruikt om Emacs uit te breiden of aan de wensen van de gebruiker aan te -passen. Aangezien functienamen gekozen zijn om aan te geven wat de -functie doet, zijn ze ook geschikt als erg korte documentatie; genoeg om -je te herinneren aan wat de commando's die je al geleerd hebt betekenen. +Dit commando vertelt je "de naam van de functie". Functies worden +vooral gebruikt om Emacs uit te breiden of aan de wensen van de +gebruiker aan te passen. Aangezien functienamen gekozen zijn om aan +te geven wat de functie doet, zijn ze ook geschikt als heel korte +documentatie; genoeg om je te herinneren aan wat de commando's die je +al geleerd hebt betekenen. -Uitgebreide commando's zoals C-x C-s en (als je geen META, EDIT or ALT -toets hebt) v kunnen ook getypt worden na C-h c. +Uitgebreide commando's zoals C-x C-s en (als je geen META-, EDIT- of +ALT-toets hebt) v kunnen ook getikt worden na C-h c. -Om meer informatie over een commando te krijgen, type C-h k in plaats van -C-h c. +Om meer informatie over een commando te krijgen, tik C-h k in plaats +van C-h c. ->> Type C-h k Control-p. +>> Tik C-h k C-p. -Dit laat de documentatie van de functie zien, inclusief de naam van de -functies, in een apart venster. Als je klaar bent met lezen, type C-x 1 -om van dat venster af te komen. Je hoeft dat natuurlijk niet meteen te -doen. Je kan ook eerst wat anders doen voordat je C-x 1 typt. +Dit laat de documentatie van de functie, inclusief de naam van de +functie, in een apart venster zien. Als je klaar bent met lezen, tik +C-x 1 om van dat venster af te komen. Je hoeft dat natuurlijk niet +meteen te doen. Je kan ook eerst wat anders doen voordat je C-x 1 +tikt. Hier zijn nog wat nuttige mogelijkheden van C-h: C-h f Beschrijf een functie. Je moet de naam van de functie - intypen. + intikken. ->> Type C-h f previous-line - Dit laat alle informatie zien die Emacs heeft over de functie die het - C-p commando implementeert. +>> Tik C-h f previous-line + Dit laat alle informatie zien die Emacs heeft over de functie die + het C-p commando implementeert. - C-h a Commando Apropos. Type een woord in en Emacs zal een +Een vergelijkbaar commando C-h v toont de documentatie van variabelen +die je kunt instellen om het gedrag van Emacs naar wens aan te passen. +Het commando vraagt je om de naam van een variabele. + + C-h a Commando Apropos. Tik een woord in en Emacs zal een lijst van alle commando's laten zien waarin dat woord - voorkomt. Al deze commando's kunnen aangeroepen worden - met M-x. Bij sommige commando's staat met welke tekens - dit commando direct uitgevoerd kan worden. + voorkomt. Al deze commando's kunnen aangeroepen + worden met M-x. Bij sommige commando's staat met + welke tekens dit commando direct uitgevoerd kan + worden. ->> Type C-h a file. +>> Tik C-h a file. -Dit laat in een ander venster alle M-x commando's zien met `file' in hun -naam. Je zal teken-commando's zien als C-x C-f naast de overeenkomende -commandonaam zoals find-file. +Dit laat in een ander venster alle M-x commando's zien met "file" in +hun naam. Je zal teken-commando's zien als C-x C-f naast de +overeenkomende commandonaam zoals find-file. ->> Type C-M-v herhaaldelijk om de tekst in het hulpvenster te verschuiven. +>> Tik C-M-v herhaaldelijk om de tekst in het hulpvenster te + verschuiven. ->> Type C-x 1 om het hulpvenster weg te gooien. +>> Tik C-x 1 om het hulpvenster te verwijderen. + C-h i Lees de online handleidingen (ook wel Info genoemd). + Dit commando zet je in een speciale buffer genaamd + "*info*" waar je online handleidingen kunt lezen van + software die op je computer is geïnstalleerd. Tik m + Emacs om de handleiding van Emacs te lezen. + Als je nog nooit Info hebt gebruikt dan kun je ? + tikken zodat Emacs je een rondleiding geeft langs de + mogelijkheden van het Info systeem. Wanneer je klaar + bent met deze Emacs-inleiding dan kun je de + Emacs-Info-handleiding gebruiken als je primaire bron + van informatie. -* CONCLUSIE ------------ -Denk eraan dat je met C-x C-c gebruikt om Emacs te verlaten. Om tijdelijk -een shell te krijgen en daarna weer in Emacs terug te komen, type C-x. +* MEER MOGELIJKHEDEN +-------------------- -De bedoeling van deze uitleg is dat ze begrijpelijk is voor alle nieuwe -Emacs gebruikers. Als je dus iets onduidelijks bent tegengekomen blijf -dan niet zitten en maak jezelf geen verwijten. Klaag erover! +Je kunt meer over Emacs leren door haar handleiding te lezen. Deze is +zowel als boek als in elektronische vorm via Info beschikbaar (gebruik +het Help menu of tik h r). Kijk bijvoorbeeld eens naar +"completion", hetgeen minder tikwerk oplevert, of "dired" wat het +omgaan met bestanden vereenvoudigt. +"Completion" (of "afmaken", in het Nederlands) is een manier om +onnodig tikwerk te voorkomen. Als je bijvoorbeeld naar de +"*Messages*" buffer wilt omschakelen, dan kun je C-x b *M tikken +en dan zal Emacs de rest van de buffernaam invullen voor zover dit +mogelijk is. Completion staat beschreven in de node "Completion" in +de Emacs-Info-handleiding. -* COPI-EREN ------------ +"Dired" toont je een lijst van bestanden in een directory, waarmee je +gemakkelijk bestanden kunt bezoeken, van naam kunt veranderen, kunt +wissen, of andere acties op uit kunt voeren. Informatie over Dired +kun je vinden in de node "Dired" van de Emacs-Info-handleiding. -(De engelse versie van) deze uitleg is voorafgegaan door een lange reeks -van Emacs tutorials, die begon met de uitleg die Stuart Cracraft schreef -voor de originele Emacs. Deze nederlandse vertaling is gemaakt door -Pieter Schoenmakers op basis van de GNU Emacs 20.2 -TUTORIAL. -(Wat nu volgt is een vertaling naar het nederlands van de condities voor -gebruik en verspreiding van deze uitleg. Deze vertaling is niet -gecontroleerd door een jurist. Er kunnen derhalve geen rechten aan de -vertaling worden ontleend, en de vertaling wordt gevolgd door het engelse -origineel.) +* CONCLUSIE +----------- -Deze versie van de uitleg valt onder copyright, net als GNU Emacs. -Je mag deze uitleg distribu-eren onder bepaalde condities: +Denk eraan dat je met C-x C-c Emacs permanent verlaat. Om tijdelijk +een shell te krijgen en daarna weer in Emacs terug te komen, tik je +C-z. -Copyright (c) 1985, 1996, 1997 Free Software Foundation +De bedoeling van deze inleiding is dat ze begrijpelijk is voor alle +nieuwe Emacs-gebruikers. Als je dus iets onduidelijks bent +tegengekomen, blijf dan niet zitten en maak jezelf geen verwijten. +Doe je beklag! - Iedereen mag letterlijke copi-en van dit document, zoals ontvangen, - verspreiden, op elke medium, vooropgesteld dat de copyrightmelding en - toestemmingsmelding niet aangetast worden en dat de verspreider aan de - ontvanger dezelfde distributierechten verleend als aan hem verleend - door deze melding. - Toestemming wordt verleend om gemodificeerde versies van dit document, - of delen daarvan, te verspreiden, onder bovenstaande condities, - vooropgesteld dat ze ook duidelijk melding maken van degene die als - laatste modificaties doorgevoerd heeft. +* KOPIËREN +----------- -De condities voor het copi-eren van Emacs zelf zijn complexer dan dit, -maar gebaseerd op dezelfde gedachte. Lees het bestand COPYING en geef -vervolgens copi-en van Emacs aan al je vrienden. Help bij het uitroeien -van softwarebeschermingspolitiek (`software eigendom') door vrije software -te gebruiken, schrijven en delen! +(De Engelse versie van) deze inleiding is voorafgegaan door een lange +reeks van Emacs-inleidingen, die begon met de inleiding die Stuart +Cracraft schreef voor de originele Emacs. Deze Nederlandse vertaling +is gemaakt door Pieter Schoenmakers op basis +van de GNU Emacs 20.2 TUTORIAL, en nagezien en verbeterd door Frederik +Fouvry en Lute Kamstra. + +(Wat nu volgt is een vertaling naar het Nederlands van de condities +voor gebruik en verspreiding van deze inleiding. Deze vertaling is +niet gecontroleerd door een jurist. Er kunnen derhalve geen rechten +aan de vertaling worden ontleend, en de vertaling wordt gevolgd door +het Engelse origineel.) + +Deze versie van de inleiding valt onder copyright, net als GNU Emacs. +Je mag deze inleiding verspreiden onder bepaalde voorwaarden: + +Copyright (C) 1985, 1996, 1997, 2003, 2004, + 2005 Free Software Foundation, Inc. + + Iedereen mag letterlijke kopieën van dit document, zowel ontvangen + als verspreiden, op elk medium, vooropgesteld dat de + copyrightvermelding en de toestemmingsmelding niet veranderd worden + en dat de verspreider aan de ontvanger dezelfde distributierechten + verleent als aan hem verleend worden door deze melding. + + Toestemming wordt verleend om veranderde versies van dit document, + of delen daarvan, te verspreiden, onder bovenstaande voorwaarden, + vooropgesteld dat ze ook duidelijk vermelden wie als laatste + veranderingen aangebracht heeft. + +De condities voor het kopiëren van Emacs zelf zijn ingewikkelder dan +dit, maar gebaseerd op dezelfde gedachte. Lees het bestand COPYING en +geef vervolgens kopieën van Emacs aan al je vrienden. Help bij het +uitroeien van softwarebeschermingspolitiek ("eigendom") door vrije +software te gebruiken, te schrijven en te delen! (Engels origineel van de copyrightmelding en condities: This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 1997, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. - Permission is granted to anyone to make or distribute verbatim copies - of this document as received, in any medium, provided that the - copyright notice and permission notice are preserved, - and that the distributor grants the recipient permission - for further redistribution as permitted by this notice. + Permission is granted to anyone to make or distribute verbatim + copies of this document as received, in any medium, provided that + the copyright notice and permission notice are preserved, and that + the distributor grants the recipient permission for further + redistribution as permitted by this notice. - Permission is granted to distribute modified versions - of this document, or of portions of it, - under the above conditions, provided also that they - carry prominent notices stating who last altered them. + Permission is granted to distribute modified versions of this + document, or of portions of it, under the above conditions, + provided also that they carry prominent notices stating who last + altered them. The conditions for copying Emacs itself are more complex, but in the same spirit. Please read the file COPYING and then do give copies of GNU Emacs to your friends. Help stamp out software obstructionism ("ownership") by using, writing, and sharing free software!) + +;;; Local Variables: +;;; coding: latin-1 +;;; End: + +;;; arch-tag: 3399e308-e605-4125-8fbb-b2fe91ac3149 diff --git a/etc/TUTORIAL.pl b/etc/TUTORIAL.pl index daedfe0f39c..cff0b9dd40c 100644 --- a/etc/TUTORIAL.pl +++ b/etc/TUTORIAL.pl @@ -1,5 +1,4 @@ -Czytasz w³a¶nie krótki samouczek Emacsa. Copyright (c) 1985, 2001 -Free Software Foundation, Inc. Szczegó³y na koñcu pliku. +Krótki samouczek Emacsa. Warunki kopiowania znajduj± sie na koñcu pliku. Polecenia Emacsa wymagaj± na ogó³ wci¶niêcia klawisza CONTROL (oznaczanego czasami Ctrl lub CTL) lub klawisza META (oznaczanego czasami EDIT @@ -1218,7 +1217,8 @@ z pomoc Ta wersja samouczka, podobnie jak GNU Emacs, jest chroniona prawem autorskim, ale wolno j± kopiowaæ pod nastêpuj±cymi warunkami: -Copyright (c) 1985, 1994, 2001 Free Software Foundation +Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Zezwala siê na wykonywanie lub rozpowszechnianie wiernych kopii tego dokumentu w otrzymanej formie, na dowolnym @@ -1239,12 +1239,10 @@ z t znajomym kopie Emacsa. Pomó¿ têpiæ obstrukcjonizm w informatyce, u¿ywaj±c, tworz±c i dziel±c siê oprogramowaniem swobodnym. - ;;; Local Variables: ;;; mode: fundamental ;;; coding: latin-2 +;;; sentence-end-double-space: nil ;;; End: - - - +;;; arch-tag: 6c6b7445-4cd5-44ca-a101-7f4697b92f60 diff --git a/etc/TUTORIAL.pt_BR b/etc/TUTORIAL.pt_BR new file mode 100644 index 00000000000..bd7cf84d6c1 --- /dev/null +++ b/etc/TUTORIAL.pt_BR @@ -0,0 +1,1088 @@ +Tutorial do Emacs. Veja no fim as condições para cópia. + +Os comandos do Emacs geralmente envolvem a tecla CONTROL (algumas vezes +nomeada CTRL ou CTL) ou a tecla META (algumas vezes nomeada EDIT ou +ALT). Antes de escrever isso tudo toda vez, usaremos as seguintes +abreviações: + + C- Significa pressionar a tecla CONTROL enquanto digitar o + caracter + Assim, C-f seria: Pressionar a tecla CONTROL e digitar f. + M- Significa pressionar a tecla META, EDIT ou ALT enquanto + digitar . + Se não tiver META, EDIT ou ALT, no lugar digite ESC e depois + . Escrevemos para tecla ESC. + + +Nota importante: para terminar a seção do Emacs, digite C-x C-c. (Dois +caracteres.) Os caracteres ">>" na margem esquerda indicam direções para +você tentar usar um comando. Por exemplo: +<> +[Metade da página em branco para propósitos didáticos. O texto continua +abaixo] +>> Agora digite C-v (Ver próxima tela) para ir para próxima tela. + (vá em frente, faça isso pressionando a tecla CONTROL enquanto + digitar v). + De agora em diante, você deve fazer isso de novo sempre que você + terminar de ler a tela. + +Note que tem uma sobreposição de duas linhas quando você move de tela em +tela; isso fornece uma continuidade para que você continue lendo o +texto. + +A primeira coisa que você precisa saber é como se mover de um lugar a +outro no texto. Você já sabe como se mover para próxima tela, com +C-v. Para se mover para trás uma tela, digite M-v (pressione a tecla +META enquanto digita v, ou digite v se você não tiver a tecla META, +EDIT ou ALT). + +>> Tente digitar M-v e depois C-v, algumas vezes. + + +* SUMÁRIO +--------- + +Os comandos a seguir são úteis para visualizar telas inteiras + + C-v Move para tela inteira posterior + M-x Move para tela inteira anterior + C-l Limpa a tela e re-mostra todo o texto, movendo o texto ao + redor do cursor para o centro da tela. (Isso é + control-L, não control-1.) + +>> Encontre o cursor, e note o texto que está perto dele. + Digite C-l. + Encontre o cursor novamente e perceba que o mesmo texto continua + perto do cursor. + + +* CONTROLE BÁSICO DO CURSOR +--------------------------- + +Movendo de uma tela inteira para outra tela cheia é útil, mas como você +move para um lugar especifico com o mesmo texto na tela? + +Existem diversas maneiras para você poder fazer isso. A maneira mais +básica é utilizar os comandos C-p, C-b, C-f e C-n. Cada um desses +comandos movem o cursor uma linha ou coluna na tela em uma direção +particular. Aqui está uma tabela mostrando esses quatro comandos e as +direções que eles movem: + + Linha anterior, C-p + : + : + Traz, C-b .... Posição corrente do cursor .... Frente, C-f + : + : + Linha posterior, C-n + +>> Mova o cursor para a linha no meio do diagrama acima utilizando C-n + ou C-p. Digite C-l para ver o diagrama inteiro centralizado na tela. + +Você provavelmente achará isso fácil pensando neles pela letra: P para +Previous (anterior), N para Next (Posterior), B para Backward (trás) e F +para forward (frente). Estes são os comandos básicos de posicionamento +de cursor e você estará utilizando eles a TODO tempo, então seria ótimo +se você os aprendesse agora. + +>> Faça alguns C-n's para trazer o cursor abaixo desta linha. + +>> Mova para a linha com C-f's e depois para cima com C-p's. + Veja o que C-p faz quando o cursor está no meio da linha. + +Cada linha de texto termina com um caractere de nova linha, que serve +para separar da próxima linha. No fim da ultima linha deve ter um +caractere de nova linha (mas não é exigido pelo Emacs). + +>> Tente digitar C-b no começo da linha. O cursor deve mover para o fim + da linha anterior. Isso acontece por que ele se moveu para trás + através do caractere de nova linha. + +C-f pode mover o cursor através de uma Nova linha do mesmo jeito que + C-b. + +>> Faça mais alguns C-b's, assim você percebe onde o está o cursor. + Depois alguns C-f's para retornar para o fim da linha. + Depois mais um C-f para mover para linha seguinte. + +Quando você move o cursor passando o topo ou o rodapé da tela, o próximo +texto além da borda desloca-se na tela. Isso é chamado rolagem. Isso +ativa o Emacs para mover o cursor para o lugar especificado no texto sem +move-lo fora da tela. + +>> Tente mover o cursor fora do rodapé da tela com C-n, e veja o que + acontece. + +Se mover por caracteres é muito lento, você pode se mover por +palavras. M-f (Meta-f) move uma palavra para frente e M-b uma palavra +para trás. + +>> Digite alguns M-f's e M-b's + +Quando você está no meio de uma palavra, M-f move o cursor para o fim da +mesma. Quando você está em um espaço em branco no meio de duas palavras, +M-f move o cursor para o fim da palavra seguinte. M-b funciona do mesmo +jeito na direção contraria. + +>> Digite M-f e M-b algumas vezes, intercalado com C-f's e C-b's assim + você pode observar a ação do M-f e M-b de varias lugares dentro e no + meio de palavras. + +Observe o paralelismo entre C-f e C-b por um lado, e M-f e M-b por outro +lado. Muito freqüentemente os caracteres Meta são usados para operações +relacionadas com as unidades definidas pela linguagem (palavras, +sentenças, parágrafos), enquanto caracteres Control operam nas unidades +básicas que são independente do que você está editando (caracteres, +linhas, etc). + +Esse paralelismo aplica-se entre linhas e sentenças: C-a e C-e move o +cursor para o começo ou fim da linha, e M-a e M-e move o cursor para o +começo ou fim da sentença. + +>> Tente alguns C-a's, e depois alguns C-e's. + Tente alguns M-a's, e depois alguns M-e's. + +Veja como repetidos C-a's fazem nada, mas repetidos M-a's mantém movendo +mais uma sentença. Embora estes não sejam completamente análogos, cada +um parece natural. + +A posição do cursor no texto é também chamado "ponto" (point). Para +parafrasear, o cursor mostra na tela onde o ponto é encontrado no texto. + +Aqui está um simples sumário das operações de movimento de cursor, +incluindo comandos de movimento de palavra e sentença. + + C-f Move o cursor um caractere para frente + C-b Move o cursor um caractere para trás + + M-f Move o cursor uma palavra para frente + M-b Move o cursor uma palavra para trás + + C-n Move o cursor para linha posterior + C-p Move o cursor para linha anterior + + C-a Move o cursor para o começo da linha + C-e Move o cursor para o fim da linha + + M-a Move o cursor para trás no começo da sentença + M-e Move o cursor para frente no fim da sentença + +>> Tente agora todos estes comandos algumas vezes para praticar. + Estes são os comandos mais utilizados. + +Outros dois comandos de movimento de cursor importantes são M-< (Meta +Menor-que), o qual move o cursor para o começo de todo o texto, e M-> +(Meta Maior-que), o qual move para o fim de todo o texto. + +Na maioria dos terminais, o "<" é acima da vírgula, então você precisa +utilizar a tecla shift para digita-la. Nestes terminais você precisa +utilizar a tecla shift para digitar M-< também; sem a tecla shift, você +estaria teclando M-virgula. + +>> Tente agora M-<, para mover o cursor ao começo do tutorial. + Use então C-v repetidamente para trazer o cursor novamente aqui. + +>> Tente agora M->, para mover o cursor ao fim do tutorial. + Use então M-v repetidamente para trazer o cursor novamente aqui. + +Você também pode mover o cursor com as setas, se o seu terminal tem +teclas com setas. Nós recomendamos aprender C-b, C-f, C-n e C-p por três +razões. Primeira, elas funcionam em todos os terminais. Segunda, uma vez +que você ganhar prática usando o Emacs, você descobrirá que digitar +nestes caracteres Control é mais rápido do que digitar nas setas (porque +você não tem que mover suas mãos tão longe da posição de +digitação). Terceira, uma vez que você tiver o hábito de utilizar estes +comandos de caracteres Control, você pode facilmente aprender como usar +outros comandos avançados de movimentação do cursor. + +A maioria dos comandos do Emacs aceitam argumentos numéricos; para +maioria dos comandos, isso serve como um fator de repetição. A maneira +que você da a um comando uma repetição teclando C-u e depois os dígitos +antes de digitar o comando. Se você tem o META (EDIT ou ALT), tem outra +alternativa para digitar um argumento numérico: digite os dígitos +enquanto pressionando a tecla META. Nós recomendamos aprender o método +C-u porque funciona em todos os terminais. O argumento numérico também é +chamado de "argumento prefixo", porque você digita o argumento antes do +comando que ele se aplica. + +Por exemplo, C-u 8 C-f move o cursor oito caracteres para frente + +>> Tente usar C-n ou C-p com um argumento numérico, para mover o + cursor para um linha perto dessa com um único comando. + +A maioria dos comandos usam o argumento numérico para um fator de +repetição, mas alguns comandos usam isso de outra maneira. Diversos +comandos (mas nenhum daqueles comandos que você tenha aprendido até +agora) usam isso como uma marca -- a presença de um argumento prefixo, +independente do seu valor, faz o comando fazer alguma coisa diferente. + +C-v e M-v são outro tipo de exceção. Quando você da um argumento, eles +rolam a tela para cima ou para baixo por aquele número de linhas, de +preferência com a tela cheia. Por exemplo, C-u 8 C-v rola a tela 8 +linhas. + +>> Tente agora digitar C-u 8 C-v. + +Isso deve ter rolado a tela para cima 8 linhas. Se você quiser rolar a +tela para baixo novamente, você pode dar um argumento para o M-v. + +Se você está usando um display com janelas, como o X11 ou MS-Windows, +deve ter uma área retangular alta chamada barra de rolagem na mão +esquerda da janela do Emacs. Você pode rolar o texto clicando o mouse na +barra de rolagem. + +>> Tente pressionar o botão do meio no topo da área destacada junto a + barra de rolagem. Isso deve rolar o texto para uma determinada + posição dependendo de quão alto ou baixo você clicar. + +>> Tente mover o mouse para cima e para baixo, enquanto pressionar o + botão do meio. Você verá que o texto rolará para cima e baixo assim + que você mover o mouse. + + +* QUANDO O EMACS PARECE MORTO +----------------------------- + +Se o Emacs parar de responder os seus comandos, você pode seguramente +para-lo digitando C-g. Você pode utilizar C-g para parar um comando que +está levando muito tempo para executar. + +Você também pode utilizar C-g para interromper um argumento numérico ou +o inicio de um comando que você não quer terminar. + +>> Digite C-u 100 para fazer um argumento numérico de 100, e depois + digite C-g. Agora digite C-f. O Cursor deve mover apenas um + caractere, porque você cancelou o argumento com C-g. + +Se você digitou um por engano, você pode sair dele com um c-g. + + +* COMANDOS DESABILITADOS +------------------------ + +Alguns comandos do Emacs são "desabilitados" para que os usuários +iniciantes não utilizem por acidente. + +Se você digita um dos comandos desabilitados, o Emacs mostrará uma +mensagem dizendo qual comando foi, e pergunta se você quer seguir e +executar o comando. + +Se você realmente quiser tentar o comando, digite Espaço na resposta da +pergunta. Normalmente, se você não quer executar o comando desabilitado, +responda a pergunta com "n". + +>> Digite C-x C-l (que é um comando desabilitado), + e então digite n para responder a pergunta. + + +* JANELAS +--------- + +O Emacs pode ter diversas janelas, cada uma mostrando seu próprio +texto. Nós vamos explicar mais tarde como utilizar estas múltiplas +janelas. Neste momento nos queremos explicar como se livrar das janelas +extras e voltar a edição básica em uma janela. É simples: + + C-x 1 Uma janela (mate todas as outras janelas). + +Isto é Control-x seguido pelo digito 1. C-x 1 expande a janela que está +com o cursor, para ocupar a tela inteira. Ela deleta todas as outras +janelas. + +>> Mova o cursor para esta linha e digite C-u 0 C-l. +>> Digite Control-h k Control-f. + Veja como esta janela diminui, enquanto uma nova aparece para mostrar + a documentação do comando Control-f. + +>> Digite C-x 1 e veja a listagem de documentação desaparecer. + +Este comando é diferente dos outros que você aprendeu por isso ele +consiste em dois caracteres. Ele inicia com o caractere Control-x. Tem +uma grande serie de comandos que iniciam com Control-x; a maioria deles +tem a ver com janelas, arquivos, buffers, e coisas relacionadas. Estes +comandos tem dois, três ou quatro caracteres de tamanho. + + +* INSERINDO E DELETANDO +----------------------- + +Se você quiser inserir um texto, apenas digite o texto. Os caracteres +que você verá, como A, 7, *, etc. são vistos pelo Emacs como texto e são +inseridos imediatamente. Digite para inserir um caractere de +nova linha. + +Você pode deletar o último caractere que você inseriu digitando +. é uma tecla no teclado, que está nomeado como +"Del". Em algumas casos, a tecla "Backspace" serve como o , mas +nem sempre! + +Mas geralmente, deleta o caractere imediatamente anterior a +posição corrente do cursor. + +>> Faça isso agora - Digite alguns caracteres, então delete eles + digitando algumas vezes. Não se preocupe em modificar este + arquivo; você não irá alterar o arquivo principal. Esta é a sua cópia + pessoal dele. + +Quando uma linha de texto fica muito grande na tela, a linha do texto é +continuada na linha seguinte. Uma barra invertida ("\") na margem +direita indica a linha que foi continuada. + +>> Insira texto até que você alcance a margem direita, e mantenha + inserindo. Você verá a linha de continuação aparecer. + +>> Utilize para deletar o texto até a linha caber em uma linha + novamente. A linha de continuação irá embora. + +Você pode deletar o caractere de nova linha como qualquer outro +caracter. Deletando o caractere de nova linha entre duas linhas você +juntará as duas em uma única linha. Se o resultado for muito longo para +acomodar na largura da tela, aparecerá um caractere de continuação. + +>> Mova o cursor para o inicio da linha e digite . Isso juntará + esta linha com a anterior. + +>> Digite para re-inserir a nova linha que você deletou. + +Lembre-se que a maioria dos comandos do Emacs podem receber um número de +repetição; isso inclui texto de caracteres. Repetir um texto de +caractere o insere algumas vezes. + +>> Tente isso agora -- digite C-u 8 * para inserir ********. + +Você acabou de aprender o jeito mais simples de digitar alguma coisa no +Emacs e corrigir os erros. Você pode deletar palavras ou linhas +também. Aqui vai um sumário dos comandos de deleção: + + deleta o caractere imediatamente antes do cursor + M-d deleta o próximo caractere apos o cursor + + M- Mata a palavra imediatamente antes do cursor + M-d Mata a próxima palavra depois do cursor + + C-k Mata a posição do cursor até o fim da linha + M-k Mata até o fim da sentença corrente + +Note que o e o C-d vs M- e M-d estende o paralelo +iniciado por C-f e M-f (bem, não é realmente um controle de +caractere, mas não vamos nos preocupar com isso). C-k e M-k são como C-e +e M-e, uma parte, nessas linhas são sentenças opostas. + +Você pode também matar parte de um buffer com um método uniforme. Mova +para o fim dessa parte, e digite C-@ ou C-SPC (um ou outro). (SPC é a +Barra de Espaço.) Mova para o outro fim dessa parte, e digite C-w. Isso +ira matar todo o texto entre as duas posições. + +>> Mova o cursor para o V no inicio do parágrafo anterior. +>> Digite C-SPC. Emacs vai mostrar a mensagem "Mark set" no rodapé da + tela. +>> Mova o cursor para o . (ponto) no "fim", na segunda linha do + parágrafo. +>> Digite C-w. Isso vai matar o texto iniciando no V, e terminando bem + antes do . (ponto). + +A diferença entra "matar" e "deletar" é que o texto "matado" pode ser +re-inserido, onde os textos "deletados" não podem ser re-inseridos. +Re-inserção de um texto matado chama-se colar (yanking). Geralmente, o +comando que pode remover bastante texto mata o texto (eles fazem com que +você possa colar (yank) o texto), enquanto os comandos que removem um +caractere, ou apenas linhas brancas ou espaços, fazem deleção (para que +você não possa colar esse texto). + +>> Mova o cursor para o inicio da linha que não esteja vazia. + Agora digite C-k para matar o texto nessa linha. +>> Digite C-k pela segunda vez. Você verá que a nova linha que segue a + linha será matada. + +Note que um simples C-k mata o conteúdo de uma linha, é um segundo C-k +mata a linha, e faz com que todas as outras linhas movam para cima. C-k +trata um argumento numérico especialmente: ele mata tantas linhas E seus +conteúdos. Isso não é uma simples repetição. C-u 2 C-k mata duas linhas +e suas novas linhas; digitar C-k duas vezes não faria isso. + +Para trazer o texto matado novamente é chamado colar "yaking". (Pense +nisso como colar, ou trazer de volta, algum texto que foi levado +embora.) Você pode colar (yank) o texto matado no mesmo lugar onde ele +foi matado, ou em qualquer outro lugar do buffer, ou ate em um arquivo +diferente. Você pode colar o texto diversas vezes, o que fará diversas +copias dele. + +O comando para colar é C-y. Ele re-insere o ultimo texto matado, na +posição corrente do cursor. + +>> Tente; digite C-y para colar o texto novamente. + +Se você fizer diversos C-k's em uma linha, todo esse texto matado será +salvo junto, então aquele C-y vai colar todas aquelas linhas de uma vez. + +>> Faca isso agora, digite C-k diversas vezes. + +Agora pegue o texto matado: + +Digite C-y. Então mova o cursor para baixo algumas linhas e digite C-y +novamente. Agora você sabe como copiar determinado texto. + +O que você faria se você tivesse determinado texto que você gostaria de +colar, e então você mata alguma outra coisa? C-y ira colar o kill mais +recente. Mas o antigo texto ainda não foi perdido. Você pode tê-lo +novamente usando o comando M-y. Depois que você der um C-y para pegar o +kill mais recente, digitar M-y troca o que você colou pelo anterior a +ele. Digitar M-y novamente e novamente traz kills anteriores e +anteriores. Quando você tiver alcançado o texto que você que esta +procurando, você não precisa fazer nada para mantê-lo. Apenas continue +com a sua edição, deixando o texto onde ele esta. + +Se você digitar M-y o suficiente, você começará do inicio novamente (o +kill mais recente). + +>> Mate uma linha, mova por ai, mate mais uma linha. + Agora digite C-y para colar a segunda linha matada. + Agora digite M-y e ele vai ser trocado pelo primeiro kill. + Faca mais alguns M-y's e veja o que você tem. Faca isso ate que o + segundo kill volte, e depois mais alguns. + Se você preferir, você pode tentar dar argumentos positivos e + negativos. + + +* DESFAZENDO (UNDO) +------------------- + +Se você fizer uma mudança no texto, e então decidir que isso foi um +erro, você pode desfazer com o comando de desfazer (undo), C-x u. + +Normalmente, C-x u desfaz as mudanças feitas por um comando; se você +repetir C-x u diversas vezes em uma linha, cada repetição irá desfazer +um comando adicional. + +Mas tem duas exceções: comandos que não trocam o texto não contam (isso +inclui o movimento do cursor e a barra de rolagem), e caracteres +auto-inseridos são usualmente cuidados em grupos de mais de 20 (Isso e +para reduzir o numero de C-x u's que você deve digitar para desfazer a +inserção de um texto.). + +>> Mate essa linha com C-k, então digite C-x u e isso vai re-aparecer. + +C-_ é um comando alternativo para desfazer; ele funciona exatamente como +o C-x u, mas é mais fácil de digitar diversas vezes em uma linha. A +desvantagem de C-_ é que alguns teclados ele não é tão obvio para +digitar. É exatamente por isso que o C-x u é fornecido. Em alguns +terminais, você pode digitar C-_ digitando / enquanto segurando o +CONTROL. + +Um argumento numérico para C-_ ou C-x u age como um contador de +repetição. + +Você pode desfazer a deleção de texto da mesma maneira que você pode +desfazer o kill de um texto. A distinção entre matar e deletar alguma +coisa afeta se você pode colar com C-y; isso não faz diferença pro +desfazer (undo). + + +* ARQUIVOS +---------- + +Para poder fazer o texto que você edita permanente, você precisa +coloca-lo em um arquivo. Ou então, isso será perdido quando o seu Emacs +for fechado. Para colocar seu texto em um arquivo, você precisa +"encontrar" o arquivo antes de digitar o texto (Isso também é chamado +"visitar" um arquivo.). + +Encontrando um arquivo significa que você verá o conteúdo de um arquivo +com o Emacs. De diversas maneiras, isso é como se você estivesse +editando o arquivo. De qualquer maneira, as mudanças que você fizer +utilizando o Emacs não se tornarão permanente ate que você "salve" o +arquivo. Isso e para que você evite deixar um arquivo meio-modificado no +sistema enquanto você não quer isso. Mesmo quando você salva, o Emacs +deixa o arquivo original sobre um arquivo de nome alterado no caso que +você mais tarde decida que aquelas mudanças foram um erro. + +Se você olhar no rodapé da tela você verá a linha que começa e termina +com traços e inicia com "--:-- TUTORIAL.pt_BR" ou algo parecido com +isso. Essa parte da tela normalmente mostra o nome do arquivo que você +esta visitando. Agora mesmo, você esta visitando um arquivo chamado +"TUTORIAL.pt_BR" que é sua própria copia do tutorial do Emacs. Quando +você encontra um arquivo com o Emacs, o nome do arquivo aparecera nesse +lugar especifico. + +Algo especial para se dizer sobre o comando de encontrar arquivo e que +você tem que dizer qual nome do arquivo você quer. Dizemos que o comando +"lê um argumento do terminal" (nesse caso, o argumento e o nome do +arquivo). Depois que você digitar o comando + + C-x C-f Encontrar um arquivo + +O Emacs pede para você digitar o nome do arquivo. O nome do arquivo +aparece no rodapé da tela. A linha de rodapé é chamada de minibuffer +quando é utilizada para esse tipo de introdução de dados. Você pode +utilizar os comandos padrões do Emacs para editar o nome do arquivo. + +Enquanto você estiver digitando o nome do arquivo (ou qualquer outro +tipo de dado para o minibuffer), você pode cancelar o comando com a +tecla C-g. + +>> Digite C-x C-f, então digite C-g. Isso cancelara o minibuffer, e + também cancelara o comando C-x C-f que estava sendo utilizado no + minibuffer. Para que você não procure nenhum arquivo. + +Quando você terminar de digitar o nome do arquivo, digite para +terminar. Então o comando C-x C-f ira trabalhar, e encontrar o arquivo +que você escolheu. O minibuffer desaparece quando o comando C-x C-f e +finalizado. + +Em pouco tempo o conteúdo do arquivo aparece na tela, e você poderá +editar o conteúdo dele. Quando você terminar de fazer suas alterações +permanentes digite o comando + + C-x C-s Salve o arquivo + +Isso copia o texto do Emacs para o arquivo. A primeira vez que você +fizer isso, o Emacs vai renomear o arquivo original para um novo nome +para que você não o perca. O nome novo e feito adicionando "~" no fim do +nome original do arquivo. + +Quando o salvamento for concluído, Emacs imprimira o nome do arquivo +escrito. Você deve salvar o conteúdo do seu arquivo regularmente, para +que você não perca muito trabalho caso o sistema caia por um algum +motivo. + +>> Digite C-x C-s, salvara a copia do seu tutorial. + Isso ira imprimir "Wrote ...TUTORIAL.pt_BR" no fim da tela. + +NOTA: Em alguns sistemas, digitar C-x C-s ira travar a tela e você não +verá saída do Emacs. Isso indica que um "recurso" do sistema operacional +chamado "controle de fluxo" (flow control) esta interceptando o C-s e +não deixando que passe pelo Emacs. Para destravar a tela, digite +C-q. Então, leia na seção "Spontaneous Entry to Incremental Search" no +manual do Emacs para uma dica de como lhe dar com esse "recurso". + +Você pode encontrar um arquivo já existente, para ver ou edita-lo. Você +também pode encontrar um arquivo que ainda não existe. Essa é a maneira +de criar um arquivo com o Emacs: encontre o arquivo, que ira iniciar +vazio, então inicie inserindo o texto para o arquivo. Quando você pedir +para "salvar" o arquivo, Emacs irá perguntar se você realmente quer +criar o arquivo com o texto que você acabou de inserir. De agora em +diante, você pode considerar que esta editando um arquivo já existente. + + +* BUFFERS +--------- + +Se você encontrar um segundo arquivo com C-x C-f, o primeiro continuara +dentro do Emacs. Você pode voltar para ele encontrando-o novamente com +C-x C-f. Dessa maneira você pode ter um grande numero de arquivos dentro +do Emacs. + +>> Crie um arquivo chamado "foo" digitando C-x C-f foo . + Depois digite algum texto, edite-o, e salve "foo" digitando C-x C-s. + Finalmente, digite C-x C-f TUTORIAL.pt_BR para voltar ao + tutorial. + +O Emacs guarda cada texto de um arquivo em um objeto chamado +"buffer". Encontrar um arquivo cria um novo buffer dentro do Emacs. Para +ver uma lista dos buffers que existem no serviço do seu Emacs, digite + + C-x C-b Lista os buffers + +>> Tente C-x C-b agora. + +Veja como cada buffer tem um nome, e ele também pode ter um nome de +arquivo para o conteúdo de arquivo que ele armazena. Alguns buffers não +correspondem a arquivos. Por exemplo, o buffer chamado "*Buffer List*" +não tem nenhum arquivo. Esse é o buffer que contem a lista de buffers +que foi feito com C-x C-b. QUALQUER texto que você ver numa janela do +Emacs e sempre parte de algum buffer. + +>> Digite C-x 1 para sair da lista dos buffers. + +Se você fizer mudanças no texto de um arquivo, então encontrar um novo +arquivo, isso não salva o conteúdo do primeiro arquivo. As mudanças +continuam dentro do Emacs, nos buffers de arquivo. A criação ou edição +do buffer do segundo arquivo não tem nenhum efeito no buffer do primeiro +arquivo. Isso é muito útil, mas também significa que você precisa de uma +maneira conveniente de salvar o buffer do primeiro arquivo. Seria +inconveniente ter que voltar para ele com C-x C-f para salva-lo com C-x +C-s. Por isso temos + + C-x s Salve alguns buffers + +C-x s pergunta a você sobre cada buffer que contem modificação e você +não salvou. Ele te pergunta, para cada buffer, se você quer salvar. + +>> Insira uma linha de texto, então digite C-x s. + Isso deve te perguntar se você quer salvar o buffer chamado + TUTORIAL.pt_BR. + Responda sim para a pergunta digitando "y". + + +* ESTENDENDO O COMANDO SET +-------------------------- + +Existem mais, muito mais comandos que o Emacs poderia possivelmente ser +colocado em todos os control e caracteres meta. O Emacs faz isso com o +comando X (estender). Que vem em duas versões: + + C-x Extensor de caractere. Seguido por um caractere. + M-x Extensor de nome de comando. Seguido por um longo nome. + +Esses comandos que são geralmente úteis mas pouco usados que os comandos +que você já aprendeu. Você já viu dois deles: os comandos de arquivos +C-x C-f para Encontrar e C-x C-s para Salvar. Outro exemplo de um +comando para finalizar a sessão do Emacs - esse é o comando C-x C-c (Não +se preocupe em perder as mudanças que você fez; C-x C-c oferece salvar +cada arquivo modificado antes de matar o Emacs.). + +C-z é o comando para sair do Emacs *temporariamente* - então você pode +voltar para a mesma seção do Emacs depois. + +Em sistemas que permitem isso, C-z "suspende" o Emacs; isso e, retorna +ao shell mas não destrói o Emacs. Nos shells mais comum, você pode +resumir o Emacs com o comando 'fg' ou com '%emacs'. + +Nos sistemas que não implementam suspensão, C-z cria um subshell rodando +sobre o Emacs para dar a você a chance de rodar outros programas e +retornar ao Emacs depois; isso não "sai" verdadeiramente do Emacs. Nesse +caso, o comando shell 'exit' é o comando usual para voltar ao Emacs do +subshell. + +A hora de usar o C-x C-c é quando você esta prestes a sair do sistema +operacional. É também a maneira correta de sair do Emacs quando chamado +através de um cliente de e-mail ou outros utilitários, porque eles não +controlam a suspensão do Emacs. Em outras circunstâncias, se você não +estiver saindo do sistema operacional, é melhor suspender o Emacs com +C-z ao invés de sair do Emacs. + +Existem diversos comando C-x. Aqui esta uma lista dos que você aprendeu: + + C-x C-f Encontrar arquivo. + C-x C-s Salvar arquivo. + C-x C-b Listar buffers. + C-x C-c Sair do Emacs. + C-x 1 Deletar todas menos a janela atual. + C-x u Desfazer. + +O extensor de nome de comando é usado menos ainda, ou comandos que são +usados apenas em alguns modos. Um exemplo é o comando replace-string, +que globalmente troca uma string por outra. Quando você digita M-x, o +Emacs te pergunta no rodapé da tela M-x e você deve digitar o nome do +comando; nesse caso, "replace-string". Apenas digite "repl s" e o +Emacs ira completar o nome. ( é a tecla Tab, usualmente encontrando +abaixo do CapsLock ou Shift bem na extremidade do teclado.). Termine o +comando com . + +O comando replace-string requer dois argumentos - a string para ser +trocada, e a string que ira substitui-la. Você precisa terminar cada +argumento com . + +>> Mova o cursor para a linha branca duas linhas abaixo dessa. + Digite então M-x repl smudoualterado. + + Note como essa linha mudou: você substituiu a palavra m-u-d-o-u por + "alterado" quando ocorreu, apos a posição inicial do cursor. + + +* SALVAMENTO AUTOMÁTICO +----------------------- + +Quando você fizer mudanças em um arquivo, mas você ainda não tiver +salvo, elas podem ser perdidas se o seu computador der pau. Para +proteger você disso, o Emacs periodicamente escreve um arquivo "auto +salvo" para cada arquivo que você estiver editando. O nome do arquivo +auto salvo tem um # no inicio e no fim; por exemplo, se o seu arquivo +tiver o nome "ola.c", o nome do arquivo auto salvo dele será +"#ola.c#". Quando você salvar o arquivo da maneira normal, o Emacs +deleta os arquivos auto salvos. + +Se o computador der pau, você pode recuperar suas modificações auto +salvas abrindo o arquivo normalmente (o arquivo que você estava +editando, não o arquivo auto-salvo) e então digitar M-x recover +file. Quando isso perguntar por confirmação, digite yes +para ir em frente e recuperar os dados auto salvos. + + +* ÁREA DE SAÍDA (ECHO AREA) +--------------------------- + +Se o Emacs ver que você esta digitando comandos multi-caractere +lentamente, ele os mostrara para você no fim da tela numa área chamada +Área de Saída ou Echo Área. A área de saída contem a linha de rodapé da +tela. + + +* MODE LINE +----------- + +A linha imediatamente acima da área de saída é chamada de "mode line". O +mode line diz algo algo mais ou menos assim: + +--:** TUTORIAL.pt_BR (Fundamental)--L670--58%---------------- + +Essa linha da informações úteis sobre o status do Emacs e o texto que +você esta editando. + +Você já sabe o que o nome do arquivo significa -- é o arquivo que você +encontrou. -NN%-- indica sua posição no arquivo texto; significa que NN +percento do texto esta acima do topo da tela. Se o topo do arquivo +estiver na tela, ele dirá --Top-- ao invés de --00%--. Se o rodapé do +texto estiver na tela, ele mostrara --Bot--. Se você estiver olhando um +texto muito pequeno que cabe na todo na tela, o mode line ira dizer +--All--. + +O L são dígitos e indicam a posição de uma outra maneira: eles mostram a +linha corrente do ponto. + +Os asteriscos próximo ao inicio significa que você fez mudanças ao +texto. Logo após você visitar um arquivo ou salvar um arquivo, essa +parte do mode line não mostrara asteriscos, apenas traços. + +A parte do mode line dentro do parênteses lhe diz quais modos você esta +utilizando. O modo padrão é o Fundamental que é o que você esta +utilizando agora. É um exemplo de um "modo majoritário". + +O Emacs tem diversos diferentes modos majoritários. Alguns deles são +para edição de diferentes linguagens de programação e/ou tipos de texto, +como modo Lisp, modo Texto, etc. Em qualquer momento um é apenas um modo +majoritário e ativo, e seu nome pode ser encontrado no mode line +exatamente onde o "Fundamental" esta agora. + +Cada modo majoritário faz com que alguns comandos operem de modo +diferente. Por exemplo, existem comandos para criar comentários nos +programas, e desde que cada linguagem de programação tem uma idéia +diferente de como um comentário deve ser, cada modo majoritário tem que +inserir seus comentários individualmente. Cada modo majoritário é o nome +de um comando estendido, e é assim que você pode mudar para determinado +modo. Por exemplo, M-x fundamental-mode é o comando para trocar para o +modo Fundamental. + +Se você vai editar texto em Português, como neste arquivo, você pode +utilizar o modo Texto. + +>> Digite M-x text mode. + +Não se preocupe, nenhum dos comandos do Emacs que você aprendeu +mudarão. Mas você pode observar que o M-f e o M-b tratam os apóstrofos +como parte das palavras. Anteriormente, no modo Fundamental, M-f e M-b +trataram os apóstrofos como separadores de palavras. + +Modos majoritários fazem usualmente modificações como esta: a maioria +dos comandos fazem "a mesma coisa" em cada modo majoritário, mas eles +trabalham um pouquinho diferente. + +Para ver a documentação do seu modo majoritário, digite C-h m. + +>> Utilize C-u C-v uma ou mais para trazer essa linha próxima ao topo da + tela. +>> Digite C-h m, para ver como o modo texto difere do modo Fundamental. +>> Digite C-x 1 para remover a documentação da tela. + +Modos majoritários são chamados de majoritários porque também existem +modos minoritários. Modos minoritários não são alternativos aos modos +majoritários, apenas uma modificação minoritária deles. Cada modo +minoritário pode ser ligado ou desligado por ele mesmo, independente de +todos os outros modos minoritários, é independente do modo +majoritário. Então você pode não utilizar modos minoritários, ou um modo +minoritário, ou qualquer combinação de modos minoritários. + +Um modo minoritário que é bastante útil, especialmente para editar texto +em Português, é o modo Auto Fill. Quando ele esta ligado, o Emacs quebra +a linha entre as palavras automaticamente quando você inserir um texto e +criar uma linha muito comprida. + +Você pode ligar o modo Auto Fill fazendo M-x auto fill +mode. Quando o modo estiver ligado, você pode desliga-lo +novamente fazendo M-x auto fill mode. Se o modo estiver +desligado, esse comando o liga, e se ele estiver ligado, este comando o +desligara. Nos dizemos que o comando inverte seu status. + +>> Digite M-x auto fill mode agora. Então insira uma linha de + "asdf " diversas vezes ate que você veja dividir em duas linhas. Você + precisa colocar espaços entre as palavras porque o modo Auto Fill + quebra apenas nos espaços. + +A margem é usualmente definida com 70 caracteres, mas você pode +modifica-la com o comando C-x f. Você deve dar a margem que você quer +como um argumento numérico. + +>> Digite C-x f com um argumento de 20. (C-u 20 C-x f). + Então digite algum texto e veja o Emacs encher linhas com ate 20 + caracteres. Então, volte a definir a margem para 70 utilizando C-x f. + +Se você fizer uma mudança no meio de um parágrafo, o modo Auto Fill não +ira re-preencher para você. Para re-preencher o parágrafo, digite M-q +(Meta-q) com o cursor dentro do parágrafo. + +>> Mova o cursor dentro do parágrafo anterior e digite M-q. + + +* PESQUISANDO +------------- + +O Emacs pode fazer pesquisas por strings (esses sao grupos de caracteres +ligados ou palavras) tanto para frente do texto ou para traz. Pesquisar +por uma string e um comando de movimento do cursor; ele move o cursor +para o próximo lugar onde a string aparece. + +O comando de pesquisa do Emacs é diferente dos comandos de pesquisa da +maioria dos editores, porque é uma pesquisa "incremental". Isso +significa que a pesquisa acontece enquanto você digita uma string para +pesquisar. + +O comando para iniciar a pesquisa é C-s para pesquisa para frente ou C-r +para pesquisa inversa. MAS ESPERE! Não tente fazer agora. + +Quando você digitar C-s você percebera que uma string "I-search" +aparecera como prompt na área de saída. Isso diz para você que o Emacs +esta no que chamamos de pesquisa incremental esperando que você digite o +que você quer procurar. termina a pesquisa. + +>> Agora digite C-s para iniciar a pesquisa. DEVAGAR, uma letra por vez, + digite o caractere 'cursor', pausando cada vez que você digitar um + caractere, perceba o que acontece com o cursor. Agora que você + pesquisou por "cursor", uma vez. +>> Digite C-s novamente, para pesquisa a próxima ocorrência de "cursor". +>> Agora digite quatro vezes e veja como o cursor move. +>> Digite para terminar a pesquisa. + +Você viu o que aconteceu? O Emacs, em uma pesquisa incremental, tenta ir +para a ocorrência que você digitou ate o momento. Para ir para próxima +ocorrência de 'cursor' apenas digite C-s novamente. Se nenhuma +ocorrência existir, o Emacs bipa e te diz que a pesquisa atual +falhou. C-g também termina a pesquisa. + +NOTA: Em alguns sistemas, digitar C-s ira travar a tela e você não verá +saída do Emacs. Isso indica que um "recurso" do sistema operacional +chamado "controle de fluxo" (flow control) esta interceptando o C-s e +não deixando que passe pelo Emacs. Para destravar a tela, digite +C-q. Então, leia na seção "Spontaneous Entry to Incremental Search" no +manual do Emacs para uma dica de como lhe dar com esse "recurso". + +Se você estiver no meio de uma pesquisa incremental e digitar , +você percebera que o ultimo caractere da pesquisa será apagado e a +pesquisa voltara para o ultimo lugar da pesquisa. Por exemplo, imagine +que você tenha digitado "c", para pesquisar a primeira ocorrência de +"c". Agora se você digitar "u", o cursor ira mover para a primeira +ocorrência de "cu". Agora digite . Isso ira apagar o "u" da +string de pesquisa, e o cursor movera de volta para a primeira +ocorrência de "c". + +Se você estiver no meio de uma pesquisa e digitar um caractere control +ou meta (com algumas exceções--caracteres que são especiais em uma +pesquisa, como C-s e C-r), a pesquisa é terminada. + +O C-s inicia uma pesquisa que procura por qualquer ocorrência da string +de pesquisa APÓS a posição corrente do cursor. Se você quiser pesquisar +por alguma coisa anterior no texto, digite C-r ao invés. Tudo que nos +dissemos sobre C-s também implica para C-r, tirando a direção da +pesquisa que é reversa. + + +* MÚLTIPLAS JANELAS +------------------- + +Um dos recursos mais interessantes do Emacs é que você pode mostrar mais +de uma janela na tela ao mesmo tempo. + +>> Mova o cursor para essa linha e digite C-u 0 C-l (isso é control-L, + não control-1). + +>> Agora digite C-x 2 que vai dividir a tela em duas janelas. + As duas janelas vão mostrar esse tutorial. O cursor fica na janela + do topo. + +>> Digite C-M-v para rolar para o fim da janela. + (Se você não tiver uma tecla Meta de verdade, digite ESC C-v.). + +>> Digite C-x o ("o" para "outra") para mover o cursor para o rodapé + da janela. +>> Use C-v e M-v no rodapé da janela para roda-la. + Continue lendo essas direções na janela do topo. + +>> Digite C-x o novamente para mover o cursor de volta para a janela + do topo. + O cursor na janela do topo esta exatamente como estava antes. + +Você pode continuar usando C-x o para alternar entre as janelas. Cada +janela tem sua própria posição de cursor, mas apenas uma janela mostra o +cursor. Todos os comandos mais comuns de edição aplicam para a janela +que o cursor esta. Chamamos isso de "janela selecionada". + +O comando C-M-v é muito útil para quando você estiver editando o texto +em uma janela e utilizando a outra janela para referencia. Você pode +manter o cursor sempre na janela que você estiver editando, e avançar +pela outra janela seqüencialmente utilizando C-M-v. + +C-M-v é um exemplo de um caractere CONTROL-META. Se você tiver uma tecla +META real, você pode digitar C-M-v segurando ambos CONTROL e META +enquanto digitar v. Não importa se CONTROL ou META "vem primeiro," +porque ambas as teclas agem modificando o caractere que você digita. + +Se você não tiver um tecla META real, você pode utilizar ESC ao invés, a +ordem não importa: você precisa digitar ESC seguido por Control-v, +porque Control-ESC v não ira funcionar. Isso porque ESC é um caractere +com seu próprio direito, não é uma tecla de modificação. + +>> Digite C-x 1 (na janela do topo) para fugir da janela do rodapé. + +(Se você tivesse digitado C-x 1 na janela do rodapé, você fugiria da +janela do topo. Pense neste comando como "Mantenha apenas uma janela--a +janela que estou dentro.") + +Você não precisa mostrar o mesmo buffer nas duas janelas. Se você +utilizar C-x C-f para encontrar um arquivo em outra janela, a outra +janela não mudara. Você pode encontrar um arquivo em cada janela +independentemente. + +Aqui esta uma maneira de utilizar duas janelas para mostrar coisas +diferentes: + +>> Digite C-x 4 C-f seguido pelo nome de um dos seus arquivos. + Termine com . Veja o arquivo especificado aparece na janela + do rodapé. O cursor ira para lá, também. + +>> Digite C-x o para voltar a janela do topo, e C-x1 para deletar a + janela de rodapé. + + +* NÍVEIS RECURSIVOS DE EDIÇÃO +----------------------------- + +Algumas vezes você entrara no que chamamos de "nível de edição +recursiva". Isso é indicado por colchetes no mode line, envolvendo os +parênteses em volta do nome do modo majoritário. Por exemplo, você pode +ver [(Fundamental)] ao invés de (Fundamental). + +Para sair desses níveis recorríveis de edição, digite ESC ESC ESC. Isso +e um comando de todos os propósitos "saia". Você pode também utilizar +para eliminar janelas extras, e sair de um minibuffer. + +>> Digite M-x para entrar no minibuffer; então digite ESC ESC ESC para + sair. + +Você não pode utilizar C-g para sair de um nível de edição +recursiva. Isso porque o C-g é utilizado para cancelar comandos e +argumentos COM o nível de edição recursiva. + + +* CONSEGUINDO MAIS AJUDA +------------------------ + +Neste tutorial nos tentamos suprimir informações suficientes para que +você comece a utilizar o Emacs. Existe tanto disponível sobre Emacs que +seria impossível explicar tudo aqui. De qualquer maneira, você pode +querer aprender mais sobre Emacs mesmo porque ele tem muitos outros +recursos úteis. O Emacs proporciona comandos para leitura de +documentação sobre comandos do Emacs. Esses comandos de "ajuda" iniciam +com o caractere Control-h, que é chamado de "o caractere de ajuda". + +Para utilizar os recursos de ajuda, digite o caractere C-h, e então um +caractere dizendo que tipo de ajuda você quer. Se você REALMENTE estiver +perdido, digite C-h ? e o Emacs ira te dizer que tipo de ajuda ele pode +te dar. Se você digitar C-h e decidir que você não quer nenhuma ajuda, +apenas digite C-g para cancelar. + +(Alguns sistemas mudam o significado do caractere C-h. Eles não deveriam +fazer isso para todos os usuários, então você tem muito a reclamar com o +administrador do sistema. Enquanto isso, se C-h não mostrar a mensagem +sobre ajuda no rodapé da tela, tente digitar a tecla F1 ou M-x help + ao invés.) + +O recurso de ajuda mais básico é o C-h c. Digite C-h, e o caractere c, é +um comando de caractere ou seqüência; então o Emacs mostrara uma breve +descrição do comando. + +>> Digite C-h c C-p + A mensagem deve ser algo assim + + C-p roda o comando linha-anterior + +Isso diz a você "o nome da função". Nome de funções são utilizados +basicamente para personalizar o estender o Emacs. Mas desde que nomes de +funções são utilizados para indicar que o que o comando faz, eles podem +servir também como uma breve documentação--suficiente para lembrar você +os comandos que você já aprendeu. + +Comandos multi-caractere como C-x C-s e (se você não tiver a tecla META +ou EDIT ou ALT) v é também permitido depois de C-h c. + +Para ter mais informação sobre um comando, utilize C-h k ao invés de C-h +c. + +>> Digite C-h k C-p. + +Isso mostra a documentação da função, assim como seu nome, em uma janela +do Emacs. Quando você terminar de ler a saída, digite C-x 1 para sair da +saída do texto de ajuda. Você não precisa fazer isso imediatamente +apos. Você pode fazer alguma edição enquanto utilizando como referencia +o texto de ajuda, e então digite C-x 1. + +Aqui estão algumas outras opções úteis do comando C-h: + + C-h f Descreve a função. Digite o nome da função. + +>> Tente digitar C-h f previous-line + Isso ira imprimir toda informação que o Emacs tem sobre a função que + implementa o comando C-p. + + C-h a Comando Apropos. Digite uma palavra chave e o Emacs ira + listar todos os comandos que o nome contem essa + palavra. Esses comandos podem ser chamados com + Meta-x. Para alguns comandos, o comando Apropos ira + também listar um ou dois caracteres de seqüência que + roda o mesmo comando. + +>> Digite C-h a file. + +Isso mostra em uma outra janela a lista de todos os comandos M-x com +"arquivo" em seus nomes. Você Vera comandos-caractere como C-x C-f +listados ao lado do comando correspondente assim como o find-file. + +>> Digite C-M-v para rolar a janela de ajuda. Faca isso algumas vezes. + +>> Digite C-x 1 para deletar a janela de ajuda. + + +* CONCLUSÃO +----------- + +Lembre, para sair permanentemente do Emacs utilize C-x C-c. Para sair +para um shell temporariamente, para que você possa voltar ao Emacs mais +tarde, utilize C-z. + +Esse tutorial foi feito para ser entendível para todos os novos +usuários, então se você encontrou algo que parece não estar claro, não +sente e se culpe - reclame! + + +* CÓPIA +------- + +Esse tutorial descende de uma longa linha de tutoriais do Emacs +iniciando com um escrito por Stuart Cracraft para o Emacs original. + +Essa versão do tutorial foi originalmente traduzida por Marcelo Toledo + e como o GNU Emacs, tem um copyright, e vem +com uma permissão de distribuição de cópias nas seguintes condições: + +Copyright (C) 2004, 2005 Free Software Foundation, Inc. + + Permissão é garantida a qualquer um para fazer ou distribuir copias + integrais deste documento como recebido, em qualquer meio, deixando + disponível e preservados o aviso de copyright e o aviso de permissão, + e o distribuidor garante que a permissão para distribuições + posteriores permitam o mesmo que esta nota. + + Permissão garantida para distribuir versões modificadas deste + documento, ou partes dele, sobre as condições acima, sempre que elas + tenham uma nota visível de quem foi o ultimo a alterar-lo. + +As condições para copiar o Emacs especificamente são mais complexas, mas +no mesmo espírito. Por favor, leia o arquivo COPYING e dê copias do GNU +Emacs para seus amigos. Ajude a erradicar o obstrucionismo de software +("proprietário") usando, escrevendo, e compartilhando software livre! + +;;; Local Variables: +;;; coding: latin-1 +;;; sentence-end-double-space: nil +;;; End: + +;;; arch-tag: 8ea256d6-2c4a-49ee-ac08-0ea6ef25bf8d diff --git a/etc/TUTORIAL.ro b/etc/TUTORIAL.ro index 2bf71cebfbb..85e8e30892f 100644 --- a/etc/TUTORIAL.ro +++ b/etc/TUTORIAL.ro @@ -1,9 +1,7 @@ -Copyright (c) 1998 Free Software Foundation -*-coding: latin-2;-*- -Traducere din englezã de Tudor Hulubei . +Tutorialului de Emacs. A se citi sfârºitul pentru condiþii. +Traducere din englezã de Tudor Hulubei . Mulþumiri Aidei Hulubei pentru corecturi ºi sugestii. -A se citi sfârºitul pentru condiþii. - Aceastã versiune a fost produsã plecând de la versiunea în limba englezã, care este Copyright (c) 1985 Free Software Foundation, Inc. @@ -1093,7 +1091,7 @@ continuare no This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -1110,3 +1108,9 @@ Condi spirit. Citiþi fiºierul COPYING ºi apoi distribuiþi prietenilor copii ale Emacs-ului. Contribuiþi la eliminarea obstrucþionismului software folosind, scriind ºi distribuind free software! + +;;; Local Variables: +;;; coding: iso-latin-2 +;;; End: + +;;; arch-tag: dcf252cf-bd67-4f8d-a440-1ec4b8dbfd70 diff --git a/etc/TUTORIAL.ru b/etc/TUTORIAL.ru index 0076728c246..cd84911db2d 100644 --- a/etc/TUTORIAL.ru +++ b/etc/TUTORIAL.ru @@ -1,66 +1,68 @@ -;; -*- coding: cyrillic-koi8; -*- -Copyright (c) 1985, 1996 Free Software Foundation, Inc. See end for conditions. +õÞÅÂÎÉË Emacs. õÓÌÏ×ÉÑ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÐÒÉ×ÅÄÅÎÙ × ËÏÎÃÅ ÆÁÊÌÁ -÷Ù ÞÉÔÁÅÔÅ ÕÞÅÂÎÉË Emacs. +äÌÑ ÕÐÒÁ×ÌÅÎÉÑ Emacs ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ ËÌÀÞ (key -- ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ +ËÌÁ×ÉÁÔÕÒÙ É/ÉÌÉ ËÎÏÐÏË ÍÙÛÉ), ×ËÌÀÞÁÀÝÉÊ × ÓÅÂÑ ËÌÁ×ÉÛÕ CONTROL (ÉÎÏÇÄÁ +ÏÔÍÅÞÁÅÍÁÑ ËÁË CTRL ÉÌÉ CTL) ÉÌÉ ËÌÁ×ÉÛÕ META (ÉÎÏÇÄÁ ÐÏÍÅÞÅÎÎÕÀ ËÁË ALT ÉÌÉ +EDIT). ÷ ÄÁÌØÎÅÊÛÅÍ, ×ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏÂÙ ËÁÖÄÙÊ ÒÁÚ ÐÉÓÁÔØ META ÉÌÉ CONTROL, +ÍÙ ÂÕÄÅÍ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÌÅÄÕÀÝÉÅ ÓÏËÒÁÝÅÎÉÑ: -äÌÑ ÕÐÒÁ×ÌÅÎÉÑ Emacs ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ ËÌÀÞ (ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ ËÌÁ×ÉÁÔÕÒÙ -É/ÉÌÉ ËÎÏÐÏË ÍÙÛÉ), ×ËÌÀÞÁÀÝÉÊ × ÓÅÂÑ ËÌÁ×ÉÛÕ CONTROL (ÉÎÏÇÄÁ ÏÔÍÅÞÁÅÍÁÑ ËÁË -CTRL ÉÌÉ CTL) ÉÌÉ ËÌÁ×ÉÛÕ META (ÉÎÏÇÄÁ ÐÏÍÅÞÅÎÎÕÀ ËÁË ALT ÉÌÉ EDIT). ÷ -ÄÁÌØÎÅÊÛÅÍ ×ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏÂÙ ËÁÖÄÙÊ ÒÁÚ ÐÉÓÁÔØ META ÉÌÉ CONTROL ÍÙ ÂÕÄÅÍ -ÉÓÐÏÌØÚÏ×ÁÔØ ÓÌÅÄÕÀÝÅÅ ÓÏËÒÁÝÅÎÉÅ: + C- -- ÓÌÅÄÕÅÔ ÕÄÅÒÖÉ×ÁÔØ ËÌÁ×ÉÛÕ CONTROL, ÐÏËÁ ÎÁÂÉÒÁÅÔÓÑ ÓÉÍ×ÏÌ + . ôÁË, C-f ÄÏÌÖÎÏ ÏÚÎÁÞÁÔØ: ÎÁÖÁÔØ ËÌÁ×ÉÛÕ CONTROL É f. + M- -- ÓÌÅÄÕÅÔ ÕÄÅÒÖÉ×ÁÔØ ËÌÁ×ÉÛÕ META, ÐÏËÁ ÎÁÂÉÒÁÅÔÓÑ ÓÉÍ×ÏÌ + . åÓÌÉ ÎÅÔ ËÌÁ×ÉÛÉ META, ALT ÉÌÉ EDIT, ÔÏ ÎÁÖÍÉÔÅ , + ÏÔÐÕÓÔÉÔÅ ÅÅ, Á ÐÏÔÏÍ ÎÁÂÅÒÉÔÅ ÓÉÍ×ÏÌ . - C- ÓÌÅÄÕÅÔ ÕÄÅÒÖÉ×ÁÔØ ËÌÁ×ÉÛÕ CONTROL ÐÏËÁ ÎÁÂÉÒÁÅÔÓÑ ÓÉÍ×ÏÌ - ôÁË, C-f ÄÏÌÖÎÏ ÏÚÎÁÞÁÔØ: ÎÁÖÁÔØ ËÌÁ×ÉÛÕ CONTROL É f. - M- ÓÌÅÄÕÅÔ ÕÄÅÒÖÉ×ÁÔØ ËÌÁ×ÉÛÕ META ÐÏËÁ ÎÁÂÉÒÁÅÔÓÑ ÓÉÍ×ÏÌ . åÓÌÉ - ÎÅÔ ËÌÁ×ÉÛÉ META, ALT ÉÌÉ EDIT, ÔÏ ÎÁÖÍÉÔÅ , ÏÔÐÕÓÔÉÔÅ ÅÅ, - Á ÐÏÔÏÍ ÎÁÂÅÒÉÔÅ ÓÉÍ×ÏÌ . - -÷ÁÖÎÏÅ ÚÁÍÅÞÁÎÉÅ: ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ ÓÅÁÎÓÁ Emacs, ÎÁÂÅÒÉÔÅ C-x C-c. (ä×Á +÷ÁÖÎÏÅ ÚÁÍÅÞÁÎÉÅ: ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ ÓÅÁÎÓÁ Emacs, ÎÁÂÅÒÉÔÅ C-x C-c (Ä×Á ÓÉÍ×ÏÌÁ). óÉÍ×ÏÌÙ ">>" Ó ÌÅ×ÏÊ ÓÔÏÒÏÎÙ ÕËÁÚÙ×ÁÀÔ, ÞÔÏ ×ÁÍ ÎÕÖÎÏ ÄÅÌÁÔØ, -ÞÔÏÂÙ ÐÒÉÍÅÎÉÔØ ËÏÍÁÎÄÕ. îÁÐÒÉÍÅÒ: -<<óÅÒÅÄÉÎÁ ÓÔÒÁÎÉÃÙ ÏÓÔÁ×ÌÅÎÁ ÐÕÓÔÏÊ ÄÌÑ ÕÞÅÂÎÙÈ ÃÅÌÅÊ. ôÅËÓÔ ÐÒÄÏÌÖÁÅÔÓÑ ÎÉÖÅ>> ->> ôÅÐÅÒØ ÎÁÖÍÉÔÅ C-v (ðÒÏÓÍÏÔÒ ÓÌÅÄÕÀÝÅÇÏ ÜËÒÁÎÁ) ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ÎÁ - ÓÌÅÄÕÀÝÉÊ ÜËÒÁÎ. (÷ÙÐÏÌÎÉÔÅ ÜÔÏ, ÕÄÅÒÖÉ×ÁÑ ËÌÁ×ÉÛÕ CONTROL ÎÁÖÉÍÁÑ v). - ôÅÐÅÒØ ×Ù ÄÏÌÖÎÙ ÜÔÏ ÓÄÅÌÁÔØ ÅÝÅ ÒÁÚ, ËÏÇÄÁ ÚÁËÏÎÞÉÔÅ ÞÉÔÁÔØ ÜËÒÁÎ. - -ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ ÎÁ ÔÏ, ÞÔÏ, ÐÏËÁ ×Ù Ä×ÉÖÅÔÅÓØ Ó ÜËÒÁÎÁ ÎÁ ÜËÒÁÎ, -ÐÅÒÅËÒÙ×ÁÀÔÓÑ Ä×Å ÓÔÒÏÞËÉ; ÜÔÏ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÎÅËÏÔÏÒÕÀ ÎÅÐÒÅÒÙ×ÎÏÓÔØ, ÔÁË ÞÔÏ -×Ù ÍÏÖÅÔÅ ÐÒÏÄÏÌÖÉÔØ ÞÉÔÁÔØ ÔÅËÓÔ. - -ðÅÒ×ÏÅ ÞÔÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÚÎÁÔØ -- ËÁË ÐÅÒÅÄ×ÉÇÁÔØÓÑ ÐÏ ÔÅËÓÔÕ ÉÚ ÏÄÎÏÇÏ -ÍÅÓÔÁ × ÄÒÕÇÏÅ. ÷Ù ÕÖÅ ÚÎÁÅÔÅ, ËÁË ÐÅÒÅÍÅÓÔÉÔØÓÑ ×ÐÅÒÅÄ ÏÄÉÎ ÜËÒÁÎ, -ÉÓÐÏÌØÚÕÑ ËÌÀÞ C-v. äÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ÎÁÚÁÄ ÎÁ ÏÄÉÎ ÜËÒÁÎ, ÎÁÖÍÉÔÅ M-v -(ÕÄÅÒÖÉ×ÁÊÔÅ ËÌÁ×ÉÛÕ META É ÎÁÂÅÒÉÔÅ v, ÉÌÉ ÎÁÖÍÉÔÅ v ÅÓÌÉ Õ ×ÁÓ ÎÅÔ -ËÌÁ×ÉÛÅ META, EDIT, ÉÌÉ ALT). - ->> ÐÏÐÒÏÂÕÊÔÅ ÎÁÂÒÁÔØ M-v É ÐÏÔÏÍ C-v, ÎÅÓËÏÌØËÏ ÒÁÚ. - - -* ëòáôëáñ ó÷ïäëá ---------- +ÞÔÏÂÙ ÐÒÉÍÅÎÉÔØ ËÏÍÁÎÄÕ. îÁÐÒÉÍÅÒ: +<<ðÕÓÔÙÅ ÓÔÒÏËÉ ×ÏËÒÕÇ ×ÓÔÁ×ÌÅÎÙ ËÏÍÁÎÄÏÊ help-with-tutorial>> +[óÅÒÅÄÉÎÁ ÓÔÒÁÎÉÃÙ ÏÓÔÁ×ÌÅÎÁ ÐÕÓÔÏÊ × ÕÞÅÂÎÙÈ ÃÅÌÑÈ. ôÅËÓÔ ÐÒÏÄÏÌÖÁÅÔÓÑ ÎÉÖÅ] +>> ôÅÐÅÒØ ÎÁÖÍÉÔÅ C-v (ÐÒÏÓÍÏÔÒ ÓÌÅÄÕÀÝÅÇÏ ÜËÒÁÎÁ) ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ÎÁ + ÓÌÅÄÕÀÝÉÊ ÜËÒÁÎ. (×ÙÐÏÌÎÉÔÅ ÜÔÕ ËÏÍÁÎÄÕ ÕÄÅÒÖÉ×ÁÑ ËÌÁ×ÉÛÕ CONTROL É + ÎÁÖÉÍÁÑ v). ôÅÐÅÒØ ×Ù ÄÏÌÖÎÙ ÜÔÏ ÓÄÅÌÁÔØ ÅÝÅ ÒÁÚ, ËÏÇÄÁ ÚÁËÏÎÞÉÔÅ ÞÉÔÁÔØ + ÜËÒÁÎ. + +ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ ÎÁ ÔÏ, ÞÔÏ, ÐÒÉ ÐÅÒÅÈÏÄÅ Ó ÜËÒÁÎÁ ÎÁ ÜËÒÁÎ ÐÅÒÅËÒÙ×ÁÀÔÓÑ +Ä×Å ÓÔÒÏÞËÉ -- ÜÔÏ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÎÅËÏÔÏÒÕÀ ÎÅÐÒÅÒÙ×ÎÏÓÔØ ×ÏÓÐÒÉÑÔÉÑ, ÔÁË ÞÔÏ +×Ù ÍÏÖÅÔÅ ÐÒÏÄÏÌÖÁÔØ ÞÉÔÁÔØ ÔÅËÓÔ ÎÅ ÔÅÒÑÑ ÎÉÔÉ ÐÏ×ÅÓÔ×Ï×ÁÎÉÑ. + +ðÅÒ×ÏÅ, ÞÔÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÚÎÁÔØ -- ÜÔÏ ÔÏ, ËÁË ÐÅÒÅÄ×ÉÇÁÔØÓÑ ÐÏ ÔÅËÓÔÕ ÉÚ +ÏÄÎÏÇÏ ÍÅÓÔÁ × ÄÒÕÇÏÅ. ÷Ù ÕÖÅ ÚÎÁÅÔÅ, ËÁË ÐÅÒÅÍÅÓÔÉÔØÓÑ ×ÐÅÒÅÄ ÎÁ ÏÄÉÎ +ÜËÒÁÎ, ÉÓÐÏÌØÚÕÑ ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ C-v. äÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ÎÁÚÁÄ ÎÁ ÏÄÉÎ ÜËÒÁÎ, +ÎÁÖÍÉÔÅ M-v (ÕÄÅÒÖÉ×ÁÊÔÅ ËÌÁ×ÉÛÕ META É ÎÁÂÅÒÉÔÅ v, ÉÌÉ ÎÁÖÍÉÔÅ É +ÚÁÔÅÍ v, Á ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ËÌÁ×ÉÛÉ META, EDIT ÉÌÉ ALT). + +>> ÐÏÐÒÏÂÕÊÔÅ ÎÁÂÒÁÔØ M-v, Á ÚÁÔÅÍ C-v, ÎÅÓËÏÌØËÏ ÒÁÚ. + +* ëòáôëéê ðåòåþåîø ëïíáîä +------------------------- äÌÑ ÐÒÏÓÍÏÔÒÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ: C-v ðÅÒÅÊÔÉ ÎÁ ÏÄÉÎ ÜËÒÁÎ ×ÐÅÒÅÄ M-v ðÅÒÅÊÔÉ ÎÁ ÏÄÉÎ ÜËÒÁÎ ÎÁÚÁÄ - C-l ïÞÉÓÔÉÔØ ÜËÒÁÎ É ÏÔÏÂÒÁÚÉÔØ ×ÓÅ ÚÁÎÏ×Ï, ÒÁÚÍÅÓÔÉ× - ÔÅËÓÔ, ÎÁÈÏÄÑÝÉÊÓÑ ×ÏÚÌÅ ËÕÒÓÏÒÁ, × ÃÅÎÔÒÅ ÜËÒÁÎÁ. - (üÔÏ CONTROL-L, Á ÎÅ CONTROL-1.) + C-l ïÞÉÓÔÉÔØ ÜËÒÁÎ É ÏÔÏÂÒÁÚÉÔØ ×ÓÅ ÚÁÎÏ×Ï, ÒÁÚÍÅÓÔÉ× ÔÅËÓÔ, ÎÁÈÏÄÑÝÉÊÓÑ + ×ÏÚÌÅ ËÕÒÓÏÒÁ, × ÃÅÎÔÒÅ ÜËÒÁÎÁ. (ÜÔÏ CONTROL-L, Á ÎÅ CONTROL-1.) ->> îÁÊÄÉÔÅ ËÕÒÓÏÒ, É ÚÁÐÏÍÎÉÔÅ ÔÅËÓÔ ×ÏÚÌÅ ÎÅÇÏ. ðÏÔÏÍ ÎÁÖÍÉÔÅ C-l. +>> îÁÊÄÉÔÅ ËÕÒÓÏÒ, É ÚÁÐÏÍÎÉÔÅ ÔÅËÓÔ ×ÏÚÌÅ ÎÅÇÏ. ðÏÔÏÍ ÎÁÖÍÉÔÅ C-l. îÁÊÄÉÔÅ ËÕÒÓÏÒ ÓÎÏ×Á É ÕÂÅÄÉÔÅÓØ, ÞÔÏ ×ÏÚÌÅ ÎÅÇÏ ×ÓÅ ÔÏÔ ÖÅ ÔÅËÓÔ. +÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ PageUp É PageDn ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ÍÅÖÄÕ +ÜËÒÁÎÁÍÉ (ÅÓÌÉ ÏÎÉ ÅÓÔØ ÎÁ ×ÁÛÅÍ ÔÅÒÍÉÎÁÌÅ), ÎÏ ×Ù ÓÍÏÖÅÔÅ ÒÁÂÏÔÁÔØ ÂÏÌÅÅ +ÜÆÆÅËÔÉ×ÎÏ, ÅÓÌÉ ÂÕÄÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÏÞÅÔÁÎÉÑ C-v É M-v. + * âáúï÷ùå ëïíáîäù õðòá÷ìåîéñ ëõòóïòïí ------------------------------ +------------------------------------- ä×ÉÖÅÎÉÅ ÏÔ ÜËÒÁÎÁ Ë ÜËÒÁÎÕ ÕÄÏÂÎÏ, ÎÏ ËÁË ÐÅÒÅÍÅÓÔÉÔØÓÑ × ÏÐÒÅÄÅÌÅÎÎÏÅ -ÍÅÓÔÏ ÔÅËÓÔÁ ÎÁ ÜËÒÁÎÅ? +ÍÅÓÔÏ × ÔÅËÓÔÅ ÎÁ ÜËÒÁÎÅ? -åÓÔØ ÎÁÓËÏÌØËÏ ÓÐÏÓÏÂÏ× ÓÄÅÌÁÔØ ÜÔÏ. ïÓÎÏ×ÎÏÊ ÓÐÏÓÏ -- ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÙ -C-p, C-b, C-f É C-n. ëÁÖÄÁÑ ÉÚ ÜÔÉÈ ËÏÍÁÎÄ ÐÅÒÅÄ×ÉÇÁÅÔ ËÕÒÓÏÒ ÎÁ ÏÄÎÕ -ÓÔÒÏËÕ ÉÌÉ ËÏÌÏÎËÕ ÎÁ ÜËÒÁÎÅ × ÏÐÒÅÄÅÌÅÎÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ. üÔÁ ÔÁÂÌÉÃÁ -ÐÏËÁÚÙ×ÁÅÔ ÞÅÔÙÒÅ ËÏÍÁÎÄÙ É ÞÅÔÙÒÅ ÎÁÐÒÁ×ÌÅÎÉÑ ÉÈ Ä×ÉÖÅÎÉÑ: +åÓÔØ ÎÅÓËÏÌØËÏ ÓÐÏÓÏÂÏ× ×ÙÐÏÌÎÅÎÉÑ ÜÔÏÊ ÏÐÅÒÁÃÉÉ. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ +ËÌÁ×ÉÛÉ ÕÐÒÁ×ÌÅÎÉÑ ËÕÒÓÏÒÏÍ (ÓÔÒÅÌËÉ), ÎÏ ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÙÍ ÂÕÄÅÔ ÓÏÈÒÁÎÅÎÉÅ +ÒÕË × ÉÈ ÓÔÁÎÄÁÒÔÎÏÊ ÐÏÚÉÃÉÉ É ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÙ C-p, C-b, C-f É C-n. üÔÉ +ËÏÍÁÎÄÙ ÜË×É×ÁÌÅÎÔÎÙ ÞÅÔÙÒÅÍ ËÌÁ×ÉÛÁÍ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ, ËÁË ÜÔÏ ÐÏËÁÚÁÎÏ +ÎÁ ÓÈÅÍÅ: ðÒÅÄÙÄÕÝÁÑ ÓÔÒÏËÁ, C-p : @@ -70,15 +72,16 @@ C-p, C-b, C-f : óÌÅÄÕÀÝÁÑ ÓÔÒÏËÁ, C-n ->> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÓÔÒÏËÕ ÒÑÄÏÍ Ó ÄÉÁÇÒÁÍÍÏÊ, ÉÓÐÏÌØÚÕÑ C-n ÉÌÉ C-p. - ðÏÔÏÍ, ÎÁÖÍÉÔÅ C-l É ÐÏÓÍÏÔÒÉÔÅ ËÁË ÄÉÁÇÒÁÍÍÁ ÒÁÚÍÅÓÔÉÔÓÑ × ÃÅÎÔÒÅ - ÜËÒÁÎÁ. +>> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÓÔÒÏËÕ ÒÑÄÏÍ Ó ÄÉÁÇÒÁÍÍÏÊ, ÉÓÐÏÌØÚÕÑ ÓÏÞÅÔÁÎÉÑ + ËÌÁ×ÉÛ C-n ÉÌÉ C-p. ðÏÔÏÍ, ÎÁÖÍÉÔÅ C-l É ÐÏÓÍÏÔÒÉÔÅ ËÁË ÄÉÁÇÒÁÍÍÁ + ÐÅÒÅÍÅÓÔÉÔÓÑ × ÃÅÎÔÒ ÜËÒÁÎÁ. -÷ÁÍ ÂÕÄÅÔ ÎÅÓÌÏÖÎÏ ÚÁÐÏÍÎÉÔØ ÜÔÉ ËÏÍÁÎÄÙ ÐÏ ÂÕË×ÁÍ -- B-ÎÁÚÁÄ (backward) É -F-×ÐÅÒÅÄ (forward). üÔÏ ÏÓÎÏ×ÎÙÅ ËÏÍÁÎÄÙ ÐÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÑ ËÕÒÓÏÒÁ, ËÏÔÏÒÙÍÉ -÷Ù ÂÕÄÅÔÅ ÐÏÌØÚÏ×ÁÔØÓÑ ÷óåçäá, ÔÁË ÞÔÏ ÂÕÄÅÔ ÎÅÐÌÏÈÏ ÉÈ ×ÙÕÞÉÔØ. +÷ÁÍ ÂÕÄÅÔ ÎÅÓÌÏÖÎÏ ÚÁÐÏÍÎÉÔØ ÜÔÉ ËÏÍÁÎÄÙ ÐÏ ÐÅÒ×ÙÍ ÂÕË×ÁÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ +ÓÌÏ× -- B-ÎÁÚÁÄ (backward) É F-×ÐÅÒÅÄ (forward). üÔÏ ÏÓÎÏ×ÎÙÅ ËÏÍÁÎÄÙ +ÐÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÑ ËÕÒÓÏÒÁ, ËÏÔÏÒÙÍÉ ÷Ù ÂÕÄÅÔÅ ÐÏÌØÚÏ×ÁÔØÓÑ ÷óåçäá, ÔÁË ÞÔÏ +ÂÕÄÅÔ ÎÅÐÌÏÈÏ ÉÈ ×ÙÕÞÉÔØ. ->> îÁÖÍÉÔÅ ÎÅÓËÏÌØËÏ ÒÁÚ C-n ÞÔÏ ÏÐÕÓÔÉÔØ ËÕÒÓÏÒ ×ÎÉÚ ÎÁ ÜÔÕ ÓÔÒÏËÕ. +>> îÁÖÍÉÔÅ ÎÅÓËÏÌØËÏ ÒÁÚ C-n, ÞÔÏÂÙ ÏÐÕÓÔÉÔØ ËÕÒÓÏÒ ×ÎÉÚ ÎÁ ÜÔÕ ÓÔÒÏËÕ. >> ðÅÒÅÍÅÓÔÉÔÅÓØ ÐÏ ÓÔÒÏËÅ, ÉÓÐÏÌØÚÕÑ C-f É ÐÏÔÏÍ ÐÏÄÎÉÍÉÔÅÓØ ××ÅÒÈ Ó ÐÏÍÏÝØÀ C-p. ðÏÓÍÏÔÒÉÔÅ, ËÁË ÉÚÍÅÎÉÌÏÓØ ÐÏÌÏÖÅÎÉÅ ËÕÒÓÏÒÁ ÐÒÉ ÎÁÖÁÔÉÉ @@ -95,9 +98,10 @@ character), C-f ÍÏÖÅÔ ÐÅÒÅÍÅÝÁÔØ ËÕÒÓÏÒ ÞÅÒÅÚ ÓÉÍ×ÏÌ ÐÅÒÅ×ÏÄÁ ÓÔÒÏËÉ ÔÁË ÖÅ, ËÁË É C-b. ->> ðÏÐÒÏÂÕÊÔÅ ÎÅÓËÏÌØËÏ ÒÁÚ ÐÒÉÍÅÎÉÔØ C-b, ÔÁË ÞÔÏÂÙ ÷Ù Õ×ÉÄÅÌÉ, ËÁË - Ä×ÉÖÅÔÓÑ ËÕÒÓÏÒ. äÁÌÅÅ ÉÓÐÏÌØÚÕÊÔÅ C-f ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÎÁ ËÏÎÅà - ÓÔÒÏËÉ. îÁÖÍÉÔÅ C-f ÅÝÅ ÒÁÚ, ÞÔÏÂÙ ÐÅÒÅÊÔÉ Ë ÎÁÞÁÌÕ ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÉ. +>> ðÏÐÒÏÂÕÊÔÅ ÎÅÓËÏÌØËÏ ÒÁÚ ÐÒÉÍÅÎÉÔØ C-b ÔÁË, ÞÔÏÂÙ ÷Ù Õ×ÉÄÅÌÉ, ËÁË + Ä×ÉÖÅÔÓÑ ËÕÒÓÏÒ. äÁÌÅÅ ÉÓÐÏÌØÚÕÊÔÅ ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ C-f ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ + ÎÁ ËÏÎÅà ÓÔÒÏËÉ. îÁÖÍÉÔÅ C-f ÅÝÅ ÒÁÚ, ÞÔÏÂÙ ÐÅÒÅÊÔÉ Ë ÎÁÞÁÌÕ ÓÌÅÄÕÀÝÅÊ + ÓÔÒÏËÉ. ëÏÇÄÁ ×Ù ÐÅÒÅÍÅÝÁÅÔÅÓØ ÚÁ ×ÅÒÈÎÉÊ ÉÌÉ ÎÉÖÎÉÊ ËÒÁÊ ÜËÒÁÎÁ, ÔÅËÓÔ, ÎÁÈÏÄÑÝÉÊÓÑ ÚÁ ÜËÒÁÎÏÍ, ÓÄ×ÉÇÁÅÔÓÑ ×ÎÕÔÒØ ÜËÒÁÎÁ. üÔÏ ÎÁÚÙ×ÁÅÔÓÑ "ÐÒÏËÒÕÔËÁ @@ -105,7 +109,7 @@ C-f ÔÅËÓÔÁ ÂÅÚ ÐÅÒÅÍÅÝÅÎÉÑ ÅÇÏ ÚÁ ÐÒÅÄÅÌÙ ÜËÒÁÎÁ. >> ðÏÐÒÏÂÕÊÔÅ ÐÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ ÚÁ ÎÉÖÎÀÀ ÇÒÁÎÉÃÕ ÜËÒÁÎÁ, ÉÓÐÏÌØÚÕÑ C-n, É - ÐÏÓÍÏÔÒÉÔÅ, ÞÔÏ ÉÚÍÅÎÉÔÓÑ. + ÐÏÓÍÏÔÒÉÔÅ, ÞÔÏ ÐÒÏÉÚÏÊÄÅÔ. åÓÌÉ ÐÏÓÉÍ×ÏÌØÎÏÅ ÐÅÒÅÍÅÝÅÎÉÅ ÓÌÉÛËÏÍ ÍÅÄÌÅÎÎÏ, ÷Ù ÍÏÖÅÔÅ Ä×ÉÇÁÔØÓÑ ÐÏ ÓÌÏ×ÁÍ. M-f (META-f) ÐÅÒÅÍÅÝÁÅÔ ×ÐÅÒÅÄ ÎÁ ÓÌÏ×Ï, Á M-b ÎÁÚÁÄ ÎÁ ÓÌÏ×Ï. @@ -130,17 +134,18 @@ Control- ÐÅÒÅÍÅÝÁÅÔ ËÕÒÓÏÒ × ÎÁÞÁÌÏ É ËÏÎÅà ÓÔÒÏËÉ, Á M-a É M-e ÐÅÒÅÍÅÝÁÅÔ ËÕÒÓÏÒ × ÎÁÞÁÌÏ É ËÏÎÅà ÐÒÅÄÌÏÖÅÎÉÑ. ->> ðÏÐÒÏÂÕÊÔÅ ÎÁÖÁÔØ ÐÁÒÕ ÒÁÚ C-a, É ÐÏÔÏÍ ÐÁÒÕ ÒÁÚ C-e. ðÏÐÒÏÂÕÊÔÅ ÐÁÒÕ - ÒÁÚ ÎÁÖÁÔØ M-a, ÐÏÓÌÅ ÜÔÏÇÏ ÐÁÒÕ ÒÁÚ ÎÁÖÁÔØ M-e. +>> ðÏÐÒÏÂÕÊÔÅ ÎÁÖÁÔØ ÐÁÒÕ ÒÁÚ C-a, Á ÐÏÔÏÍ ÐÁÒÕ ÒÁÚ C-e. ðÏÐÒÏÂÕÊÔÅ ÐÁÒÕ ÒÁÚ + ÎÁÖÁÔØ M-a, ÐÏÓÌÅ ÜÔÏÇÏ ÐÁÒÕ ÒÁÚ ÎÁÖÁÔØ M-e. ðÏÓÍÏÔÒÉÔÅ, ÞÔÏ ÐÏ×ÔÏÒ C-a ÎÉÞÅÇÏ ÎÅ ÉÚÍÅÎÑÅÔ, Á ÐÏ×ÔÏÒ M-a ÐÒÏÄÏÌÖÁÅÔ Ä×ÉÖÅÎÉÅ ËÕÒÓÏÒÁ Ë ÓÌÅÄÕÀÝÅÍÕ ÐÒÅÄÌÏÖÅÎÉÀ. üÔÏ ÎÅ ÓÏÈÒÁÎÑÅÔ ÁÎÁÌÏÇÉÀ, ÎÏ ×ÙÇÌÑÄÉÔ ÅÓÔÅÓÔ×ÅÎÎÏ. -ðÏÌÏÖÅÎÉÅ ËÕÒÓÏÒÁ × ÔÅËÓÔÅ ÔÁËÖÅ ÎÁÚÙ×ÁÀÔ "ÔÏÞËÁ". óËÁÖÅÍ ÉÎÁÞÅ: ËÕÒÓÏÒ -ÐÏËÁÚÙ×ÁÅÔ ÍÅÓÔÏ ÎÁ ÜËÒÁÎÅ × ËÁËÏÊ ÔÏÞËÅ ÂÕÄÅÔ ÒÁÓÐÏÌÏÖÅÎ ××ÏÄÉÍÙÊ ÔÅËÓÔ. +ðÏÌÏÖÅÎÉÅ ËÕÒÓÏÒÁ × ÔÅËÓÔÅ ÔÁËÖÅ ÎÁÚÙ×ÁÀÔ "ÔÏÞËÏÊ ×ÓÔÁ×ËÉ". óËÁÖÅÍ ÉÎÁÞÅ: +ËÕÒÓÏÒ ÐÏËÁÚÙ×ÁÅÔ ÍÅÓÔÏ ÎÁ ÜËÒÁÎÅ × ËÁËÏÊ ÔÏÞËÅ ÂÕÄÅÔ ÒÁÓÐÏÌÏÖÅÎ ××ÏÄÉÍÙÊ +ÔÅËÓÔ. -úÄÅÓØ ÓÏÂÒÁÎÙ ÐÒÏÓÔÙÅ ËÏÍÁÎÄÙ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ, ×ËÌÀÞÁÑ Ä×ÉÖÅÎÉÅ ÐÏ +úÄÅÓØ ÓÏÂÒÁÎÙ ÏÓÎÏ×ÎÙÅ ËÏÍÁÎÄÙ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ, ×ËÌÀÞÁÑ Ä×ÉÖÅÎÉÅ ÐÏ ÓÌÏ×ÁÍ É ÐÒÅÄÌÏÖÅÎÉÑÍ: C-f îÁ ÓÉÍ×ÏÌ ×ÐÅÒÅÄ @@ -166,22 +171,22 @@ Control- Greater-than {âÏÌØÛÅ-þÅÍ}), ËÏÔÏÒÁÑ ÐÅÒÅÍÅÝÁÅÔ ËÕÒÓÏÒ × ËÏÎÅà ÔÅËÓÔÁ. îÁ ÂÏÌØÛÉÎÓÔ×Å ÔÅÒÍÉÎÁÌÏ× ÚÎÁË "<" ÎÁÈÏÄÉÔÓÑ ÎÁÄ ÚÎÁËÏÍ ÔÏÞËÉ, É ÞÔÏÂÙ -ÎÁÂÒÁÔØ ÅÇÏ ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÕ Shift. îÁ ÜÔÉÈ ÔÅÒÍÉÎÁÌÁÈ ×Ù ÔÁË -ÖÅ ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ Shift ÞÔÏ ÎÁÂÒÁÔØ M-<; âÅÚ ÕÄÅÒÖÁÎÉÑ ËÌÁ×ÉÛÉ Shift -×Ù ÎÁÂÅÒÅÔÅ M-ÔÏÞËÁ. +ÎÁÂÒÁÔØ ÅÇÏ, ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÕ Shift. îÁ ÜÔÉÈ ÔÅÒÍÉÎÁÌÁÈ ×Ù ÔÁË +ÖÅ ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ Shift, ÞÔÏÂÙ ÎÁÂÒÁÔØ M-< (ÂÅÚ ÕÄÅÒÖÁÎÉÑ ËÌÁ×ÉÛÉ Shift +×Ù ÎÁÂÅÒÅÔÅ M-ÔÏÞËÁ). ->> óÅÊÞÁÓ ÐÏÐÒÏÂÕÊÔÅ M-<, ÞÔÏ ÐÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÕÞÅÂÎÉËÁ. ðÏÔÏÍ - ÉÓÐÏÌØÚÕÊÔÅ C-v ÞÔÏ ×ÅÒÎÕÔØÓÑ ÎÁÚÁÄ. +>> óÅÊÞÁÓ ÐÏÐÒÏÂÕÊÔÅ M-<, ÞÔÏÂÙ ÐÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÕÞÅÂÎÉËÁ. ðÏÔÏÍ + ÉÓÐÏÌØÚÕÊÔÅ C-v, ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÎÁÚÁÄ. ->> óÅÊÞÁÓ ÐÏÐÒÏÂÕÊÔÅ M->, ÞÔÏ ÐÅÒÅÍÅÓÔÉÔØÓÑ Ë ËÏÎÃÕ ÕÞÅÂÎÉËÁ. éÓÐÏÌØÚÕÊÔÅ - M-v ÞÔÏ ×ÅÒÎÕÔØÓÑ ÓÎÏ×Á. +>> óÅÊÞÁÓ ÐÏÐÒÏÂÕÊÔÅ M->, ÞÔÏÂÙ ÐÅÒÅÍÅÓÔÉÔØÓÑ Ë ËÏÎÃÕ ÕÞÅÂÎÉËÁ. éÓÐÏÌØÚÕÊÔÅ + M-v, ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÓÎÏ×Á. ëÕÒÓÏÒ ÍÏÖÎÏ ÐÅÒÅÍÅÝÁÔØ ËÌÁ×ÉÛÁÍÉ ÕÐÒÁ×ÌÅÎÉÑ ËÕÒÓÏÒÁ (ÓÔÒÅÌËÁÍÉ), ÅÓÌÉ ×ÁÛ ÔÅÒÍÉÎÁÌ ÏÂÏÒÕÄÏ×ÁÎ ÉÍÉ. íÙ ÒÅËÏÍÅÎÄÕÅÍ ×ÙÕÞÉÔØ C-b, C-f, C-n É C-p ÐÏ ÔÒÅÍ -ÐÒÉÞÉÎÁÍ. ÷Ï ÐÅÒ×ÙÈ, ÏÎÉ ÒÁÂÏÔÁÀÔ ÎÁ ÌÀÂÙÈ ÔÅÒÍÉÎÁÌÁÈ. ÷Ï ×ÔÏÒÙÈ, ÏÄÎÁÖÄÙ +ÐÒÉÞÉÎÁÍ. ÷Ï-ÐÅÒ×ÙÈ, ÏÎÉ ÒÁÂÏÔÁÀÔ ÎÁ ÌÀÂÙÈ ÔÅÒÍÉÎÁÌÁÈ. ÷Ï-×ÔÏÒÙÈ, ÏÄÎÁÖÄÙ ÐÏÌÕÞÉ× ÐÒÁËÔÉËÕ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Emacs, ×Ù ÐÏÊÍÅÔÅ, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ CTRL-ÓÉÍ×ÏÌÙ ÕÄÏÂÎÅÅ É ÂÙÓÔÒÅÅ, ÞÅÍ ËÎÏÐËÉ ÓÏ ÓÔÒÅÌÏÞËÁÍÉ (ÐÏÔÏÍÕ ÞÔÏ ×Ù ÎÅ -ÕÂÉÒÁÅÔÅ ÒÕËÉ Ó ÏÂÙÞÎÏÇÏ ÉÈ ÐÏÌÏÖÅÎÉÑ ÐÒÉ ÐÅÞÁÔÉ). ÷ ÔÒÅÔØÉÈ, ËÁË ÔÏÌØËÏ ×Ù +ÕÂÉÒÁÅÔÅ ÒÕËÉ Ó ÏÂÙÞÎÏÇÏ ÉÈ ÐÏÌÏÖÅÎÉÑ ÐÒÉ ÐÅÞÁÔÉ). ÷-ÔÒÅÔØÉÈ, ËÁË ÔÏÌØËÏ ×Ù ÐÒÉ×ÙËÎÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ CTRL-ÓÉÍ×ÏÌÙ, ×Ù ÓÍÏÖÅÔÅ ÔÁË ÖÅ ÌÅÇËÏ ×ÙÕÞÉÔØ É ÉÓÐÏÌØÚÏ×ÁÔØ ÄÒÕÇÉÅ, ÒÁÓÛÉÒÅÎÎÙÅ ËÏÍÁÎÄÙ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ. @@ -190,10 +195,10 @@ CTRL- ÐÏ×ÔÏÒÅÎÉÊ ÄÌÑ ËÏÍÁÎÄÙ, ÎÁÖÍÉÔÅ C-u, ÐÏÔÏÍ ÞÉÓÌÏ ÐÏ×ÔÏÒÅÎÉÊ, É ÕËÁÖÉÔÅ ËÏÍÁÎÄÕ. åÓÌÉ Õ ×ÁÓ ÅÓÔØ ËÌÁ×ÉÛÁ META (ÉÌÉ EDIT ÉÌÉ ALT), ÔÏ ÃÉÆÒÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÍÏÖÎÏ ÚÁÄÁÔØ ÄÒÕÇÉÍ ÓÐÏÓÏÂÏÍ: ÎÁÂÅÒÉÔÅ ÃÉÆÒÙ, ÕÄÅÒÖÉ×ÁÑ ËÌÁ×ÉÛÕ -META. íÙ ÒÅËÏÍÅÎÄÕÅÍ ÏÓ×ÏÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ C-u, ÐÏÓËÏÌØËÕ ÜÔÁ -ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ËÌÁ×ÉÛ ÒÁÂÏÔÁÅÔ ÎÁ ÌÀÂÏÍ ÔÅÒÍÉÎÁÌÅ. þÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ -ÔÁËÖÅ ÎÁÚÙ×ÁÅÔÓÑ "ÐÒÅÆÉËÓÎÙÍ ÁÒÇÕÍÅÎÔÏÍ" ÐÏÓËÏÌØËÕ ×Ù ÎÁÂÉÒÁÅÔÅ ÁÒÇÕÍÅÎÔ ÄÏ -×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄÙ. +META. íÙ ÒÅËÏÍÅÎÄÕÅÍ ÐÒÉ×ÙËÎÕÔØ Ë ÉÓÐÏÌØÚÏ×ÁÎÉÀ C-u, ÐÏÓËÏÌØËÕ ÜÔÏ ÓÏÞÅÔÁÎÉÅ +ËÌÁ×ÉÛ ÒÁÂÏÔÁÅÔ ÎÁ ÌÀÂÏÍ ÔÅÒÍÉÎÁÌÅ. þÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÔÁËÖÅ ÎÁÚÙ×ÁÅÔÓÑ +"ÐÒÅÆÉËÓÎÙÍ ÁÒÇÕÍÅÎÔÏÍ", ÐÏÓËÏÌØËÕ ×Ù ÚÁÄÁÅÔÅ ÁÒÇÕÍÅÎÔ ÄÏ ×ÙÐÏÌÎÅÎÉÑ +ËÏÍÁÎÄÙ. îÁÐÒÉÍÅÒ, C-u 8 C-f ÐÅÒÅÍÅÓÔÉÔ ËÕÒÓÏÒ ÎÁ ×ÏÓÅÍØ ÓÉÍ×ÏÌÏ× ×ÐÅÒÅÄ. @@ -202,9 +207,9 @@ META. íÎÏÇÉÅ ËÏÍÁÎÄÙ ÉÓÐÏÌØÚÕÀÔ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ËÁË ÓÞÅÔÞÉË ÐÏ×ÔÏÒÅÎÉÊ, ÎÏ ÎÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ ÉÓÐÏÌØÚÕÀÔ ÅÇÏ ÄÒÕÇÉÍ ÓÐÏÓÏÂÏÍ. îÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ (ÎÏ ÎÉ -ÏÄÎÁ ÉÚ ÎÉÈ ÎÅ ÂÙÌÁ ÅÝÅ ÉÚÕÞÅÎÁ ÚÄÅÓØ) ÉÓÐÏÌØÚÕÀÔ ÅÇÏ ËÁË ÆÌÁÇ -- ÎÁÌÉÞÉÅ -ÐÒÅÆÉËÓÎÏÇÏ ÁÒÇÕÍÅÎÔÁ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÅÇÏ ÚÎÁÞÅÎÉÑ, ÉÚÍÅÎÑÅÔ ÐÏ×ÅÄÅÎÉÅ -ËÏÍÁÎÄÙ. +ÏÄÎÁ ÉÚ ÎÉÈ ÎÅ ÂÙÌÁ ÅÝÅ ÏÐÉÓÁÎÁ × ÄÁÎÎÏÍ ÔÅËÓÔÅ) ÉÓÐÏÌØÚÕÀÔ ÅÇÏ ËÁË ÆÌÁÇ -- +ÎÁÌÉÞÉÅ ÐÒÅÆÉËÓÎÏÇÏ ÁÒÇÕÍÅÎÔÁ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÅÇÏ ÚÎÁÞÅÎÉÑ, ÉÚÍÅÎÑÅÔ +ÐÏ×ÅÄÅÎÉÅ ËÏÍÁÎÄÙ. äÒÕÇÉÍ ×ÉÄÏÍ ÉÓËÌÀÞÅÎÉÊ Ñ×ÌÑÀÔÓÑ ËÌÀÞÉ C-v É M-v. ðÒÉ ÐÏÌÕÞÅÎÉÉ ÞÉÓÌÏ×ÏÇÏ ÁÒÇÕÍÅÎÔÁ, ÏÎÉ ÐÒÏËÒÕÞÉ×ÁÀÔ ÜËÒÁÎ ××ÅÒÈ ÉÌÉ ×ÎÉÚ ÎÁ ÕËÁÚÁÎÎÏÅ ÞÉÓÌÏ ÓÔÒÏË, @@ -216,9 +221,10 @@ META. üÔÁ ËÏÍÁÎÄÁ ÄÏÌÖÎÁ ÐÒÏËÒÕÔÉÔØ ÜËÒÁÎ ÎÁ 8 ÓÔÒÏË ××ÅÒÈ. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÒÏËÒÕÔÉÔØ ÅÇÏ ×ÎÉÚ, ÍÏÖÅÔÅ ÚÁÄÁÔØ ÁÒÇÕÍÅÎÔ ÄÌÑ M-v. -åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÏËÏÎÎÕÀ ÓÉÓÔÅÍÕ, ÔÁËÕÀ ËÁË X11 ÉÌÉ MS-Windows, ÄÏÌÖÎÁ -ÂÙÔØ ÐÒÑÍÏÕÇÏÌØÎÁÑ ÏÂÌÁÓÔØ ÉÍÅÎÕÅÍÁÑ ÐÏÌÏÓÏÊ ÐÒÏËÒÕÔËÉ Ó ÌÅ×ÏÊ ÓÔÏÒÏÎÙ ÏËÎÁ -Emacs. ÷Ù ÍÏÖÅÔÅ ÐÒÏËÒÕÞÉ×ÁÔØ ÔÅËÓÔ, ÉÓÐÏÌØÚÕÑ ÍÁÎÉÐÕÌÑÔÏÒ ÍÙÛØ. +åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÏËÏÎÎÕÀ ÓÉÓÔÅÍÕ, ÔÁËÕÀ ËÁË X11 ÉÌÉ MS-Windows, ÔÏ ÄÏÌÖÎÁ +ÂÙÔØ ×ÉÄÎÁ ÐÒÑÍÏÕÇÏÌØÎÁÑ ÏÂÌÁÓÔØ, ÉÍÅÎÕÅÍÁÑ ÐÏÌÏÓÏÊ ÐÒÏËÒÕÔËÉ, ËÏÔÏÒÁÑ ×ÉÄÎÁ +Ó ÌÅ×ÏÊ ÓÔÏÒÏÎÙ ÏËÎÁ Emacs. ÷Ù ÍÏÖÅÔÅ ÐÒÏËÒÕÞÉ×ÁÔØ ÔÅËÓÔ, ÉÓÐÏÌØÚÕÑ +ÍÁÎÉÐÕÌÑÔÏÒ ÍÙÛØ. >> ðÏÐÒÏÂÕÊÔÅ ÐÅÒÅÍÅÝÁÔØ ÍÙÛØ ÐÒÉ ÎÁÖÁÔÏÊ ÓÒÅÄÎÅÊ ËÎÏÐËÅ ÍÙÛÉ. ÷Ù Õ×ÉÄÉÔÅ ËÁË ÔÅËÓÔ ÐÒÏËÒÕÞÉ×ÁÅÔÓÑ ××ÅÒÈ É ×ÎÉÚ. @@ -227,163 +233,174 @@ Emacs. * õðòá÷ìåîéå ëõòóïòïí îá X-ôåòíéîáìå ------------------------------------ -åÓÌÉ Õ ×ÁÓ X-ÔÅÒÍÉÎÁÌ, ÔÏ ×ÁÍ, ×ÅÒÏÑÔÎÏ, ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ ËÕÒÓÏÒÏÍ ÐÏËÁÖÅÔÓÑ -ÂÏÌÅÅ ÌÅÇËÉÍ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ ÎÁ ÃÉÆÒÏ×ÏÊ ËÌÁ×ÉÁÔÕÒÅ (ÓÐÒÁ×Á). óÔÒÅÌËÉ -×ÌÅ×Ï, ×ÐÒÁ×Ï, ××ÅÒÈ É ×ÎÉÚ ÐÅÒÅÄ×ÉÇÁÀÔ ËÕÒÓÏÒ × ÏÖÉÄÁÅÍÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ; ÏÎÉ -ÒÁÂÏÔÁÀÔ ÔÏÞÎÏ ÔÁËÖÅ ËÁË C-b, C-f, C-p É C-n, ÎÏ ÌÅÇÞÅ × ÎÁÂÏÒÅ É -ÚÁÐÏÍÉÎÁÎÉÉ. ÷Ù ÔÁË ÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÏÞÅÔÁÎÉÑ C-left É C-right ÄÌÑ -ÐÅÒÅÄ×ÉÖÅÎÉÑ ÐÏ ÓÌÏ×ÁÍ, É C-up É C-down ÄÌÑ ÐÅÒÅÄ×ÉÖÅÎÉÑ ÐÏ ÂÌÏËÁÍ (Ô.Å., -ÐÁÒÁÇÒÁÆÁÍ, ÅÓÌÉ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÔÅËÓÔ). åÓÌÉ Õ ×ÁÓ ÅÓÔØ ËÎÏÐËÉ ÐÏÍÅÞÅÎÎÙÅ -HOME (ÉÌÉ BEGIN) ÉÌÉ END, ÔÏ ÏÎÉ ÂÕÄÕÔ ÐÅÒÅÍÅÝÁÔØ ËÕÒÓÏÒ × ÎÁÞÁÌÏ É ËÏÎÅà -ÓÔÒÏËÉ, ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ, É C-home É C-end ÂÕÄÕÔ ÐÅÒÅÍÅÝÁÔØ × ÎÁÞÁÌÏ É ËÏÎÅà -ÆÁÊÌÁ. åÓÌÉ ÎÁ ×ÁÛÅÊ ËÌÁ×ÉÁÔÕÒÅ ÅÓÔØ ËÎÏÐËÉ PgUp É PgDn, ÔÏ ×Ù ÍÏÖÅÔÅ ÉÈ -ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ××ÅÒÈ É ×ÎÉÚ ÐÏÜËÒÁÎÎÏ, ÔÁËÖÅ ËÁË É M-v É C-v. - -÷ÓÅ ÜÔÉ ËÏÍÁÎÄÙ ÍÏÇÕÔ ÐÏÌÕÞÁÔØ ÃÉÆÒÏ×ÏÊ ÁÒÇÕÍÅÎÔ, ËÁË ÒÁÓÓËÁÚÁÎÏ ×ÙÛÅ. ÷Ù -ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÕÓËÏÒÅÎÎÙÊ ÓÐÏÓÏ ××ÏÄÁ ÜÔÏÇÏ ÁÒÇÕÍÅÎÔÁ: ÐÒÏÓÔÏ ÎÁÖÍÉÔÅ -CONTROL ÉÌÉ META É ÎÁÂÅÒÉÔÅ ÞÉÓÌÏ. îÁÐÒÉÍÅÒ, ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ÎÁ 12 ÓÌÏ× -×ÐÒÁ×Ï, ÎÁÂÅÒÉÔÅ C-1 C-2 C-right. úÁÐÏÍÎÉÔÅ ÞÔÏ ÔÁË ÏÞÅÎØ ÌÅÇËÏ ÎÁÂÉÒÁÔØ, -ÐÏÔÏÍÕ ÞÔÏ ×Ù ÎÅ ÏÔÐÕÓËÁÅÔÅ ËÎÏÐËÕ CONTROL ÍÅÖÄÕ ÎÁÖÁÔÉÑÍÉ. +åÓÌÉ Õ ×ÁÓ X-ÔÅÒÍÉÎÁÌ, ÔÏ ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ ËÕÒÓÏÒÏÍ, ×ÁÍ ×ÅÒÏÑÔÎÏ ÐÏËÁÖÅÔÓÑ +ÂÏÌÅÅ ÌÅÇËÉÍ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ËÌÁ×ÉÛ ËÕÒÓÏÒÁ ÎÁ ÃÉÆÒÏ×ÏÊ ËÌÁ×ÉÁÔÕÒÅ +(ÓÐÒÁ×Á). óÔÒÅÌËÉ ×ÌÅ×Ï, ×ÐÒÁ×Ï, ××ÅÒÈ É ×ÎÉÚ ÐÅÒÅÄ×ÉÇÁÀÔ ËÕÒÓÏÒ × +ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÍ ÎÁÐÒÁ×ÌÅÎÉÉ -- ÏÎÉ ÒÁÂÏÔÁÀÔ ÔÏÞÎÏ ÔÁËÖÅ ËÁË C-b, C-f, C-p É +C-n, ÎÏ ÌÅÇÞÅ × ÎÁÂÏÒÅ É ÚÁÐÏÍÉÎÁÎÉÉ. ÷Ù ÔÁË ÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ +ÓÏÞÅÔÁÎÉÑ C-left É C-right ÄÌÑ ÐÅÒÅÄ×ÉÖÅÎÉÑ ÐÏ ÓÌÏ×ÁÍ, É C-up É C-down ÄÌÑ +ÐÅÒÅÄ×ÉÖÅÎÉÑ ÐÏ ÂÌÏËÁÍ (Ô.Å. ÐÁÒÁÇÒÁÆÁÍ, ÅÓÌÉ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÔÅËÓÔ). åÓÌÉ +Õ ×ÁÓ ÅÓÔØ ËÎÏÐËÉ ÐÏÍÅÞÅÎÎÙÅ HOME (ÉÌÉ BEGIN) É/ÉÌÉ END, ÔÏ ÏÎÉ ÂÕÄÕÔ +ÐÅÒÅÍÅÝÁÔØ ËÕÒÓÏÒ × ÎÁÞÁÌÏ É ËÏÎÅà ÓÔÒÏËÉ, Á C-home É C-end ÂÕÄÕÔ ÐÅÒÅÍÅÝÁÔØ +× ÎÁÞÁÌÏ É ËÏÎÅà ÆÁÊÌÁ. åÓÌÉ ÎÁ ×ÁÛÅÊ ËÌÁ×ÉÁÔÕÒÅ ÅÓÔØ ËÎÏÐËÉ PgUp É PgDn, +ÔÏ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÈ ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ××ÅÒÈ É ×ÎÉÚ ÐÏÓÔÒÁÎÉÞÎÏ, +ÁÎÁÌÏÇÉÞÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ M-v É C-v. + +÷ÓÅ ÜÔÉ ËÏÍÁÎÄÙ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÃÉÆÒÏ×ÏÊ ÁÒÇÕÍÅÎÔ, ÔÁË, ËÁË Ï ÜÔÏÍ +ÒÁÓÓËÁÚÁÎÏ ×ÙÛÅ. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÕÓËÏÒÅÎÎÙÊ ÓÐÏÓÏ ××ÏÄÁ ÜÔÏÇÏ +ÁÒÇÕÍÅÎÔÁ: ÐÒÏÓÔÏ ÎÁÖÍÉÔÅ CONTROL ÉÌÉ META É ÎÁÂÅÒÉÔÅ ÞÉÓÌÏ. îÁÐÒÉÍÅÒ, ÄÌÑ +ÐÅÒÅÍÅÝÅÎÉÑ ÎÁ 12 ÓÌÏ× ×ÐÒÁ×Ï, ÎÁÂÅÒÉÔÅ C-1 C-2 C-right. úÁÐÏÍÎÉÔÅ ÞÔÏ ÔÁË +ÏÞÅÎØ ÌÅÇËÏ ÎÁÂÉÒÁÔØ, ÐÏÔÏÍÕ ÞÔÏ ×Ù ÎÅ ÏÔÐÕÓËÁÅÔÅ ËÎÏÐËÕ CONTROL ÍÅÖÄÕ +ÎÁÖÁÔÉÑÍÉ. * åóìé EMACS úá÷éó ------------------ -åÓÌÉ Emacs ÐÅÒÅÓÔÁÌ ÒÅÁÇÉÒÏ×ÁÔØ ÎÁ ×ÁÛÉ ËÏÍÁÎÄÙ, ×Ù ÍÏÖÅÔÅ ÏÓÔÁÎÏ×ÉÔØ ÜÔÏ -ÐÒÏÓÔÏ ÎÁÖÁ× C-g. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-g ÞÔÏÂÙ ÏÓÔÁÎÏ×ÉÔØ ×ÙÐÏÌÎÅÎÉÅ -ËÏÍÁÎÄÙ ËÏÔÏÒÁÑ ÓÌÉÛËÏÍ ÄÏÌÇÏ ×ÙÐÏÌÎÑÅÔÓÑ. +åÓÌÉ Emacs ÐÅÒÅÓÔÁÌ ÒÅÁÇÉÒÏ×ÁÔØ ÎÁ ×ÁÛÉ ËÏÍÁÎÄÙ, ÔÏ ×Ù ÍÏÖÅÔÅ ÉÚÂÅÖÁÔØ ÜÔÏÇÏ +ÐÒÏÓÔÏ ÎÁÖÁ× C-g. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-g, ÞÔÏÂÙ ÏÓÔÁÎÏ×ÉÔØ ×ÙÐÏÌÎÅÎÉÅ +ËÏÍÁÎÄ, ËÏÔÏÒÙÅ ÓÌÉÛËÏÍ ÄÏÌÇÏ ×ÙÐÏÌÎÑÀÔÓÑ. -÷Ù ÔÁË ÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-g ÄÌÑ ÏÔÍÅÎÙ ÃÉÆÒÏ×ÏÇÏ ÁÒÇÕÍÅÎÔÁ ÉÌÉ ÎÁÞÁÔÏÊ -ËÏÍÁÎÄÙ, ËÏÔÏÒÕÀ ×Ù ÎÅ ÈÏÔÉÔÅ ÚÁ×ÅÒÛÁÔØ. +÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-g ÄÌÑ ÏÔÍÅÎÙ ÎÁÂÒÁÎÎÏÇÏ ÃÉÆÒÏ×ÏÇÏ ÁÒÇÕÍÅÎÔÁ +ÉÌÉ ËÏÍÁÎÄÙ, ËÏÔÏÒÁÑ ÎÁÞÁÌÁ ×ÙÐÏÌÎÑÔØÓÑ, ÎÏ ËÏÔÏÒÕÀ ×Ù ÎÅ ÈÏÔÉÔÅ ÚÁ×ÅÒÛÁÔØ. ->> îÁÂÅÒÉÔÅ C-u 100 ÄÌÑ ÚÁÄÁÎÉÑ ÁÒÇÕÍÅÎÔÁ 100, ÐÏÔÏÍ ÎÁÖÍÉÔÅ C-g. ôÅÐÅÒØ +>> îÁÂÅÒÉÔÅ C-u 100 ÄÌÑ ÚÁÄÁÎÉÑ ÁÒÇÕÍÅÎÔÁ 100, ÐÏÔÏÍ ÎÁÖÍÉÔÅ C-g. ôÅÐÅÒØ ÎÁÖÍÉÔÅ C-f. ëÕÒÓÏÒ ÄÏÌÖÅÎ ÐÅÒÅÍÅÓÔÉÔØÓÑ ×ÓÅÇÏ ÎÁ ÏÄÉÎ ÓÉÍ×ÏÌ, ÐÏÔÏÍÕ ÞÔÏ ×Ù ÏÔÍÅÎÉÌÉ ÁÒÇÕÍÅÎÔ ÎÁÖÁÔÉÅÍ C-g. -åÓÌÉ ×Ù ÎÁÖÁÌÉ ÐÏ ÏÛÉÂËÅ, ×Ù ÔÁË ÖÅ ÍÏÖÅÔÅ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÜÔÏÇÏ -ÎÁÖÁÔÉÅÍ C-g. +åÓÌÉ ×Ù ÎÁÖÁÌÉ ÐÏ ÏÛÉÂËÅ, ÔÏ ×Ù ÔÁË ÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-g ÞÔÏÂÙ +ÉÚÂÅÖÁÔØ ×ÏÚÄÅÊÓÔ×ÉÑ ÄÁÎÎÏÊ ËÏÍÁÎÄÙ. -* úáðòåýåîîùå ëïíáîäù (DISABLED COMMANDS) +* úáðòåýåîîùå ëïíáîäù (DISABLED COMMANDS) ----------------------------------------- îÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ Emacs "ÚÁÐÒÅÝÅÎÙ", ÐÏÓËÏÌØËÕ ÎÁÞÉÎÁÀÝÉÅ ÐÏÌØÚÏ×ÁÔÅÌÉ ÍÏÇÕÔ -ÉÈ ÓÌÕÞÁÊÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ. +ÓÌÕÞÁÊÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÈ ÄÌÑ ÓÏ×ÅÒÛÅÎÉÑ ÏÐÁÓÎÙÈ ÄÅÊÓÔ×ÉÊ. åÓÌÉ ×Ù ÎÁÂÒÁÌÉ ÏÄÎÕ ÉÚ ÚÁÐÒÅÝÅÎÎÙÈ ËÏÍÁÎÄ, ÔÏ Emacs ÐÏËÁÖÅÔ ÓÏÏÂÝÅÎÉÅ -ÇÏ×ÏÒÑÝÅÅ Ï ÔÏÍ, ËÁËÁÑ ËÏÍÁÎÄÁ ×ÙÚÙ×ÁÅÔÓÑ, É ÓÐÒÏÓÉÔ, ÈÏÔÉÔÅ ÌÉ ×Ù -ÐÒÏÄÏÌÖÉÔØ É ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ. +ÇÏ×ÏÒÑÝÅÅ Ï ÔÏÍ, ËÁËÁÑ ËÏÍÁÎÄÁ ×ÙÚÙ×ÁÅÔÓÑ, É ÚÁÐÒÏÓÉÔ Õ ×ÁÓ, ÈÏÔÉÔÅ ÌÉ ×Ù +ÐÒÏÄÏÌÖÁÔØ ÒÁÂÏÔÕ É ×ÙÐÏÌÎÑÔØ ÄÁÎÎÕÀ ËÏÍÁÎÄÕ. -åÓÌÉ ×Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ÐÏÐÒÏÂÏ×ÁÔØ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ, ÔÏ ÎÁÖÍÉÔÅ -ËÌÁ×ÉÛÕ ðÒÏÂÅÌ (Space) × ÏÔ×ÅÔ ÎÁ ÜÔÏÔ ×ÏÐÒÏÓ. ïÂÙÞÎÏ, ÅÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ -×ÙÐÏÌÎÑÔØ ÚÁÐÒÅÝÅÎÎÕÀ ËÏÍÁÎÄÕ, ÔÏ ÏÔ×ÅÞÁÊÔÅ ÎÁ ×ÏÐÒÏÓ ÎÁÖÁÔÉÅÍ ËÌÁ×ÉÛÉ "n". +åÓÌÉ ×Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÐÏÐÒÏÂÏ×ÁÔØ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ, ÔÏ ÎÁÖÍÉÔÅ ËÌÁ×ÉÛÕ + (ÐÒÏÂÅÌ) × ÏÔ×ÅÔ ÎÁ ÚÁÄÁÎÎÙÊ ×ÏÐÒÏÓ. ïÂÙÞÎÏ, ÅÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ +×ÙÐÏÌÎÑÔØ ÚÁÐÒÅÝÅÎÎÕÀ ËÏÍÁÎÄÕ, ÔÏ ÏÔ×ÅÔØÔÅ ÎÁ ×ÏÐÒÏÓ ÎÁÖÁÔÉÅÍ ËÌÁ×ÉÛÉ "n". ->> îÁÖÍÉÔÅ `C-x C-l' (×ÙËÌÀÞÅÎÎÁÑ ËÏÍÁÎÄÁ), ÐÏÔÏÍ ÏÔ×ÅÔØÔÅ "n" ÎÁ ×ÏÐÒÏÓ. +>> îÁÖÍÉÔÅ `C-x C-l' (×ÙËÌÀÞÅÎÎÁÑ ËÏÍÁÎÄÁ), Á ÐÏÔÏÍ ÏÔ×ÅÔØÔÅ "n" ÎÁ ÚÁÄÁÎÎÙÊ + ×ÏÐÒÏÓ. * ïëîá ------ -Emacs ÍÏÖÅÔ ÉÍÅÔØ ÎÅÓËÏÌØËÏ ÏËÏÎ, ËÁÖÄÏÅ ÉÚ ËÏÔÏÒÙÈ ÏÔÏÂÒÁÖÁÅÔ Ó×ÏÊ ÔÅËÓÔ. -íÙ ÏÂßÑÓÎÉÍ ÐÏÚÖÅ ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÍÎÏÖÅÓÔ×Ï ÏËÏÎ. ðÒÑÍÏ ÓÅÊÞÁÓ ÍÙ ÈÏÔÉÍ -ÏÂßÑÓÎÉÔØ ËÁË ÉÚÂÁ×ÌÑÔØÓÑ ÏÔ ÌÉÛÎÉÈ ÏËÏÎ É ×ÅÒÎÕÔØÓÑ Ë ÒÅÄÁËÔÉÒÏ×ÁÎÉÀ × -ÏÄÎÏÍ ÏËÎÅ. ÷ÙÐÏÌÎÉÔØ ÜÔÏ ÏÞÅÎØ ÐÒÏÓÔÏ: +Emacs ÍÏÖÅÔ ÏÔÏÂÒÁÖÁÔØ ÉÎÆÏÒÍÁÃÉÀ × ÎÅÓËÏÌØËÉÈ ÏËÎÁÈ, ËÁÖÄÏÅ ÉÚ ËÏÔÏÒÙÈ +ÏÔÏÂÒÁÖÁÅÔ Ó×ÏÊ ÔÅËÓÔ. ðÏÚÖÅ ÍÙ ÏÂßÑÓÎÉÍ ËÁË ÒÁÂÏÔÁÔØ Ó ÎÅÓËÏÌØËÉÍÉ ÏËÎÁÍÉ. +ðÒÑÍÏ ÓÅÊÞÁÓ ÍÙ ÈÏÔÉÍ ÏÂßÑÓÎÉÔØ ×ÁÍ ËÁË ÉÚÂÁ×ÌÑÔØÓÑ ÏÔ ÌÉÛÎÉÈ ÏËÏÎ É +×ÅÒÎÕÔØÓÑ Ë ÒÅÄÁËÔÉÒÏ×ÁÎÉÀ × ÏÄÎÏÍ ÏËÎÅ. üÔÏ ÏÞÅÎØ ÐÒÏÓÔÏ ÓÄÅÌÁÔØ: C-x 1 ïÄÎÏ ÏËÎÏ. (ÚÁËÒÙÔØ ×ÓÅ ÄÒÕÇÉÅ ÏËÎÁ). -üÔÏ CONTROL-x ÓÏ ÓÌÅÄÕÀÝÅÊ ÃÉÆÒÏÊ 1. C-x 1 ÒÁÚ×ÅÒÎÅÔ ÏËÎÏ ËÏÔÏÒÏÅ ÓÏÄÅÒÖÉÔ +üÔÏ CONTROL-x ÓÏ ÓÌÅÄÕÀÝÅÊ ÃÉÆÒÏÊ 1. C-x 1 ÒÁÚ×ÅÒÎÅÔ ÏËÎÏ, ËÏÔÏÒÏÅ ÓÏÄÅÒÖÉÔ ËÕÒÓÏÒ, ÔÁË, ÞÔÏÂÙ ÏÎÏ ÚÁÎÑÌÏ ×ÅÓØ ÜËÒÁÎ. ðÒÉ ÜÔÏÍ ÂÕÄÕÔ ÕÄÁÌÅÎÙ ×ÓÅ ÏÓÔÁÌØÎÙÅ ÏËÎÁ. >> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÜÔÕ ÓÔÒÏËÕ É ÎÁÖÍÉÔÅ C-u 0 C-l. >> îÁÂÅÒÉÔÅ CONTROL-h k CONTROL-f. - ðÏÓÍÏÔÒÉÔÅ, ËÁË ÔÅËÕÝÅÅ ÏËÎÏ ÓÏÖÍÅÔÓÑ, ËÏÇÄÁ ÎÏ×ÏÅ - ÐÏÑ×ÉÔÓÑ É ÏÔÏÂÒÁÚÉÔ ÄÏËÕÍÅÎÔÁÃÉÀ ÎÁ ËÏÍÁÎÄÕ CONTROL-f. + ðÏÓÍÏÔÒÉÔÅ, ËÁË ÔÅËÕÝÅÅ ÏËÎÏ ÓÏÖÍÅÔÓÑ, ËÏÇÄÁ ÎÏ×ÏÅ ÐÏÑ×ÉÔÓÑ É ÏÔÏÂÒÁÚÉÔ + ÄÏËÕÍÅÎÔÁÃÉÀ ÎÁ ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ CONTROL-f. ->> îÁÂÅÒÉÔÅ C-x 1 É ÐÏÓÍÏÔÒÉÔÅ ËÁË ÏËÎÏ Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ ÉÓÞÅÚÎÅÔ. +>> îÁÂÅÒÉÔÅ C-x 1 É ÐÏÓÍÏÔÒÉÔÅ, ËÁË ÏËÎÏ Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ ÉÓÞÅÚÎÅÔ. üÔÁ ËÏÍÁÎÄÁ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÄÒÕÇÉÈ ËÏÍÁÎÄ, ËÏÔÏÒÙÅ ×Ù ÉÚÕÞÉÌÉ, ÔÅÍ, ÞÔÏ ÏÎÁ ÓÏÓÔÏÉÔ ÉÚ Ä×ÕÈ ÓÉÍ×ÏÌÏ×. ïÎÁ ÎÁÞÉÎÁÅÔÓÑ ÓÏ ÚÎÁËÁ CONTROL-x. åÓÔØ ÃÅÌÙÊ ÎÁÂÏÒ ËÏÍÁÎÄ, ËÏÔÏÒÙÅ ÎÁÞÉÎÁÀÔÓÑ Ó CONTROL-x; ÍÎÏÇÉÅ ÉÚ ÎÉÈ ÒÁÂÏÔÁÀÔ Ó -ÏËÎÁÍÉ, ÂÕÆÅÒÁÍÉ, ÆÁÊÌÁÍÉ É ÁÎÁÌÏÇÉÞÎÙÍÉ ×ÅÝÁÍÉ. üÔÉ ËÏÍÁÎÄÙ ÉÍÅÀÔ ÄÌÉÎÕ 2, -3 ÉÌÉ 4 ÚÎÁËÁ. +ÏËÎÁÍÉ, ÂÕÆÅÒÁÍÉ, ÆÁÊÌÁÍÉ É ÁÎÁÌÏÇÉÞÎÙÍÉ ×ÅÝÁÍÉ. üÔÉ ËÏÍÁÎÄÙ ÓÏÓÔÏÑÔ ÉÚ +Ä×ÕÈ, ÔÒÅÈ ÉÌÉ ÞÅÔÙÒÅÈ ÚÎÁËÏ×. * ÷óôá÷ëá é õäáìåîéå -------------------- -åÓÌÉ ×Ù ÈÏÔÉÔÅ ×ÓÔÁ×ÉÔØ ÔÅËÓÔ, ÐÒÏÓÔÏ ÎÁÂÅÒÉÔÅ ÔÅËÓÔ. óÉÍ×ÏÌÙ, ËÏÔÏÒÙÅ ×Ù +åÓÌÉ ×Ù ÈÏÔÉÔÅ ×ÓÔÁ×ÉÔØ ÔÅËÓÔ, ÔÏ ÐÒÏÓÔÏ ÎÁÂÉÒÁÊÔÅ ÅÇÏ. óÉÍ×ÏÌÙ, ËÏÔÏÒÙÅ ×Ù ÍÏÖÅÔÅ ×ÉÄÅÔØ, ÔÁËÉÅ ËÁË A, 7, *, É ÐÒ. ÐÏÎÉÍÁÀÔÓÑ Emacs'ÏÍ ËÁË ÔÅËÓÔ É -×ÓÔÁ×ÌÑÀÔÓÑ ÎÅÍÅÄÌÅÎÎÏ. îÁÖÍÉÔÅ (ËÎÏÐËÁ ÐÅÒÅ×ÏÄÁ ËÁÒÅÔËÉ) ÄÌÑ -×ÓÔÁ×ËÉ ÓÉÍ×ÏÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ. +×ÓÔÁ×ÌÑÀÔÓÑ ÎÅÍÅÄÌÅÎÎÏ. îÁÖÍÉÔÅ (ËÎÏÐËÁ ÐÅÒÅ×ÏÄÁ ËÁÒÅÔËÉ) ÞÔÏÂÙ +×ÓÔÁ×ÉÔØ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ. -÷Ù ÍÏÖÅÔÅ ÕÄÁÌÉÔØ ÐÏÓÌÅÄÎÉÊ ÎÁÂÒÁÎÎÙÊ ÓÉÍ×ÏÌ ÎÁÖÉÍÁÑ ËÌÁ×ÉÛÕ -. ëÌÁ×ÉÛÁ ÎÁ ËÌÁ×ÉÁÔÕÒÅ ÍÏÖÅÔ ÂÙÔØ ÏÂÏÚÎÁÞÅÎÁ ËÁË "Del". ÷ -ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ, ËÌÁ×ÉÛÁ "Backspace" ÒÁÂÏÔÁÅÔ ËÁË , ÎÏ ÎÅ ×ÓÅÇÄÁ! +÷Ù ÍÏÖÅÔÅ ÕÄÁÌÉÔØ ÎÁÂÒÁÎÎÙÊ ÓÉÍ×ÏÌ ÎÁÖÉÍÁÑ ËÌÁ×ÉÛÕ . -- +ÜÔÏ ËÌÁ×ÉÛÁ ÎÁ ËÌÁ×ÉÁÔÕÒÅ, ËÏÔÏÒÕÀ ×Ù ÉÓÐÏÌØÚÕÅÔÅ É ×ÎÅ Emacs ÄÌÑ ÕÄÁÌÅÎÉÑ +ÐÏÓÌÅÄÎÅÇÏ ÎÁÂÒÁÎÎÏÇÏ ÓÉÍ×ÏÌÁ. ïÂÙÞÎÏ, ÜÔÏ ÂÏÌØÛÁÑ ËÌÁ×ÉÛÁ, ÒÁÓÐÏÌÏÖÅÎÎÁÑ +ÎÁ ÎÅÓËÏÌØËÏ ÓÔÒÏË ×ÙÛÅ ËÌÁ×ÉÛÉ ; ÏÂÙÞÎÏ ÏÎÁ ÐÏÍÅÞÅÎÁ ËÁË "Delete", +"Del" ÉÌÉ "Backspace". -÷ ÏÓÎÏ×ÎÏÍ, ÕÄÁÌÑÅÔ ÓÉÍ×ÏÌ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÐÅÒÅÄ ÔÅËÕÝÅÊ ÐÏÚÉÃÉÅÊ +åÓÌÉ ÂÏÌØÛÁÑ ËÌÁ×ÉÛÁ ÐÏÍÅÞÅÎÁ ËÁË "Backspace", ÔÏ ÜÔÏ ÔÏ, ÞÔÏ ×ÁÍ ÎÕÖÎÏ +ÉÓÐÏÌØÚÏ×ÁÔØ ÔÏÇÄÁ, ËÏÇÄÁ ×Ù ÂÕÄÅÔÅ ÞÉÔÁÔØ ÐÒÏ . õ ×ÁÓ ÔÁËÖÅ ÍÏÖÅÔ +ÂÙÔØ ËÌÁ×ÉÛÁ, ÐÏÍÅÞÅÎÎÁÑ ËÁË "Delete", ÎÏ ÏÎÁ ÉÍÅÅÔ ÄÒÕÇÕÀ ÆÕÎËÃÉÀ, ÏÔÌÉÞÎÕÀ +ÏÔ . + +÷ ÏÓÎÏ×ÎÏÍ, ÕÄÁÌÑÅÔ ÓÉÍ×ÏÌ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÐÅÒÅÄ ÔÅËÕÝÅÊ ÐÏÚÉÃÉÅÊ ËÕÒÓÏÒÁ. ->> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ ÜÔÏ ÓÅÊÞÁÓ -- ÎÁÂÅÒÉÔÅ ÎÅÓËÏÌØËÏ ÓÉÍ×ÏÌÏ×, ÐÏÔÏÍ - ÕÄÁÌÉÔÅ ÉÈ ÎÁÖÉÍÁÑ ÎÅÓËÏÌØËÏ ÒÁÚ. îÅ ×ÏÌÎÕÊÔÅÓØ Ï ÉÚÍÅÎÅÎÉÑÈ - ÜÔÏÇÏ ÆÁÊÌÁ; ×Ù ÎÅ ÉÚÍÅÎÑÅÔÅ ÇÌÁ×ÎÙÊ ÕÞÅÂÎÉË. üÔÏ ×ÁÛÁ ÌÉÞÎÁÑ ËÏÐÉÑ - ÕÞÅÂÎÉËÁ. +>> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ ÜÔÏ ÓÅÊÞÁÓ -- ÎÁÂÅÒÉÔÅ ÎÅÓËÏÌØËÏ ÓÉÍ×ÏÌÏ×, Á ÚÁÔÅÍ + ÕÄÁÌÉÔÅ ÉÈ ÎÁÖÉÍÁÑ . îÅ ×ÏÌÎÕÊÔÅÓØ Ï ÉÚÍÅÎÅÎÉÑÈ ÜÔÏÇÏ ÆÁÊÌÁ -- + ×Ù ÎÅ ÉÚÍÅÎÑÅÔÅ ÇÌÁ×ÎÙÊ ÕÞÅÂÎÉË; ÜÔÏ ×ÁÛÁ ÌÉÞÎÁÑ ËÏÐÉÑ ÕÞÅÂÎÉËÁ. -ëÏÇÄÁ ÓÔÒÏËÁ ÔÅËÓÔÁ ÓÔÁÎÏ×ÉÔÓÑ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÄÌÑ ÓÔÒÏËÉ ÜËÒÁÎÁ, ÓÔÒÏËÁ -ÔÅËÓÔÁ "ÐÒÏÄÏÌÖÁÅÔÓÑ" ÎÁ ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ ÜËÒÁÎÁ. óÉÍ×ÏÌ "ÏÂÒÁÔÎÏÅ ÄÅÌÅÎÉÅ" -("\") (ÉÌÉ ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÏËÏÎÎÕÀ ÓÉÓÔÅÍÕ, ÔÏ ÍÁÌÅÎØËÁÑ ÉÚÏÇÎÕÔÁÑ -ÓÔÒÅÌËÁ) Ó ÐÒÁ×ÏÊ ÇÒÁÎÉÃÙ ÐÏËÁÚÙ×ÁÅÔ, ÞÔÏ ÓÔÒÏËÁ ÂÕÄÅÔ ÐÒÏÄÏÌÖÅÎÁ. +ëÏÇÄÁ ÓÔÒÏËÁ ÔÅËÓÔÁ ÓÔÁÎÏ×ÉÔÓÑ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÄÌÑ ÓÔÒÏËÉ ÜËÒÁÎÁ, ÔÏ ÏÎÁ +"ÐÒÏÄÏÌÖÁÅÔÓÑ" ÎÁ ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ ÜËÒÁÎÁ. óÉÍ×ÏÌ "ÏÂÒÁÔÎÙÊ ÓÌÜÛ" ("\") (ÉÌÉ +ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÏËÏÎÎÕÀ ÓÉÓÔÅÍÕ, ÔÏ ÜÔÏ ÂÕÄÅÔ ÚÎÁÞÏË × ×ÉÄÅ ÍÁÌÅÎØËÏÊ +ÉÚÏÇÎÕÔÏÊ ÓÔÒÅÌËÉ) Ó ÐÒÁ×ÏÊ ÇÒÁÎÉÃÙ ÐÏËÁÚÙ×ÁÅÔ, ÞÔÏ ÓÔÒÏËÁ ÂÕÄÅÔ +ÐÒÏÄÏÌÖÁÅÔÓÑ Ó ÐÒÅÄÙÄÕÝÅÊ ÓÔÒÏËÉ. ->> ÷×ÏÄÉÔÅ ÔÅËÓÔ, ÐÏËÁ ÎÅ ÄÏÓÔÉÇÎÉÔÅ ÐÒÁ×ÏÊ ÇÒÁÎÉÃÙ, É ÐÒÏÄÏÌÖÁÊÔÅ - ×ÓÔÁ×ËÕ. ÷Ù Õ×ÉÄÉÔÅ, ËÁË ÐÏÑ×ÉÔÓÑ ÓÉÍ×ÏÌ ÐÒÏÄÏÌÖÅÎÉÑ ÓÔÒÏËÉ. +>> ÷×ÏÄÉÔÅ ÔÅËÓÔ, ÐÏËÁ ÏÎ ÎÅ ÄÏÓÔÉÇÎÅÔ ÐÒÁ×ÏÊ ÇÒÁÎÉÃÙ, É ÐÒÏÄÏÌÖÁÊÔÅ ×ÓÔÁ×ËÕ + ÓÉÍ×ÏÌÏ×. ÷Ù Õ×ÉÄÉÔÅ, ËÁË ÐÏÑ×ÉÔÓÑ ÓÉÍ×ÏÌ ÐÒÏÄÏÌÖÅÎÉÑ ÓÔÒÏËÉ. ->> éÓÐÏÌØÚÕÊÔÅ ÄÌÑ ÕÄÁÌÅÎÉÑ ÔÅËÓÔÁ, ÐÏËÁ ÓÔÒÏËÁ ÎÅ ÐÏÍÅÓÔÉÔÓÑ × - ÜËÒÁÎ ÓÎÏ×Á. óÉÍ×ÏÌ ÐÒÏÄÏÌÖÅÎÉÑ ÓÔÒÏËÉ ÉÓÞÅÚÎÅÔ. +>> éÓÐÏÌØÚÕÊÔÅ ÄÌÑ ÕÄÁÌÅÎÉÑ ÔÅËÓÔÁ, ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ÓÔÒÏËÁ ÎÅ + ÐÏÍÅÓÔÉÔÓÑ × ÜËÒÁÎ ÓÎÏ×Á. óÉÍ×ÏÌ ÐÒÏÄÏÌÖÅÎÉÑ ÓÔÒÏËÉ ÉÓÞÅÚÎÅÔ Ó ÜËÒÁÎÁ. -íÏÖÎÏ ÕÄÁÌÑÔØ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ ÔÏÞÎÏ ÔÁË ÖÅ, ËÁË É ÌÀÂÏÊ ÄÒÕÇÏÊ. õÄÁÌÅÎÉÅ -ÓÉÍ×ÏÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ ÍÅÖÄÕ Ä×ÕÍÑ ÓÔÒÏËÁÍÉ ÐÒÉ×ÅÄÅÔ Ë ÓËÌÅÊËÅ ÉÈ × ÏÄÎÕ. åÓÌÉ -ÐÏÌÕÞÅÎÎÁÑ ÓÔÒÏËÁ ÓÌÉÛËÏÍ ÄÌÉÎÎÁÑ, ÞÔÏÂÙ ×ÍÅÓÔÉÔØÓÑ × ÜËÒÁÎ, ÏÎÁ ÂÕÄÅÔ -ÏÔÏÂÒÁÖÅÎÁ ËÁË ÐÒÏÄÏÌÖÅÎÎÁÑ ÓÔÒÏËÁ. +óÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ ÍÏÖÎÏ ÕÄÁÌÑÔØ ÔÏÞÎÏ ÔÁË ÖÅ, ËÁË É ÌÀÂÏÊ ÄÒÕÇÏÊ ÓÉÍ×ÏÌ. +õÄÁÌÅÎÉÅ ÓÉÍ×ÏÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ ÍÅÖÄÕ Ä×ÕÍÑ ÓÔÒÏËÁÍÉ ÐÒÉ×ÅÄÅÔ Ë ÉÈ ÓËÌÅÊËÅ × +ÏÄÎÕ. åÓÌÉ ÐÏÌÕÞÅÎÎÁÑ ÓÔÒÏËÁ ÂÕÄÅÔ ÓÌÉÛËÏÍ ÄÌÉÎÎÏÊ, ÞÔÏÂÙ ×ÍÅÓÔÉÔØÓÑ × +ÜËÒÁÎ, ÔÏ ÏÎÁ ÂÕÄÅÔ ÏÔÏÂÒÁÖÅÎÁ ËÁË ÓÔÒÏËÁ Ó ÐÒÏÄÏÌÖÅÎÉÅÍ, ËÁË ÜÔÏ ÂÙÌÏ +ÏÐÉÓÁÎÏ ×ÙÛÅ. ->> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ × ÎÁÞÁÌÏ ÓÔÒÏËÉ É ÎÁÖÍÉÔÅ . üÔÏ ÓÏÅÄÉÎÉÔ +>> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ × ÎÁÞÁÌÏ ÓÔÒÏËÉ É ÎÁÖÍÉÔÅ . üÔÏ ÓÏÅÄÉÎÉÔ ÔÅËÕÝÕÀ ÓÔÒÏËÕ Ó ÐÒÅÄÙÄÕÝÅÊ. ->> îÁÖÍÉÔÅ ÄÌÑ ×ÓÔÁ×ËÉ ÓÉÍ×ÏÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ ÓÎÏ×Á, ×ÍÅÓÔÏ - ÕÄÁÌÅÎÎÏÇÏ ×ÁÍÉ. +>> îÁÖÍÉÔÅ ÄÌÑ ×ÓÔÁ×ËÉ ÎÏ×ÏÇÏ ÓÉÍ×ÏÌÁ ÓÔÒÏËÉ, ×ÍÅÓÔÏ ÕÄÁÌÅÎÎÏÇÏ + ×ÁÍÉ. ðÏÍÎÉÔÅ, ÞÔÏ ÍÎÏÇÉÅ ËÏÍÁÎÄÙ Emacs ÍÏÇÕÔ ÐÏÌÕÞÁÔØ ÓÞÅÔÞÉË ÐÏ×ÔÏÒÅÎÉÑ; ÐÒÏÓÔÙÅ -ÓÉÍ×ÏÌÙ ÎÅ Ñ×ÌÑÀÔÓÑ ÉÓËÌÀÞÅÎÉÅÍ. îÁÂÉÒÁÊÔÅ ÐÒÏÓÔÙÅ ÓÉÍ×ÏÌÙ ×ÓÔÁ×ÌÑÑ ÉÈ ÐÏ -ÎÅÓËÏÌØËÏ ÚÁ ÏÄÉÎ ÒÁÚ. +ÓÉÍ×ÏÌÙ ÎÅ Ñ×ÌÑÀÔÓÑ ÉÓËÌÀÞÅÎÉÅÍ. ÷Ù ÍÏÖÅÔÅ ×ÓÔÁ×ÌÑÔØ ÐÏ ÎÅÓËÏÌØËÏ ÓÉÍ×ÏÌÏ×, +ÉÓÐÏÌØÚÕÑ ÓÞÅÔÞÉËÉ ÐÏ×ÔÏÒÅÎÉÊ. ->> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ ÜÔÏ -- ÎÁÂÅÒÉÔÅ C-u 8 * ÄÌÑ ×ÓÔÁ×ËÉ ********. +>> ðÏÐÒÏÂÕÊÔÅ ÐÒÏ×ÅÒÉÔØ ÜÔÏ -- ÎÁÂÅÒÉÔÅ C-u 8 * ÄÌÑ ×ÓÔÁ×ËÉ ********. -ôÅÐÅÒØ ×Ù ÎÁÕÞÉÌÉÓØ ÏÓÎÏ×ÎÏÍÕ ÓÐÏÓÏÂÕ ÎÁÂÒÁÔØ ÞÔÏ-ÎÉÂÕÄØ × Emacs É -ÉÓÐÒÁ×ÌÑÔØ ÏÛÉÂËÉ. ôÁË ÖÅ ×Ù ÍÏÖÅÔÅ ÕÄÁÌÑÔØ ÓÌÏ×Á É ÓÔÒÏËÉ. úÄÅÓØ ÓÏÂÒÁÎÙ -ÏÐÅÒÁÃÉÉ ÕÄÁÌÅÎÉÑ: +ôÅÐÅÒØ ×Ù ÎÁÕÞÉÌÉÓØ ÏÓÎÏ×ÁÍ ÎÁÂÏÒÁ ÔÅËÓÔÁ × Emacs É ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË. ÷Ù +ÔÁËÖÅ ÍÏÖÅÔÅ ÕÄÁÌÑÔØ ÓÌÏ×Á É ÓÔÒÏËÉ. úÄÅÓØ ÐÒÉ×ÅÄÅÎ ÓÐÉÓÏË ÏÐÅÒÁÃÉÊ +ÕÄÁÌÅÎÉÑ: - ÕÄÁÌÉÔØ ÓÉÍ×ÏÌ ÐÅÒÅÄ ËÕÒÓÏÒÏÍ + ÕÄÁÌÉÔØ ÓÉÍ×ÏÌ ÐÅÒÅÄ ËÕÒÓÏÒÏÍ C-d ÕÄÁÌÉÔØ ÓÉÍ×ÏÌ ÓÌÅÄÕÀÝÉÊ ÚÁ (ÎÁÄ) ËÕÒÓÏÒÏÍ - M- õÂÉÔØ ÓÔÒÏËÕ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÐÅÒÅÄ ËÕÒÓÏÒÏÍ + M- õÂÉÔØ ÓÔÒÏËÕ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÐÅÒÅÄ ËÕÒÓÏÒÏÍ M-d õÂÉÔØ ÓÌÏ×Ï ÓÌÅÄÕÀÝÅÅ ÚÁ ËÕÒÓÏÒÏÍ C-k õÂÉÔØ ×ÓÅ ÏÔ ËÕÒÓÏÒÁ ÄÏ ËÏÎÃÁ ÓÔÒÏËÉ M-k õÂÉÔØ ×ÓÅ ÄÏ ËÏÎÃÁ ÐÒÅÄÌÏÖÅÎÉÑ -úÁÍÅÔØÔÅ, ÞÔÏ É C-d ÐÒÏÔÉ× M- É M-d ÒÁÓÛÉÒÑÀÔ ÐÁÒÁÌÌÅÌØ -ÎÁÞÁÔÕÀ, C-f É M-f (ÄÁ, ÜÔÏ ÎÅ ÒÅÁÌØÎÙÊ ÕÐÒÁ×ÌÑÀÝÉÊ ÓÉÍ×ÏÌ, ÎÏ ÎÅ -ÎÕÖÎÏ ×ÏÌÎÏ×ÁÔØÓÑ Ï ÜÔÏÍ). C-k É M-k, ËÁË É C-e É M-e, ÐÒÏ×ÏÄÑÔ ÐÁÒÁÌÌÅÌØ -ÍÅÖÄÕ ÓÔÒÏËÁÍÉ É ÐÒÅÄÌÏÖÅÎÉÑÍÉ. +úÁÍÅÔØÔÅ, ÞÔÏ É C-d, ×ÍÅÓÔÅ Ó M- É M-d ÒÁÓÛÉÒÑÀÔ +ÐÁÒÁÌÌÅÌØ, ÎÁÞÁÔÕÀ C-f É M-f (ÄÁ, -- ÜÔÏ ÎÅ ÎÁÓÔÏÑÝÉÊ ÕÐÒÁ×ÌÑÀÝÉÊ +ÓÉÍ×ÏÌ, ÎÏ ÎÅ ÎÕÖÎÏ Ï ÜÔÏÍ ×ÏÌÎÏ×ÁÔØÓÑ). C-k É M-k, ËÁË É C-e É M-e, +ÐÒÏ×ÏÄÑÔ ÐÁÒÁÌÌÅÌØ ÍÅÖÄÕ ÓÔÒÏËÁÍÉ É ÐÒÅÄÌÏÖÅÎÉÑÍÉ. -÷Ù ÍÏÖÅÔÅ ÕÄÁÌÉÔØ ÌÀÂÕÀ ÞÁÓÔØ ÂÕÆÅÒÁ ÏÄÎÉÍ ÅÄÉÎÏÏÂÒÁÚÎÙÍ -ÍÅÔÏÄÏÍ. ðÅÒÅÍÅÓÔÉÔÅÓØ ÎÁ ÏÄÉÎ ÉÚ ËÏÎÃÏ× ÒÅÇÉÏÎÁ É ÎÁÂÅÒÉÔÅ type C-@ ÉÌÉ -C-SPC (ÏÄÎÕ ÉÚ ÎÉÈ). (SPC ÏÂÏÚÎÁÞÁÅÔ ËÌÁ×ÉÛÕ ÐÒÏÂÅÌÁ). ðÅÒÅÍÅÓÔÉÔÅÓØ ÎÁ -ÄÒÕÇÏÊ ËÏÎÅà ÒÅÇÉÏÎÁ É ÎÁÂÅÒÉÔÅ C-w. üÔÁ ÏÐÅÒÁÃÉÑ ÕÄÁÌÉÔ ×ÅÓØ ÔÅËÓÔ ÍÅÖÄÕ -Ä×ÕÍÑ ÕËÁÚÁÎÎÙÍÉ ÐÏÚÉÃÉÑÍÉ. +÷Ù ÍÏÖÅÔÅ ÕÄÁÌÉÔØ ÌÀÂÕÀ ÞÁÓÔØ ÂÕÆÅÒÁ ÏÄÎÉÍ ÍÅÔÏÄÏÍ. ðÅÒÅÍÅÓÔÉÔÅÓØ ÎÁ ÏÄÉÎ +ÉÚ ËÏÎÃÏ× ×ÙÂÒÁÎÎÏÊ ÏÂÌÁÓÔÉ É ÎÁÖÍÉÔÅ C-@ ÉÌÉ C- (ÏÄÎÏ ÉÚ ÜÔÉÈ +ÓÏÞÅÔÁÎÉÊ). úÄÅÓØ ÏÂÏÚÎÁÞÁÅÔ ËÌÁ×ÉÛÕ ÐÒÏÂÅÌÁ. ðÅÒÅÍÅÓÔÉÔÅÓØ ÎÁ ÄÒÕÇÏÊ +ËÏÎÅà ÏÂÌÁÓÔÉ É ÎÁÖÍÉÔÅ C-w. üÔÁ ÏÐÅÒÁÃÉÑ ÕÄÁÌÉÔ ×ÅÓØ ÔÅËÓÔ ÍÅÖÄÕ Ä×ÕÍÑ +ÕËÁÚÁÎÎÙÍÉ ÐÏÚÉÃÉÑÍÉ. ->> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ Ë ÂÕË×Å ÷ × ÎÁÞÁÌÏ ÐÒÅÄÙÄÕÝÅÇÏ ÐÁÒÁÇÒÁÆÁ. ->> îÁÂÅÒÉÔÅ C-SPC. Emacs ÄÏÌÖÅÎ ÏÔÏÂÒÁÚÉÔØ × ÎÉÖÎÅÊ ÞÁÓÔÉ ÜËÒÁÎÁ ÓÏÏÂÝÅÎÉÅ +>> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ Ë ÂÕË×Å ÷ × ÎÁÞÁÌÅ ÐÒÅÄÙÄÕÝÅÇÏ ÐÁÒÁÇÒÁÆÁ. +>> îÁÂÅÒÉÔÅ C-. Emacs ÄÏÌÖÅÎ ÏÔÏÂÒÁÚÉÔØ × ÎÉÖÎÅÊ ÞÁÓÔÉ ÜËÒÁÎÁ ÓÏÏÂÝÅÎÉÅ "Mark set". >> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ Ë ÂÕË×Å Ï × ÓÌÏ×Å "ËÏÎÃÏ×", ÎÁ ×ÔÏÒÏÊ ÓÔÒÏËÅ ÐÁÒÁÇÒÁÆÁ. @@ -393,412 +410,451 @@ C-SPC ( ïÔÌÉÞÉÅ ÍÅÖÄÕ "ÕÂÉÔØ (killing)" É "ÕÄÁÌÉÔØ (deleting)" ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ, ÞÔÏ "ÕÂÉÔÙÊ" ÔÅËÓÔ ÍÏÖÅÔ ÂÙÔØ ÚÁÎÏ×Ï ×ÓÔÁ×ÌÅÎ, × ÔÏ ×ÒÅÍÑ ËÁË "ÕÄÁÌÅÎÎÙÅ" ÞÁÓÔÉ ÎÅ ÍÏÇÕÔ ÂÙÔØ ×ÓÔÁ×ÌÅÎÙ. ÷ÓÔÁ×ËÁ "ÕÂÉÔÏÇÏ" ÔÅËÓÔÁ ÎÁÚÙ×ÁÅÔÓÑ -"×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ (yanking)". ÷ ÏÂÝÅÍ, ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÕÄÁÌÑÔØ ÂÏÌØÛÉÅ -ÞÁÓÔÉ ÔÅËÓÔÁ, ÕÄÁÌÑÀÔ ÜÔÏÔ ÔÅËÓÔ (ÏÎÉ ÔÁË ÎÁÓÔÒÁÉ×ÁÀÔÓÑ ÔÁË, ÞÔÏ ×Ù ÍÏÖÅÔÅ -×ÏÓÓÔÁÎÏ×ÉÔØ ÔÅËÓÔ), × ÔÏ ×ÒÅÍÑ ËÁË ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÕÄÁÌÑÀÔ ÔÏÌØËÏ ÏÄÉÎ -ÓÉÍ×ÏÌ, ÉÌÉ ÔÏÌØËÏ ÐÕÓÔÙÅ ÓÔÒÏËÉ É ÐÒÏÂÅÌØÎÙÅ ÓÉÍ×ÏÌÙ, ×ÙÐÏÌÎÑÀÔ ÕÄÁÌÅÎÉÅ -(ÔÁË ÞÔÏ ×Ù ÎÅ ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÔÅËÓÔ). +"×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ (yanking)". ÷ ÏÂÝÅÍ, ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÕÂÉÒÁÔØ ÂÏÌØÛÉÅ +ÞÁÓÔÉ ÔÅËÓÔÁ, ÕÂÉ×ÁÀÔ ÜÔÏÔ ÔÅËÓÔ (ÏÎÉ ÎÁÓÔÒÁÉ×ÁÀÔÓÑ ÔÁË, ÞÔÏ ×Ù ÍÏÖÅÔÅ +×ÏÓÓÔÁÎÏ×ÉÔØ ÔÅËÓÔ), × ÔÏ ×ÒÅÍÑ ËÁË ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÕÂÉÒÁÀÔ ÔÏÌØËÏ ÏÄÉÎ +ÓÉÍ×ÏÌ, ÉÌÉ ÕÄÁÌÑÀÔ ÔÏÌØËÏ ÐÕÓÔÙÅ ÓÔÒÏËÉ É ÐÒÏÂÅÌØÎÙÅ ÓÉÍ×ÏÌÙ, ×ÙÐÏÌÎÑÀÔ +ÏÐÅÒÁÃÉÀ ÕÄÁÌÅÎÉÑ (ÔÁË ÞÔÏ ×Ù ÎÅ ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÔÅËÓÔ). ->> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÎÁÞÁÌÏ ÎÅÐÕÓÔÏÊ ÓÔÒÏËÉ. ôÅÐÅÒØ ÎÁÖÍÉÔÅ C-k ÞÔÏÂÙ +>> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÎÁÞÁÌÏ ÎÅ ÐÕÓÔÏÊ ÓÔÒÏËÉ. ôÅÐÅÒØ ÎÁÖÍÉÔÅ C-k, ÞÔÏÂÙ ÕÂÉÔØ ÔÅËÓÔ × ÜÔÏÊ ÓÔÒÏËÅ. ->> îÁÖÍÉÔÅ C-k ÅÝÅ ÒÁÚ. ÷Ù ×ÉÄÉÔÅ, ÞÔÏ ÜÔÏ ÕÂØÅÔ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ - ÓÌÅÄÕÀÝÉÊ ÚÁ ÜÔÏÊ ÓÔÒÏËÏÊ. +>> îÁÖÍÉÔÅ C-k ÅÝÅ ÒÁÚ. ÷Ù ×ÉÄÉÔÅ, ÞÔÏ ÜÔÏ ÄÅÊÓÔ×ÉÅ ÕÂØÅÔ ÓÉÍ×ÏÌ ÎÏ×ÏÊ + ÓÔÒÏËÉ, ËÏÔÏÒÙÊ ÓÌÅÄÕÅÔ ÚÁ ÜÔÏÊ ÓÔÒÏËÏÊ. -úÁÍÅÔØÔÅ, ÞÔÏ ÐÅÒ×ÏÅ C-k ÕÂÉ×ÁÅÔ ÓÏÄÅÒÖÉÍÏÅ ÓÔÒÏËÉ, Á ×ÔÏÒÏÅ C-k ÕÂÉ×ÁÅÔ -ÓÁÍÕ ÓÔÒÏËÕ É ÐÏÄÎÉÍÁÅÔ ÄÒÕÇÉÅ ÓÔÒÏËÉ ××ÅÒÈ. C-k ÏÂÒÁÂÁÔÙ×ÁÅÔ ÞÉÓÌÏ×ÏÊ -ÁÒÇÕÍÅÎÔ ÓÐÅÃÉÁÌØÎÙÍ ÏÂÒÁÚÏÍ: ÕÂÉ×ÁÅÔ ÍÎÏÇÏ ÓÔÒÏË _é_ ÉÈ ÓÏÄÅÒÖÉÍÏÅ. üÔÏ ÎÅ -ÐÒÏÓÔÏ ÐÏ×ÔÏÒÅÎÉÅ. C-u 2 C-k ÕÄÁÌÉÔ Ä×Å ÓÔÒÏÉ É ÚÁ×ÅÒÛÁÀÝÉÅ ÉÈ ÓÉÍ×ÏÌÙ ÎÏ×ÏÊ -ÓÔÒÏËÉ; ××ÏÄ C-k Ä×Á ÒÁÚÁ ÎÅ ÓÄÅÌÁÅÔ ÜÔÏÇÏ. +úÁÍÅÔØÔÅ, ÞÔÏ ÐÅÒ×ÏÅ ×ÙÐÏÌÎÅÎÉÅ C-k ÕÂÉ×ÁÅÔ ÓÏÄÅÒÖÉÍÏÅ ÓÔÒÏËÉ, Á ×ÔÏÒÏÊ +×ÙÚÏ× C-k ÕÂÉ×ÁÅÔ ÓÁÍÕ ÓÔÒÏËÕ É ÐÏÄÎÉÍÁÅÔ ÄÒÕÇÉÅ ÓÔÒÏËÉ ××ÅÒÈ. C-k +ÏÂÒÁÂÁÔÙ×ÁÅÔ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÓÐÅÃÉÁÌØÎÙÍ ÏÂÒÁÚÏÍ -- ÕÂÉ×ÁÅÔ ÚÁÄÁÎÎÏÅ +ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË _é_ ÉÈ ÓÏÄÅÒÖÉÍÏÅ. üÔÏ ÎÅ ÐÒÏÓÔÏ ÐÏ×ÔÏÒÅÎÉÅ ËÏÍÁÎÄÙ. C-u 2 +C-k ÕÄÁÌÉÔ Ä×Å ÓÔÒÏËÉ, Á ÔÁËÖÅ ÚÁ×ÅÒÛÁÀÝÉÅ ÉÈ ÓÉÍ×ÏÌÙ ÎÏ×ÏÊ ÓÔÒÏËÉ; +Ä×ÕÈÒÁÚÏ×ÏÅ ×ÙÐÏÌÎÅÎÉÅ C-k ÎÅ ÓÄÅÌÁÅÔ ÜÔÏÇÏ. -÷ÏÚ×ÒÁÔ ÎÁÚÁÄ ÕÂÉÔÏÇÏ ÔÅËÓÔÁ ÎÁÚÙ×ÁÅÔÓÑ "×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ (yanking)". (äÕÍÁÊÔÅ +÷ÏÚ×ÒÁÔ ÕÂÉÔÏÇÏ ÒÁÎÅÅ ÔÅËÓÔÁ ÎÁÚÙ×ÁÅÔÓÑ "×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ (yanking)". (äÕÍÁÊÔÅ Ï ÜÔÏÍ, ËÁË Ï ×ÏÓÓÔÁÎÏ×ÌÅÎÉÉ ÉÌÉ ÐÏÍÅÝÅÎÉÉ ÎÁÚÁÄ, ÎÅËÏÔÏÒÏÇÏ ×ÚÑÔÏÇÏ -ÔÅËÓÔÁ). ÷Ù ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÕÄÁÌÅÎÎÙÊ ÔÅËÓÔ × ÔÏÍ ÖÅ ÍÅÓÔÅ, ÉÌÉ × ÌÀÂÏÊ -ÄÒÕÇÏÊ ÔÏÞËÅ ÂÕÆÅÒÁ, ÉÌÉ ÄÁÖÅ × ÄÒÕÇÏÍ ÆÁÊÌÅ. ÷Ù ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÔÅËÓÔ -ÎÅÓËÏÌØËÏ ÒÁÚ É ÐÏÌÕÞÉÔØ ÍÎÏÇÏ ËÏÐÉÊ. +ÔÅËÓÔÁ). ÷Ù ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÕÄÁÌÅÎÎÙÊ ÔÅËÓÔ × ÍÅÓÔÅ ÕÄÁÌÅÎÉÑ, ÉÌÉ × +ÌÀÂÏÊ ÄÒÕÇÏÊ ÔÏÞËÅ ÒÅÄÁËÔÉÒÕÅÍÏÇÏ ÔÅËÓÔÁ, ÉÌÉ ÄÁÖÅ × ÄÒÕÇÏÍ ÆÁÊÌÅ. ÷Ù +ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÔÅËÓÔ ÎÅÓËÏÌØËÏ ÒÁÚ É ÐÏÌÕÞÉÔØ ÎÅÓËÏÌØËÏ ËÏÐÉÊ ÄÁÎÎÏÇÏ +ÔÅËÓÔÁ. -ëÏÍÁÎÄÏÊ ÄÌÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ ÔÅËÓÔÁ Ñ×ÌÑÅÔÓÑ C-y. ïÎÁ ×ÏÓÓÔÁÎÁ×ÌÉ×ÁÅÔ -ÐÏÓÌÅÄÎÉÊ ÕÂÉÔÙÊ ÔÅËÓÔ × ÍÅÓÔÏ ÒÁÓÐÏÌÏÖÅÎÉÅ ËÕÒÓÏÒÁ. +äÌÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ ÕÂÉÔÏÇÏ ÔÅËÓÔÁ ÉÓÐÏÌØÚÕÅÔÓÑ ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ C-y. äÁÎÎÁÑ +ËÏÍÁÎÄÁ ×ÏÓÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÏÓÌÅÄÎÉÊ ÕÂÉÔÙÊ ÔÅËÓÔ × ÔÏÞËÅ ÒÁÓÐÏÌÏÖÅÎÉÑ ËÕÒÓÏÒÁ. ->> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ ÜÔÏ; ÎÁÂÅÒÉÔÅ C-y ÞÔÏ ×ÅÒÎÕÔØ ÔÅËÓÔ ÎÁÚÁÄ. +>> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ -- ÎÁÂÅÒÉÔÅ C-y, ÞÔÏÂÙ ×ÅÒÎÕÔØ ÔÅËÓÔ + ÎÁÚÁÄ. -ðÏÍÎÉÔÅ, ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÏ×ÁÌÉ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ C-k × ÓÔÒÏËÅ, ×ÓÅ ÕÂÉÔÙÅ -ÓÔÒÏËÉ ÂÕÄÕÔ ÓÏÈÒÁÎÅÎÙ ×ÍÅÓÔÅ, ÔÁË, ÞÔÏ C-y ×ÏÓÓÔÁÎÏ×ÉÔ ÉÈ ×ÍÅÓÔÅ. +ðÏÍÎÉÔÅ, ÞÔÏ ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÏ×ÁÌÉ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ C-k × ÏÄÎÏÊ ÓÔÒÏËÅ, ÔÏ +×ÓÅ ÕÂÉÔÙÅ ÓÔÒÏËÉ ÂÕÄÕÔ ÓÏÈÒÁÎÅÎÙ ×ÍÅÓÔÅ, ÔÁË, ÞÔÏ C-y ÔÁËÖÅ ×ÏÓÓÔÁÎÏ×ÉÔ ÉÈ +×ÍÅÓÔÅ. ->> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ ÜÔÏ ÓÅÊÞÁÓ, ÎÁÖÍÉÔÅ C-k ÎÅÓËÏÌØËÏ ÒÁÚ. +>> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ ÜÔÏ ÓÅÊÞÁÓ -- ÎÁÖÍÉÔÅ C-k ÎÅÓËÏÌØËÏ ÒÁÚ. -ôÅÐÅÒØ ×ÅÒÎÅÍ ÜÔÏÔ ÕÂÉÔÙÊ ÔÅËÓÔ: +ôÅÐÅÒØ ×ÅÒÎÅÍ ÕÂÉÔÙÊ ÔÅËÓÔ: ->> îÁÖÍÉÔÅ C-y. ôÅÐÅÒØ ÐÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÎÅÓËÏÌØËÏ ÓÔÒÏË ×ÎÉÚ, É ÓÎÏ×Á - ÎÁÖÍÉÔÅ C-y. óÅÊÞÁÓ ×Ù ×ÉÄÉÔÅ ËÁË ÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÎÅËÏÔÏÒÙÊ ÔÅËÓÔ. +>> îÁÖÍÉÔÅ C-y. ôÅÐÅÒØ ÐÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÎÅÓËÏÌØËÏ ÓÔÒÏË ×ÎÉÚ, É ÓÎÏ×Á + ÎÁÖÍÉÔÅ C-y. óÅÊÞÁÓ ×Ù ×ÉÄÉÔÅ ËÁË ÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÎÅËÏÔÏÒÙÊ ÔÅËÓÔ. -þÔÏ ÄÅÌÁÔØ, ÅÓÌÉ ÅÓÔØ ÎÅËÏÔÏÒÙÊ ÔÅËÓÔ, ËÏÔÏÒÙÊ ×Ù ÈÏÔÉÔÅ ×ÅÒÎÕÔØ ÎÁÚÁÄ É -ÐÏÔÏÍ ÕÂÉÔØ ÞÔÏ-ÔÏ ÅÝÅ? C-y ×ÅÒÎÅÔ ÎÅ ÂÏÌÅÅ ÞÅÍ ÐÏÓÌÅÄÎÉÊ ÕÄÁÌÅÎÎÙÊ ÔÅËÓÔ. -îÏ ÐÒÅÄÙÄÕÝÉÊ ÔÅËÓÔ ÎÅ ÂÕÄÅÔ ÐÏÔÅÒÑÎ. ÷Ù ÓÍÏÖÅÔÅ ÅÇÏ ×ÅÒÎÕÔØ ÎÁÚÁÄ ÉÓÐÏÌØÚÕÑ -ËÏÍÁÎÄÕ M-y. ðÏÓÌÅ ÔÏÇÏ ËÁË ×Ù ×ÅÒÎÕÌÉ ÐÏÓÌÅÄÎÉÊ ÕÄÁÌÅÎÎÙÊ ÔÅËÓÔ, ÎÁÖÍÉÔÅ -M-y, É ÚÁÍÅÎÉÔÅ ÜÔÏÔ ×ÏÓÓÔÁÎÏ×ÌÅÎÎÙÊ ÔÅËÓÔ ÔÅÍ, ËÏÔÏÒÙÊ ÂÙÌ ÕÂÉÔ ÒÁÎÅÅ. -îÁÖÁÔÉÅ M-y ÓÎÏ×Á É ÓÎÏ×Á ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØ ÒÁÎÅÅ ÕÂÉÔÙÊ ÔÅËÓÔ. ëÏÇÄÁ ×Ù -ÄÏÓÔÉÇÎÉÔÅ ÉÓËÏÍÏÇÏ ÔÅËÓÔÁ, ×ÁÍ ÎÅ ÎÕÖÎÏ ÄÅÌÁÔØ ÎÉÞÅÇÏ ÂÏÌÅÅ ÞÔÏÂÙ ÓÏÈÒÁÎÉÔØ -ÅÇÏ. ðÒÏÓÔÏ ÐÒÏÄÏÌÖÁÊÔÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ, ÏÓÔÁ×É× ×ÏÓÓÔÁÎÏ×ÌÅÎÎÙÊ ÔÅËÓÔ ÔÁÍ, -ÇÄÅ ÏÎ ÅÓÔØ. +þÔÏ ÄÅÌÁÔØ, ÅÓÌÉ ÅÓÔØ ÎÅËÏÔÏÒÙÊ ÔÅËÓÔ, ËÏÔÏÒÙÊ ×Ù ÈÏÔÉÔÅ ×ÅÒÎÕÔØ ÎÁÚÁÄ, Á +ÐÏÔÏÍ ÕÂÉÔØ ÞÔÏ-ÔÏ ÅÝÅ? ïÄÎÏ ÎÁÖÁÔÉÅ C-y ×ÅÒÎÅÔ ÔÏÌØËÏ ÐÏÓÌÅÄÎÉÊ ÕÄÁÌÅÎÎÙÊ +ÔÅËÓÔ. îÏ ÐÒÅÄÙÄÕÝÉÊ ÔÅËÓÔ ÎÅ ÂÕÄÅÔ ÐÏÔÅÒÑÎ -- ×Ù ÓÍÏÖÅÔÅ ÅÇÏ ×ÅÒÎÕÔØ +ÎÁÚÁÄ, ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ M-y. ðÏÓÌÅ ÔÏÇÏ, ËÁË ×Ù ×ÅÒÎÕÌÉ ÐÏÓÌÅÄÎÉÊ +ÕÄÁÌÅÎÎÙÊ ÔÅËÓÔ, ÎÁÖÍÉÔÅ M-y, É ÚÁÍÅÎÉÔÅ ÜÔÏÔ ×ÏÓÓÔÁÎÏ×ÌÅÎÎÙÊ ÔÅËÓÔ ÔÅÍ, +ËÏÔÏÒÙÊ ÂÙÌ ÕÂÉÔ ÒÁÎÅÅ. îÁÖÉÍÁÑ M-y ÓÎÏ×Á É ÓÎÏ×Á, ×Ù ÂÕÄÅÔÅ ×ÏÚ×ÒÁÝÁÔØ +ÒÁÎÅÅ ÕÂÉÔÙÅ ÞÁÓÔÉ ÔÅËÓÔÁ. ëÏÇÄÁ ×Ù ÄÏÓÔÉÇÎÉÔÅ ÉÓËÏÍÏÇÏ ÔÅËÓÔÁ, ÔÏ ×ÁÍ ÎÅ +ÎÕÖÎÏ ÄÅÌÁÔØ ÎÉÞÅÇÏ ÞÔÏÂÙ ÓÏÈÒÁÎÉÔØ ÅÇÏ. ðÒÏÓÔÏ ÐÒÏÄÏÌÖÁÊÔÅ ÒÁÂÏÔÁÔØ, +ÏÓÔÁ×É× ×ÏÓÓÔÁÎÏ×ÌÅÎÎÙÊ ÔÅËÓÔ ÔÁÍ, ÇÄÅ ÏÎ ÅÓÔØ. îÁÖÉÍÁÑ M-y ÄÏÓÔÁÔÏÞÎÏÅ ÞÉÓÌÏ ÒÁÚ, ×Ù ÍÏÖÅÔÅ ×ÅÒÎÕÔØÓÑ × ÎÁÞÁÌØÎÕÀ ÔÏÞËÕ (ÎÁÉÂÏÌÅÅ ÒÁÎÎÅÅ ÕÄÁÌÅÎÉÅ). ->> õÂÅÊÔÅ ÓÔÒÏËÕ, ÐÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ×ÏËÒÕÇ ÜÔÏÊ ÔÏÞËÉ, ÐÏÔÏÍ ÕÄÁÌÉÔÅ ÅÝÅ - ÏÄÎÕ ÓÔÒÏËÕ. úÁÔÅÍ ÉÓÐÏÌØÚÕÊÔÅ C-y ÄÌÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ ×ÔÏÒÏÊ ÕÂÉÔÏÊ - ÓÔÒÏËÉ. úÁÔÅÍ ÉÓÐÏÌØÚÕÊÔÅ M-y É ÏÎÁ ÂÕÄÅÔ ÚÁÍÅÎÅÎÁ ÐÅÒ×ÏÊ ÕÂÉÔÏÊ - ÓÔÒÏËÏÊ. îÁÖÍÉÔÅ M-y ÅÝÅ ÎÅÓËÏÌØËÏ ÒÁÚ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ÐÏÌÕÞÅÎÎÙÊ - ÒÅÚÕÌØÔÁÔ. ðÒÏÄÏÌÖÁÊÔÅ ÄÅÌÁÔØ ÜÔÏ, ÐÏËÁ ×ÔÏÒÁÑ ÕÂÉÔÁÑ ÓÔÒÏËÁ ÎÅ ×ÅÒÎÅÔÓÑ, - É ÅÝÅ ÞÕÔØ-ÞÕÔØ. åÓÌÉ ×ÁÍ ÈÏÞÅÔÓÑ, ÔÏ ×Ù ÍÏÖÅÔÅ ÚÁÄÁ×ÁÔØ ÄÌÑ M-y - ÐÏÌÏÖÉÔÅÌØÎÙÅ É ÏÔÒÉÃÁÔÅÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ. +>> õÂÅÊÔÅ ÓÔÒÏËÕ, ÐÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ, É ÕÄÁÌÉÔÅ ÅÝÅ ÏÄÎÕ ÓÔÒÏËÕ. úÁÔÅÍ + ÉÓÐÏÌØÚÕÊÔÅ C-y ÄÌÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ ×ÔÏÒÏÊ ÕÂÉÔÏÊ ÓÔÒÏËÉ, Á ÚÁÔÅÍ ÎÁÖÍÉÔÅ + M-y, É ÏÎÁ ÂÕÄÅÔ ÚÁÍÅÎÅÎÁ ÐÅÒ×ÏÊ ÕÂÉÔÏÊ ÓÔÒÏËÏÊ. îÁÖÍÉÔÅ M-y ÅÝÅ + ÎÅÓËÏÌØËÏ ÒÁÚ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ÐÏÌÕÞÅÎÎÙÊ ÒÅÚÕÌØÔÁÔ. ðÒÏÄÏÌÖÁÊÔÅ ×ÙÐÏÌÎÑÔØ + ÜÔÕ ËÏÍÁÎÄÕ ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ×ÔÏÒÁÑ ÕÂÉÔÁÑ ÓÔÒÏËÁ ÎÅ ÂÕÄÅÔ ×ÏÓÓÔÁÎÏ×ÌÅÎÁ + ÓÎÏ×Á. åÓÌÉ ×ÁÍ ÈÏÞÅÔÓÑ, ÔÏ ×Ù ÍÏÖÅÔÅ ÚÁÄÁ×ÁÔØ ÐÏÌÏÖÉÔÅÌØÎÙÅ É + ÏÔÒÉÃÁÔÅÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ËÏÍÁÎÄÙ M-y. * ïôíåîá (UNDO) --------------- -åÓÌÉ ×Ù ÓÄÅÌÁÌÉ ÉÚÍÅÎÅÎÉÑ × ÔÅËÓÔÅ, É ÒÅÛÉÌÉ, ÞÔÏ ÏÛÉÂÌÉÓØ, ÍÏÖÅÔÅ -ÏÔÍÅÎÉÔØ ÉÚÍÅÎÅÎÉÑ ËÏÍÁÎÄÏÊ "ÏÔÍÅÎÁ", C-x u. +åÓÌÉ ×Ù ÓÄÅÌÁÌÉ ÉÚÍÅÎÅÎÉÑ × ÔÅËÓÔÅ, É ÒÅÛÉÌÉ, ÞÔÏ ÏÛÉÂÌÉÓØ, ÔÏ ×Ù ÍÏÖÅÔÅ +ÏÔÍÅÎÉÔØ ÉÚÍÅÎÅÎÉÑ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ "ÏÔÍÅÎÁ", ËÏÔÏÒÁÑ ÐÒÉ×ÑÚÁÎÁ Ë ÓÏÞÅÔÁÎÉÀ +ËÌÁ×ÉÛ C-x u. ïÂÙÞÎÏ, C-x u ÏÔÍÅÎÑÅÔ ÉÚÍÅÎÅÎÉÑ, ÓÄÅÌÁÎÎÙÅ ÏÄÎÏÊ ËÏÍÁÎÄÏÊ; ÅÓÌÉ ÐÏ×ÔÏÒÉÔØ -C-x u ÎÅÓËÏÌØËÏ ÒÁÚ ÐÏÄÒÑÄ, ËÁÖÄÙÊ ÒÁÚ ÂÕÄÅÔ ÏÔÍÅÎÑÔØÓÑ ÅÝÅ ÏÄÎÁ ËÏÍÁÎÄÁ. +C-x u ÎÅÓËÏÌØËÏ ÒÁÚ ÐÏÄÒÑÄ, ÔÏ ËÁÖÄÙÊ ÒÁÚ ÂÕÄÅÔ ÏÔÍÅÎÑÔØÓÑ ÅÝÅ ÏÄÎÁ ËÏÍÁÎÄÁ. -îÏ ÅÓÔØ Ä×Á ÉÓËÌÀÞÅÎÉÑ: ËÏÍÁÎÄÙ ËÏÔÏÒÙÅ ÎÅ ÉÚÍÅÎÑÀÔ ÔÅËÓÔ ÎÅ ÕÞÉÔÙ×ÁÀÔÓÑ -(ÜÔÏ ×ËÌÀÞÁÅÔ ËÏÍÁÎÄÙ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ É ÐÒÏËÒÕÔËÉ), É ÓÁÍÏ×ÓÔÁ×ÌÑÀÝÉÅÓÑ -(self-inserting) ÓÉÍ×ÏÌÙ ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ ÇÒÕÐÐÁÍÉ ÄÏ 20. (üÔÏ ÕÍÅÎØÛÁÅÔ -ÞÉÓÌÏ C-x u ËÏÔÏÒÙÅ ×Ù ÍÏÖÅÔÅ ÎÁÂÒÁÔØ ÄÌÑ ÏÔÍÅÎÙ ××ÏÄÁ ÔÅËÓÔÁ). +îÏ ÅÓÔØ Ä×Á ÉÓËÌÀÞÅÎÉÑ -- ËÏÍÁÎÄÙ ÎÅ ÉÚÍÅÎÑÀÝÉÅ ÔÅËÓÔ, ÎÅ ÕÞÉÔÙ×ÁÀÔÓÑ (ÓÀÄÁ +×ËÌÀÞÁÅÔÓÑ ËÏÍÁÎÄÙ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ É ÐÒÏËÒÕÔËÉ), É ËÏÍÁÎÄÙ ×ÓÔÁ×ËÉ +ÓÉÍ×ÏÌÏ× ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ ÇÒÕÐÐÁÍÉ ÄÏ 20 ÓÉÍ×ÏÌÏ×. (üÔÏ ÕÍÅÎØÛÁÅÔ ÞÉÓÌÏ +ÎÁÖÁÔÉÊ C-x u ËÏÔÏÒÙÅ ×ÁÍ ÎÕÖÎÏ ÂÕÄÅÔ ÎÁÂÒÁÔØ ÄÌÑ ÏÔÍÅÎÙ ××ÏÄÁ ÔÅËÓÔÁ). ->> õÂÅÊÔÅ ÜÔÕ ÓÔÒÏËÕ ÉÓÐÏÌØÚÕÑ C-k, ÚÁÔÅÍ ÎÁÂÅÒÉÔÅ C-x u É ÏÎÁ ÄÏÌÖÎÁ +>> õÂÅÊÔÅ ÜÔÕ ÓÔÒÏËÕ Ó ÐÏÍÏÝØÀ C-k, Á ÚÁÔÅÍ ÎÁÂÅÒÉÔÅ C-x u É ÓÔÒÏËÁ ÄÏÌÖÎÁ ×ÅÒÎÕÔØÓÑ ÎÁÚÁÄ. -C-_ ÁÌØÔÅÒÎÁÔÉ×ÎÁÑ ËÏÍÁÎÄÁ ÏÔÍÅÎÙ; ÏÎÁ ÒÁÂÏÔÁÅÔ ÔÁËÖÅ ËÁË É C-x u, ÎÏ ÌÅÇÞÅ -× ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÎÅÓËÏÌØËÏ ÒÁÚ ÐÏÄÒÑÄ. îÅÕÄÏÂÎÏÅ ÐÏÌÏÖÅÎÉÅ C-_ Á ÎÁ ÎÅËÏÔÏÒÙÈ -ËÌÁ×ÉÁÔÕÒÁÈ ÄÅÌÁÅÔ ÎÅÏÞÅ×ÉÄÎÙÍ ÓÐÏÓÏ ÅÅ ÎÁÂÏÒÁ. ðÏÜÔÏÍÕ ÍÙ ÐÒÅÄÌÁÇÁÅÍ -ÉÓÐÏÌØÚÏ×ÁÔØ C-x u. îÁ ÎÅËÏÔÏÒÙÈ ÔÅÒÍÉÎÁÌÁÈ, ×Ù ÍÏÖÅÔÅ ÎÁÂÉÒÁÔØ C-_ ÎÁÖÉÍÁÑ -/ É ÕÄÅÒÖÉ×ÁÑ ËÌÁ×ÉÛÕ CONTROL. +C-_ -- ÜÔÏ ÅÝÅ ËÏÍÁÎÄÁ ÏÔÍÅÎÙ; ÏÎÁ ÒÁÂÏÔÁÅÔ ÔÏÞÎÏ ÔÁËÖÅ ËÁË É C-x u, ÎÏ +ÌÅÇÞÅ × ÉÓÐÏÌØÚÏ×ÁÎÉÉ, ÅÓÌÉ ×ÁÍ ÎÕÖÎÏ ×ÙÐÏÌÎÉÔØ ÅÅ ÎÅÓËÏÌØËÏ ÒÁÚ +ÐÏÄÒÑÄ. îÅÕÄÏÂÎÏÅ ÐÏÌÏÖÅÎÉÅ C-_ ÎÁ ÎÅËÏÔÏÒÙÈ ËÌÁ×ÉÁÔÕÒÁÈ ÄÅÌÁÅÔ ÎÅ ÏÞÅ×ÉÄÎÙÍ +ÓÐÏÓÏ ÅÅ ÎÁÂÏÒÁ. ðÏÜÔÏÍÕ ÍÙ ÐÒÅÄÌÁÇÁÅÍ ÉÓÐÏÌØÚÏ×ÁÔØ C-x u. îÁ ÎÅËÏÔÏÒÙÈ +ÔÅÒÍÉÎÁÌÁÈ, ×Ù ÍÏÖÅÔÅ ÎÁÂÉÒÁÔØ C-_, ÎÁÖÉÍÁÑ / É ÕÄÅÒÖÉ×ÁÑ ËÌÁ×ÉÛÕ CONTROL. -þÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ C-_ ÉÌÉ C-x u ÒÁÂÏÔÁÅÔ ËÁË ÓÞÅÔÞÉË ÐÏ×ÔÏÒÅÎÉÑ. +þÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ C-_ ÉÌÉ C-x u ÉÓÐÏÌØÚÕÅÔÓÑ ËÁË ÓÞÅÔÞÉË ÐÏ×ÔÏÒÅÎÉÊ. -÷Ù ÍÏÖÅÔÅ ÏÔÍÅÎÉÔØ ÕÄÁÌÅÎÉÅ ÔÅËÓÔÁ ÔÏÞÎÏ ÔÁËÖÅ ËÁË ÏÔÍÅÎÕ ÕÂÉÔÉÑ -ÔÅËÓÔÁ. ïÔÌÉÞÉÅ ÍÅÖÄÕ ÕÂÉÊÓÔ×ÏÍ É ÕÄÁÌÅÎÉÅÍ ÞÅÇÏ-ÌÉÂÏ ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ, ÞÔÏ -×Ù ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÕÂÉÔÙÊ ÔÅËÓÔ Ó ÐÏÍÏÝØÀ C-y; ÎÏ ÜÔÏ ÎÅ ÄÅÌÁÅÔ ÒÁÚÌÉÞÉÊ -ÄÌÑ ÏÔÍÅÎÙ. +÷Ù ÍÏÖÅÔÅ ÏÔÍÅÎÉÔØ ÕÄÁÌÅÎÉÅ ÔÅËÓÔÁ ÔÏÞÎÏ ÔÁË ÖÅ, ËÁË É ÏÔÍÅÎÕ ÕÂÉÔÉÑ ÔÅËÓÔÁ. +ïÔÌÉÞÉÅ ÍÅÖÄÕ ÕÂÉÊÓÔ×ÏÍ É ÕÄÁÌÅÎÉÅÍ ÞÅÇÏ-ÌÉÂÏ ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ, ÞÔÏ ×Ù +ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÕÂÉÔÙÊ ÔÅËÓÔ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ C-y; ÎÏ ÄÌÑ ËÏÍÁÎÄÙ +ÏÔÍÅÎÙ ÎÅÔ ÎÉËÁËÏÊ ÒÁÚÎÉÃÙ ÍÅÖÄÕ ÜÔÉÍÉ ÏÐÅÒÁÃÉÑÍÉ. * æáêìù ------- -þÔÏÂÙ ÓÏÚÄÁÎÎÙÊ ÔÅËÓÔ ÍÏÖÎÏ ÂÙÌÏ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÐÏÚÖÅ, ×Ù ÄÏÌÖÎÙ ÅÇÏ -ÐÏÍÅÓÔÉÔØ × ÆÁÊÌ. éÎÁÞÅ, ÏÎ ÉÓÞÅÚÎÅÔ ËÏÇÄÁ ×Ù ×ÙÊÄÉÔÅ ÉÚ Emacs. ÷Ù ÐÏÍÅÝÁÅÔÅ -×ÁÛ ÔÅËÓÔ × ÆÁÊÌ "ÏÔËÒÙ×ÁÑ" ÆÁÊÌ. (åÝÅ ÜÔÏ ÎÁÚÙ×ÁÀÔ "ÐÏÓÅÔÉÔØ" ÆÁÊÌ.) +þÔÏÂÙ ÓÏÚÄÁÎÎÙÊ ÔÅËÓÔ ÍÏÖÎÏ ÂÙÌÏ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÐÏÚÖÅ, ×Ù ÄÏÌÖÎÙ ÐÏÍÅÓÔÉÔØ +ÅÇÏ × ÆÁÊÌ. éÎÁÞÅ, ÏÎ ÉÓÞÅÚÎÅÔ, ËÏÇÄÁ ×Ù ÐÏËÉÎÅÔÅ Emacs. ÷Ù ÐÏÍÅÝÁÅÔÅ ×ÁÛ +ÔÅËÓÔ × ÆÁÊÌ, "ÏÔËÒÙ×ÁÑ" ÆÁÊÌ (üÔÕ ÏÐÅÒÁÃÉÀ ÔÁËÖÅ ÎÁÚÙ×ÁÀÔ "ÐÏÓÅÔÉÔØ" ÆÁÊÌ). -ïÔËÒÙÔØ ÆÁÊÌ ÏÚÎÁÞÁÅÔ ÐÏÓÍÏÔÒÅÔØ ÅÇÏ ÓÏÄÅÒÖÉÍÏÅ ÉÓÐÏÌØÚÕÑ Emacs. ÷Ï ÍÎÏÇÉÈ -ÓÌÕÞÁÑÈ, ÜÔÏ ÐÒÏÉÓÈÏÄÉÔ ËÏÇÄÁ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÆÁÊÌ ÓÁÍÉ. ïÄÎÁËÏ ×ÁÛÉ +ïÔËÒÙÔØ ÆÁÊÌ ÏÚÎÁÞÁÅÔ ÐÏÓÍÏÔÒÅÔØ ÅÇÏ ÓÏÄÅÒÖÉÍÏÅ, Ó ÐÏÍÏÝØÀ Emacs. ÷Ï ÍÎÏÇÉÈ +ÓÌÕÞÁÑÈ, ÜÔÏ ÐÒÏÉÓÈÏÄÉÔ ÔÏÇÄÁ, ËÏÇÄÁ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÆÁÊÌ ÓÁÍÉ. ïÄÎÁËÏ ×ÁÛÉ ÉÚÍÅÎÅÎÉÑ, ÓÄÅÌÁÎÎÙÅ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ Emacs ÎÅ ÂÕÄÕÔ ÚÁÆÉËÓÉÒÏ×ÁÎÙ, ÐÏËÁ ×Ù -ÎÅ ÓÏÈÒÁÎÉÔÅ ÆÁÊÌ. ôÁË ×Ù ÍÏÖÅÔÅ ÎÅ ÏÓÔÁ×ÌÑÔØ ÐÏÌÕÉÚÍÅÎÅÎÎÙÊ ÆÁÊÌ × ÓÉÓÔÅÍÅ, -ÅÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ ÜÔÏÇÏ. äÁÖÅ ËÏÇÄÁ ×Ù ÓÏÈÒÁÎÑÅÔÅ ÆÁÊÌ, Emacs ÏÓÔÁ×ÌÑÅÔ -ÏÒÉÇÉÎÁÌØÎÙÊ ÆÁÊÌ Ó ÉÚÍÅÎÅÎÎÙÍ ÉÍÅÎÅÍ, ÞÔÏ ×Ù ÍÏÇÌÉ ÐÏÚÖÅ ÒÅÛÉÔØ, ÞÔÏ ×ÁÛÉ -ÉÚÍÅÎÅÎÉÑ ÂÙÌÉ ÏÛÉÂÏÞÎÙ. +ÎÅ ÓÏÈÒÁÎÉÔÅ ÆÁÊÌ. ÷Ù ÍÏÖÅÔÅ ÎÅ ÏÓÔÁ×ÌÑÔØ ÞÁÓÔÉÞÎÏ ÉÚÍÅÎÅÎÎÙÊ ÆÁÊÌ × +ÓÉÓÔÅÍÅ, ÅÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ ÅÇÏ ÓÏÈÒÁÎÑÔØ. äÁÖÅ ËÏÇÄÁ ×Ù ÓÏÈÒÁÎÑÅÔÅ ÆÁÊÌ, ÔÏ +Emacs ÏÓÔÁ×ÌÑÅÔ ÏÒÉÇÉÎÁÌØÎÙÊ ÆÁÊÌ, ÎÏ Ó ÄÒÕÇÉÍ ÉÍÅÎÅÍ, ÔÁË ÞÔÏ ×Ù ÐÏÚÖÅ +ÍÏÖÅÔÅ ÏÔÍÅÎÉÔØ ×ÁÛÉ ÉÚÍÅÎÅÎÉÑ, ×ÅÒÎÕ×ÛÉÓØ Ë ÐÒÅÄÙÄÕÝÅÊ ×ÅÒÓÉÉ ÆÁÊÌÁ. åÓÌÉ ×Ù ÐÏÓÍÏÔÒÉÔÅ × ÎÉÖÎÀÀ ÞÁÓÔØ ÜËÒÁÎÁ, ÔÏ ×Ù Õ×ÉÄÉÔÅ ÓÔÒÏËÕ, ËÏÔÏÒÁÑ -ÎÁÞÉÎÁÅÔÓÑ Ó ÔÉÒÅ É ÎÁÞÉÎÁÅÔÓÑ Ó "--:-- TUTORIAL.ru" ÉÌÉ ÞÅÇÏ-ÔÏ -ÐÏÄÏÂÎÏÇÏ. üÔÁ ÞÁÓÔØ ÜËÒÁÎÁ ×ÓÅÇÄÁ ÐÏËÁÚÙ×ÁÅÔ ÉÍÑ ÆÁÊÌÁ ËÏÔÏÒÙÊ ×Ù -ÏÔËÒÙÌÉ. éÔÁË, ÓÅÊÞÁÓ ×Ù ÏÔËÒÙÌÉ ÆÁÊÌ Ó ÉÍÅÎÅÍ "TUTORIAL.ru" ËÏÔÏÒÙÊ -Ñ×ÌÑÅÔÓÑ ×ÁÛÅÊ ÐÅÒÓÏÎÁÌØÎÏÊ ËÏÐÉÅÊ ÕÞÅÂÎÉËÁ Emacs. äÌÑ ÌÀÂÏÇÏ ÆÁÊÌÁ ËÏÔÏÒÙÊ -×Ù ÏÔËÒÏÅÔÅ, ÉÍÑ ÜÔÏÇÏ ÆÁÊÌÁ ÐÏÑ×ÉÔÓÑ × ÜÔÏÍ ÍÅÓÔÅ. +ÎÁÞÉÎÁÅÔÓÑ Ó ÔÉÒÅ É ÅÅ ÎÁÞÁÌÏ ×ÙÇÌÑÄÉÔ ÐÒÉÍÅÒÎÏ ÔÁË "--:-- TUTORIAL.ru". üÔÁ +ÞÁÓÔØ ÜËÒÁÎÁ ×ÓÅÇÄÁ ÐÏËÁÚÙ×ÁÅÔ ÉÍÑ ÏÔËÒÙÔÏÇÏ ×ÁÍÉ ÆÁÊÌÁ. éÔÁË, ÓÅÊÞÁÓ ×Ù +ÏÔËÒÙÌÉ ÆÁÊÌ Ó ÉÍÅÎÅÍ "TUTORIAL.ru", ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ×ÁÛÅÊ ÐÅÒÓÏÎÁÌØÎÏÊ +ËÏÐÉÅÊ ÕÞÅÂÎÉËÁ Emacs. äÌÑ ÌÀÂÏÇÏ ÆÁÊÌÁ, ËÏÔÏÒÙÊ ×Ù ÏÔËÒÏÅÔÅ, ÅÇÏ ÉÍÑ ÂÕÄÅÔ +ÐÏËÁÚÁÎÏ × ÜÔÏÊ ÓÔÒÏËÅ. -ïÄÎÏÊ ÉÚ ÓÐÅÃÉÁÌØÎÙÈ ×ÅÝÅÊ, ËÏÔÏÒÕÀ ×ÁÍ ÎÕÖÎÏ ÚÎÁÔØ Ï ËÏÍÁÎÄÅ ÏÔËÒÙÔÉÑ ÆÁÊÌÁ --- ÜÔÏ ÔÏ, ÞÔÏ ×Ù ÄÏÌÖÎÙ ××ÅÓÔÉ ÉÍÑ ÆÁÊÌÁ, ËÏÔÏÒÙÊ ÎÕÖÎÏ ÞÉÔÁÔØ. íÙ ÜÔÏ -ÎÁÚÙ×ÁÅÍ ËÏÍÁÎÄÏÊ "ÞÉÔÁÀÝÁÑ ÁÒÇÕÍÅÎÔ Ó ÔÅÒÍÉÎÁÌÁ" (× ÜÔÏÍ ÓÌÕÞÁÅ, ÁÒÇÕÍÅÎÔÏÍ -Ñ×ÌÑÅÔÓÑ ÉÍÑ ÆÁÊÌÁ). ðÏÓÌÅ ××ÏÄÁ ËÏÍÁÎÄÙ +ïÄÎÏÊ ÉÚ ×ÅÝÅÊ, ËÏÔÏÒÙÅ ×ÁÍ ÎÕÖÎÏ ÚÎÁÔØ Ï ËÏÍÁÎÄÅ ÏÔËÒÙÔÉÑ ÆÁÊÌÁ -- ÜÔÏ ÔÏ, +ÞÔÏ ×Ù ÄÏÌÖÎÙ ××ÅÓÔÉ ÉÍÑ ÆÁÊÌÁ, ËÏÔÏÒÙÊ ÎÕÖÎÏ ÏÔËÒÙÔØ. ôÁËÉÅ ËÏÍÁÎÄÙ ÍÙ +ÎÁÚÙ×ÁÅÍ ËÏÍÁÎÄÁÍÉ "ÞÉÔÁÀÝÉÍÉ ÁÒÇÕÍÅÎÔ Ó ÔÅÒÍÉÎÁÌÁ" (× ÎÁÛÅÍ ÓÌÕÞÁÅ, +ÁÒÇÕÍÅÎÔÏÍ Ñ×ÌÑÅÔÓÑ ÉÍÑ ÆÁÊÌÁ). ðÏÓÌÅ ××ÏÄÁ ËÏÍÁÎÄÙ C-x C-f ïÔËÒÙÔØ (ÎÁÊÔÉ) ÆÁÊÌ -Emacs ÐÏÐÒÏÓÉÔ ×ÁÓ ××ÅÓÔÉ ÉÍÑ ÆÁÊÌÁ. éÍÑ ÆÁÊÌÁ ×Ù ÎÁÂÅÒÅÔÅ × ÎÉÖÎÅÊ ÓÔÒÏËÅ -ÜËÒÁÎÁ. îÉÖÎÑÑ ÓÔÒÏËÁ ÎÁÚÙ×ÁÅÔÓÑ ÍÉÎÉ-ÂÕÆÅÒ, ÏÎ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ËÏÒÏÔËÏÇÏ -××ÏÄÁ. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÙÞÎÙÅ ËÏÍÁÎÄÙ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ Emacs ÄÌÑ -ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÉÍÅÎÉ. +Emacs ÐÏÐÒÏÓÉÔ ×ÁÓ ××ÅÓÔÉ ÉÍÑ ÆÁÊÌÁ. éÍÑ ÆÁÊÌÁ ÎÁÂÉÒÁÅÔÓÑ × ÎÉÖÎÅÊ ÓÔÒÏËÅ +ÜËÒÁÎÁ. îÉÖÎÑÑ ÓÔÒÏËÁ ÎÁÚÙ×ÁÅÔÓÑ ÍÉÎÉ-ÂÕÆÅÒÏÍ -- ÏÎ ÓÐÅÃÉÁÌØÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ +ÄÌÑ ××ÏÄÁ ÎÅÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÄÁÎÎÙÈ. äÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÉÍÅÎÉ ÆÁÊÌÁ ×Ù +ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÙÞÎÙÅ ËÏÍÁÎÄÙ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ Emacs. -ëÏÇÄÁ ×Ù ××ÏÄÉÔÅ ÉÍÑ ÆÁÊÌÁ (ÉÌÉ ÌÀÂÕÀ ÉÎÆÏÒÍÁÃÉÀ × ÍÉÎÉ-ÂÕÆÅÒ), ×Ù ÍÏÖÅÔÅ -ÏÔÍÅÎÉÔØ ËÏÍÁÎÄÕ ÎÁÖÁ× C-g. +ëÏÇÄÁ ×Ù ××ÏÄÉÔÅ ÉÍÑ ÆÁÊÌÁ (ÉÌÉ ÌÀÂÕÀ ÄÒÕÇÕÀ ÉÎÆÏÒÍÁÃÉÀ × ÍÉÎÉ-ÂÕÆÅÒÅ), ×Ù +ÍÏÖÅÔÅ ÏÔÍÅÎÉÔØ ÔÅËÕÝÕÀ ËÏÍÁÎÄÕ ÎÁÖÁ× C-g. ->> îÁÖÍÉÔÅ C-x C-f, ÚÁÔÅÍ ÎÁÖÍÉÔÅ C-g. üÔÏ ÏÔÍÅÎÉÔ ÍÉÎÉ-ÂÕÆÅÒ, É ËÏÍÁÎÄÕ - C-x C-f ËÏÔÏÒÁÑ ÉÓÐÏÌØÚÏ×ÁÌÁ ÍÉÎÉ-ÂÕÆÅÒ. ÷ ÉÔÏÇÅ, ×Ù ÎÅ ÏÔËÒÙÌÉ ÎÉ ÏÄÎÏÇÏ - ÆÁÊÌÁ. +>> îÁÖÍÉÔÅ C-x C-f, Á ÚÁÔÅÍ ÎÁÖÍÉÔÅ C-g. üÔÏ ÄÅÊÓÔ×ÉÅ ÏÔÍÅÎÉÔ ××ÏÄ ÄÁÎÎÙÈ × + ÍÉÎÉ-ÂÕÆÅÒÅ, É ÚÁÏÄÎÏ É ËÏÍÁÎÄÕ C-x C-f, ËÏÔÏÒÁÑ ÉÓÐÏÌØÚÏ×ÁÌÁ ÍÉÎÉ-ÂÕÆÅÒ + ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÁÒÇÕÍÅÎÔÁ. ÷ ÉÔÏÇÅ, ×Ù ÎÅ ÏÔËÒÙÌÉ ÎÉ ÏÄÎÏÇÏ ÆÁÊÌÁ. ëÏÇÄÁ ×Ù ÚÁ×ÅÒÛÉÔÅ ××ÏÄ ÉÍÅÎÉ ÆÁÊÌÁ, ÎÁÖÍÉÔÅ . äÁÌÅÅ ÓÒÁÂÏÔÁÅÔ -ËÏÍÁÎÄÁ C-x C-f, É ÏÔËÒÏÅÔ ÆÁÊÌ ÕËÁÚÁÎÎÙÊ ×ÁÍÉ. íÉÎÉ-ÂÕÆÅÒ ÉÓÞÅÚÎÅÔ ËÏÇÄÁ -ËÏÍÁÎÄÁ C-x C-f ÚÁ×ÅÒÛÉÔÓÑ. +ËÏÍÁÎÄÁ C-x C-f, ËÏÔÏÒÁÑ ÏÔËÒÏÅÔ ÕËÁÚÁÎÎÙÊ ×ÁÍÉ ÆÁÊÌ. íÉÎÉ-ÂÕÆÅÒ ÉÓÞÅÚÎÅÔ, +ËÏÇÄÁ ËÏÍÁÎÄÁ C-x C-f ÚÁ×ÅÒÛÉÔÓÑ. -é ÍÇÎÏ×ÅÎÉÅÍ ÐÏÚÖÅ ÓÏÄÅÒÖÉÍÏÅ ÆÁÊÌÁ ÐÏÑ×ÉÔÓÑ ÎÁ ÜËÒÁÎÅ, É ×Ù ÓÍÏÖÅÔÅ ÅÇÏ -ÒÅÄÁËÔÉÒÏ×ÁÔØ. ëÏÇÄÁ ×Ù ÚÁËÏÎÞÉÔÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ, ÞÔÏÂÙ ÓÏÈÒÁÎÉÔØ ÉÚÍÅÎÅÎÉÑ -ÎÁÂÅÒÉÔÅ ËÏÍÁÎÄÕ +á ÍÇÎÏ×ÅÎÉÅÍ ÐÏÚÖÅ ÓÏÄÅÒÖÉÍÏÅ ÆÁÊÌÁ ÐÏÑ×ÉÔÓÑ ÎÁ ÜËÒÁÎÅ, É ×Ù ÓÍÏÖÅÔÅ ÅÇÏ +ÒÅÄÁËÔÉÒÏ×ÁÔØ. ëÏÇÄÁ ×Ù ÚÁËÏÎÞÉÔÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ, ÔÏ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ +ÓÏÈÒÁÎÉÔØ ÉÚÍÅÎÅÎÉÑ, ÎÁÂÅÒÉÔÅ ËÏÍÁÎÄÕ C-x C-s óÏÈÒÁÎÉÔØ ÆÁÊÌ -üÔÏ ÓËÏÐÉÒÕÅÔ ÔÅËÓÔ ÉÚ Emacs × ÆÁÊÌ. ÷ ÐÅÒ×ÙÊ ÒÁÚ, ËÏÇÄÁ ×Ù ÜÔÏ ÓÄÅÌÁÅÔÅ, -Emacs ÐÅÒÅÉÍÅÎÕÅÔ ÏÒÉÇÉÎÁÌØÎÙÊ ÆÁÊÌ × ÆÁÊÌ Ó ÎÏ×ÙÍ ÉÍÅÎÅÍ, ÞÔÏÂÙ ÏÎ ÎÅ -ÐÏÔÅÒÑÌÓÑ. îÏ×ÏÅ ÉÍÑ ÐÏÌÕÞÁÅÔÓÑ ÄÏÂÁ×ÌÅÎÉÅÍ ÓÉÍ×ÏÌÁ "~" Ë ÏÒÉÇÉÎÁÌØÎÏÍÕ -ÉÍÅÎÉ ÆÁÊÌÁ. +üÔÁ ËÏÍÁÎÄÁ ÓËÏÐÉÒÕÅÔ ÔÅËÓÔ ÉÚ Emacs × ÆÁÊÌ. ÷ ÐÅÒ×ÙÊ ÒÁÚ, ËÏÇÄÁ ×Ù ÜÔÏ +ÓÄÅÌÁÅÔÅ, Emacs ÐÅÒÅÉÍÅÎÕÅÔ ÏÒÉÇÉÎÁÌØÎÙÊ ÆÁÊÌ × ÆÁÊÌ Ó ÎÏ×ÙÍ ÉÍÅÎÅÍ, ÞÔÏÂÙ +ÎÅ ÐÏÔÅÒÑÌÏÓØ ÐÒÅÄÙÄÕÝÅÅ ÓÏÄÅÒÖÉÍÏÅ ÆÁÊÌÁ. îÏ×ÏÅ ÉÍÑ ÐÏÌÕÞÁÅÔÓÑ ÄÏÂÁ×ÌÅÎÉÅÍ +ÓÉÍ×ÏÌÁ "~" Ë ÏÒÉÇÉÎÁÌØÎÏÍÕ ÉÍÅÎÉ ÆÁÊÌÁ. -ëÏÇÄÁ ÓÏÈÒÁÎÅÎÉÅ ÚÁ×ÅÒÛÉÔÓÑ, Emacs ÎÁÐÅÞÁÔÁÅÔ ÉÍÑ ÚÁÐÉÓÁÎÎÏÇÏ ÆÁÊÌÁ. ÷Ù -ÄÏÌÖÎÙ ÓÏÈÒÁÎÑÔØ ÉÚÍÅÎÅÎÉÑ ÄÏÓÔÁÔÏÞÎÏ ÞÁÓÔÏ, ÔÁË ÞÔÏÂÙ ÎÅ ÐÏÔÅÒÑÔØ ÍÎÏÇÏ -ÒÁÂÏÔÙ ÅÓÌÉ ×ÄÒÕÇ ÓÉÓÔÅÍÁ ÐÏÇÉÂÎÅÔ. +ëÏÇÄÁ ÓÏÈÒÁÎÅÎÉÅ ÚÁ×ÅÒÛÉÔÓÑ, Emacs ÏÔÏÂÒÁÚÉÔ ÉÍÑ ÚÁÐÉÓÁÎÎÏÇÏ ÆÁÊÌÁ. ÷Ù +ÄÏÌÖÎÙ ÓÏÈÒÁÎÑÔØ ÉÚÍÅÎÅÎÉÑ ÄÏÓÔÁÔÏÞÎÏ ÞÁÓÔÏ, ÞÔÏÂÙ ÎÅ ÐÏÔÅÒÑÔØ ×ÎÅÓÅÎÎÙÅ +ÉÚÍÅÎÅÎÉÑ, ÅÓÌÉ ÓÉÓÔÅÍÁ ×ÄÒÕÇ ÚÁ×ÉÓÎÅÔ. >> îÁÂÅÒÉÔÅ C-x C-s, ÓÏÈÒÁÎÉÔÅ ×ÁÛÕ ËÏÐÉÀ ÕÞÅÂÎÉËÁ. ÷ ÎÉÖÎÅÊ ÓÔÒÏËÅ ÜËÒÁÎÁ ÄÏÌÖÎÁ ÐÏÑ×ÉÔØÓÑ ÎÁÄÐÉÓØ "Wrote ...TUTORIAL.ru". -úáíåþáîéå: îÁ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ, ××ÏÄ C-x C-s ÚÁÂÌÏËÉÒÕÅÔ ÜËÒÁÎ É ×Ù ÎÅ -Õ×ÉÄÉÔÅ ÐÏÓÌÅÄÕÀÝÅÇÏ ×Ù×ÏÄÁ Emacs`Á. üÔÏ ÏÚÎÁÞÁÅÔ ÞÔÏ ÏÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ -ÉÍÅÅÔ "ÏÓÏÂÅÎÎÏÓÔØ" ÉÍÅÎÕÅÍÕÀ "flow control" ÐÅÒÅÈ×ÁÔÙ×ÁÀÝÕÀ C-s É ÎÅ -ÐÒÏÐÕÓËÁÀÝÕÀ ÜÔÏÔ ÓÉÍ×ÏÌ Ë Emacs`Õ. äÌÑ ÒÁÚÂÌÏËÉÒÏ×ËÉ ÜËÒÁÎÁ, ÎÁÖÍÉÔÅ C-q. -óÍÏÔÒÉÔÅ ÒÁÚÄÅÌ "Spontaneous Entry to Incremental Search" ÒÕËÏ×ÏÄÓÔ×Á Emacs -ÞÔÏÂÙ ÕÚÎÁÔØ ËÁË ÂÏÒÏÔØÓÑ Ó ÜÔÏÊ "ÏÓÏÂÅÎÎÏÓÔØÀ". +úáíåþáîéå: îÁ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ, ××ÏÄ C-x C-s ÚÁÂÌÏËÉÒÕÅÔ ÜËÒÁÎ, ÔÁË ÞÔÏ ×Ù +ÎÅ Õ×ÉÄÉÔÅ ÐÏÓÌÅÄÕÀÝÅÇÏ ×Ù×ÏÄÁ Emacs`Á. ôÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ÏÚÎÁÞÁÅÔ, ÞÔÏ +ÏÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ "ÏÓÏÂÅÎÎÏÓÔØ", ÉÍÅÎÕÅÍÕÀ "flow control", +ÐÅÒÅÈ×ÁÔÙ×ÁÀÝÕÀ ÓÏÞÅÔÁÎÉÅ C-s É ÎÅ ÐÒÏÐÕÓËÁÀÝÕÀ ÜÔÏÔ ÓÉÍ×ÏÌ Ë Emacs`Õ. äÌÑ +ÓÎÑÔÉÑ ÂÌÏËÉÒÏ×ËÉ ÜËÒÁÎÁ, ÎÁÖÍÉÔÅ C-q. ïÂÒÁÔÉÔÅÓØ Ë ÒÁÚÄÅÌÕ "Spontaneous +Entry to Incremental Search" ÒÕËÏ×ÏÄÓÔ×Á Emacs, ÞÔÏÂÙ ÕÚÎÁÔØ Ï ÔÏÍ, ËÁË +ÂÏÒÏÔØÓÑ Ó ÜÔÏÊ "ÏÓÏÂÅÎÎÏÓÔØÀ". ÷Ù ÍÏÖÅÔÅ ÏÔËÒÙÔØ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÆÁÊÌ ÄÌÑ ÐÒÏÓÍÏÔÒÁ ÉÌÉ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ. ÷Ù -ÔÁËÖÅ ÍÏÖÅÔÅ ÎÁÊÔÉ ÆÁÊÌ, ËÏÔÏÒÏÇÏ ÅÝÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ. äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ -- -ÓÏÚÄÁÔØ ÆÁÊÌ Ó ÐÏÍÏÝØÀ Emacs: ÎÁÊÔÉ ÆÁÊÌ, ÓÏÚÄÁÔØ ÎÏ×ÙÊ, É ÎÁÞÁÔØ ××ÏÄÉÔØ -ÔÅËÓÔ. ëÏÇÄÁ ×Ù ÓËÁÖÉÔÅ "ÓÏÈÒÁÎÉ" ÆÁÊÌ, Emacs ÓÏÚÄÁÓÔ ÒÅÁÌØÎÙÊ ÆÁÊÌ Ó -ÎÁÂÒÁÎÎÙÍ ×ÁÍÉ ÔÅËÓÔÏÍ. äÁÌÅÅ, ËÁË ×Ù ÐÏÎÑÌÉ, ×Ù ÂÕÄÅÔÅ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÕÖÅ -ÓÕÝÅÓÔ×ÕÀÝÉÊ ÆÁÊÌ. +ÔÁËÖÅ ÍÏÖÅÔÅ ÏÔËÒÙÔØ ÆÁÊÌ, ËÏÔÏÒÏÇÏ ÅÝÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ. äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ -- +ÓÏÚÄÁÔØ ÆÁÊÌ Ó ÐÏÍÏÝØÀ Emacs ÍÏÖÎÏ ÔÁË: ÎÁÊÔÉ ÆÁÊÌ, ÓÏÚÄÁÔØ ÎÏ×ÙÊ, É ÎÁÞÁÔØ +××ÏÄÉÔØ ÔÅËÓÔ. ëÏÇÄÁ ×Ù ×ÙÐÏÌÎÉÔÅ ËÏÍÁÎÄÕ ÓÏÈÒÁÎÅÎÉÑ ÆÁÊÌÁ, ÔÏ Emacs ÓÏÚÄÁÓÔ +ÎÁÓÔÏÑÝÉÊ ÆÁÊÌ Ó ÎÁÂÒÁÎÎÙÍ ×ÁÍÉ ÔÅËÓÔÏÍ. äÁÌÅÅ, ËÁË ×Ù ÐÏÎÑÌÉ, ×Ù ÂÕÄÅÔÅ +ÒÅÄÁËÔÉÒÏ×ÁÔØ ÕÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÆÁÊÌ. * âõæåòá -------- -åÓÌÉ ×Ù ÎÁÈÏÄÉÔÅ ×ÔÏÒÏÊ ÆÁÊÌ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ C-x C-f, ÔÏ ÐÅÒ×ÙÊ ÏÓÔÁÅÔÓÑ -×ÎÕÔÒÉ Emacs. ÷Ù ÍÏÖÅÔÅ ÐÅÒÅËÌÀÞÉÔØÓÑ ÎÁÚÁÄ, ÎÁÊÄÑ ÅÇÏ ÓÎÏ×Á C-x C-f. üÔÏ -ÓÐÏÓÏ ÚÁÇÒÕÚÉÔØ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ× × Emacs. +åÓÌÉ ×Ù ÏÔËÒÙ×ÁÅÔÅ ×ÔÏÒÏÊ ÆÁÊÌ ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ C-x C-f, ÔÏ ÐÅÒ×ÙÊ ÆÁÊÌ +ÏÓÔÁÅÔÓÑ ×ÎÕÔÒÉ Emacs. ÷Ù ÍÏÖÅÔÅ ÐÅÒÅËÌÀÞÉÔØÓÑ ÎÁÚÁÄ, ÏÔËÒÙ× ÅÇÏ ÓÎÏ×Á Ó +ÐÏÍÏÝØÀ C-x C-f. ôÁËÉÍ ÏÂÒÁÚÏÍ ×Ù ÍÏÖÅÔÅ ÚÁÇÒÕÚÉÔØ ÎÅÓËÏÌØËÏ ÆÁÊÌÏ× × Emacs. ->> óÏÚÄÁÊÔÅ ÆÁÊÌ Ó ÉÍÅÎÅÍ "foo" ÎÁÂÉÒÁÑ C-x C-f foo . - ÷ÓÔÁרÔÅ ËÁËÏÊ-ÎÉÂÕÄØ ÔÅËÓÔ, ÏÔÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ, É ÓÏÈÒÁÎÉÔÅ "foo" +>> óÏÚÄÁÊÔÅ ÆÁÊÌ Ó ÉÍÅÎÅÍ "foo", ÎÁÂÒÁ× C-x C-f foo . + ÷ÓÔÁרÔÅ ËÁËÏÊ-ÎÉÂÕÄØ ÔÅËÓÔ, ÉÚÍÅÎÉÔÅ ÅÇÏ, É ÓÏÈÒÁÎÉÔÅ ÆÁÊÌ "foo", ÎÁÂÒÁ× C-x C-s. - îÁËÏÎÅÃ, ÎÁÂÅÒÉÔÅ C-x C-f TUTORIAL.ru - ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÎÁÚÁÄ Ë ÕÞÅÂÎÉËÕ. + îÁËÏÎÅÃ, ÎÁÂÅÒÉÔÅ C-x C-f TUTORIAL.ru , ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ + ÎÁÚÁÄ Ë ÕÞÅÂÎÉËÕ. -Emacs ÓÏÈÒÁÎÑÅÔ ÔÅËÓÔ ËÁÖÄÏÇÏ ÆÁÊÌÁ ×ÎÕÔÒÉ × ÏÂßÅËÔÅ ÎÁÚÙ×ÁÅÍÙÊ "ÂÕÆÅÒ" -("buffer"). ïÔËÒÙÔÉÅ ÆÁÊÌÁ ÓÏÚÄÁÅÔ ÎÏ×ÙÊ ÂÕÆÅÒ ×ÎÕÔÒÉ Emacs. ÞÔÏÂÙ Õ×ÉÄÅÔØ -ÓÐÉÓÏË ÂÕÆÅÒÏ× ÓÏÚÄÁÎÎÙÈ × ÔÅËÕÝÅÍ Emacs ÎÁÂÅÒÉÔÅ +Emacs ÈÒÁÎÉÔ ÔÅËÓÔ ËÁÖÄÏÇÏ ÆÁÊÌÁ ×ÎÕÔÒÉ × ÏÂßÅËÔÅ, ÎÁÚÙ×ÁÅÍÏÍ "ÂÕÆÅÒ" +("buffer"). ïÔËÒÙÔÉÅ ÆÁÊÌÁ ÓÏÚÄÁÅÔ ÎÏ×ÙÊ ÂÕÆÅÒ ×ÎÕÔÒÉ Emacs. þÔÏÂÙ Õ×ÉÄÅÔØ +ÓÐÉÓÏË ÂÕÆÅÒÏ×, ÓÏÚÄÁÎÎÙÈ × ÔÅËÕÝÅÍ ÓÅÁÎÓÅ Emacs, ÎÁÂÅÒÉÔÅ C-x C-b óÐÉÓÏË ÂÕÆÅÒÏ× ->> ðÏÐÒÏÂÕÊÔÅ C-x C-b ÓÅÊÞÁÓ. - -íÙ ×ÉÄÉÍ ÞÔÏ ËÁÖÄÙÊ ÂÕÆÅÒ ÉÍÅÅÔ ÉÍÑ, É ÍÏÖÅÔ ÉÍÅÔØ ÉÍÑ ÆÁÊÌÁ, ÓÏÄÅÒÖÉÍÏÅ -ËÏÔÏÒÏÇÏ × ÎÅÍ ÈÒÁÎÉÔÓÑ. îÅËÏÔÏÒÙÅ ÂÕÆÅÒÁ ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÆÁÊÌÁÍ. îÁÐÒÉÍÅÒ, -ÂÕÆÅÒ ÎÁÚ×ÁÎÎÙÊ "*Buffer List*" ÎÅ ÓÏÄÅÒÖÉÔ ÎÉËÁËÏÇÏ ÆÁÊÌÁ. ÷ ÜÔÏÍ ÂÕÆÅÒÅ -ÓÏÄÅÒÖÉÔÓÑ ÓÐÉÓÏË ÂÕÆÅÒÏ×, ËÏÔÏÒÙÊ ÂÙÌ ÓÏÚÄÁÎ ËÏÍÁÎÄÏÊ C-x C-b. ìàâïê ÔÅËÓÔ -ËÏÔÏÒÙÊ ×É ×ÉÄÉÔÅ × ÏËÎÅ Emacs ×ÓÅÇÄÁ Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ËÁËÏÇÏ-ÌÉÂÏ ÂÕÆÅÒÁ. - ->> îÁÂÅÒÉÔÅ C-x 1 ÞÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÓÐÉÓËÁ ÂÕÆÅÒÏ×. - -åÓÌÉ ×Ù ÉÚÍÅÎÑÅÔÅ ÔÅËÓÔ ÏÄÎÏÇÏ ÆÁÊÌÁ, ÐÏÔÏÍ ÏÔËÒÙ×ÁÅÔÅ ÄÒÕÇÏÊ, ÔÏ ÐÅÒ×ÙÊ -ÏÓÔÁÅÔÓÑ ÎÅ ÓÏÈÒÁÎÅÎÎÙÍ. éÚÍÅÎÅÎÉÑ ÏÓÔÁÎÕÔÓÑ ×ÎÕÔÒÉ Emacs, × ÆÁÊÌÏ×ÏÍ -ÂÕÆÅÒÅ. óÏÚÄÁÎÉÅ ÉÌÉ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ ÓÌÅÄÕÀÝÅÇÏ ÆÁÊÌÏ×ÏÇÏ ÂÕÆÅÒÁ ÎÅ +>> ðÏÐÒÏÂÕÊÔÅ ×ÙÐÏÌÎÉÔØ C-x C-b ÐÒÑÍÏ ÓÅÊÞÁÓ. + +íÙ ×ÉÄÉÍ, ÞÔÏ ËÁÖÄÙÊ ÂÕÆÅÒ ÉÍÅÅÔ ÉÍÑ, É ÍÏÖÅÔ ÉÍÅÔØ Ó×ÑÚÁÎÎÏÅ Ó ÎÉÍ ÉÍÑ +ÆÁÊÌÁ, ÓÏÄÅÒÖÉÍÏÅ ËÏÔÏÒÏÇÏ × ÈÒÁÎÉÔÓÑ × ÄÁÎÎÏÍ ÂÕÆÅÒÅ. ìàâïê ÔÅËÓÔ, ËÏÔÏÒÙÊ +×Ù ×ÉÄÉÔÅ × ÏËÎÅ Emacs, ×ÓÅÇÄÁ Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ËÁËÏÇÏ-ÌÉÂÏ ÂÕÆÅÒÁ. + +>> îÁÂÅÒÉÔÅ C-x 1, ÞÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÓÐÉÓËÁ ÂÕÆÅÒÏ×. + +ëÏÇÄÁ Õ ×ÁÓ ÅÓÔØ ÎÅÓËÏÌØËÏ ÂÕÆÅÒÏ×, ÔÏÌØËÏ ÏÄÉÎ ÉÚ ÎÉÈ Ñ×ÌÑÅÔÓÑ "ÔÅËÕÝÉÍ" × +ËÏÎËÒÅÔÎÙÊ ÍÏÍÅÎÔ ×ÒÅÍÅÎÉ. üÔÏ ÔÏÔ ÂÕÆÅÒ, ËÏÔÏÒÙÊ ×Ù ÉÚÍÅÎÑÅÔÅ. åÓÌÉ ×Ù +ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ ÄÁÎÎÙÅ × ÄÒÕÇÏÍ ÂÕÆÅÒÅ, ÔÏ ×Ù ÄÏÌÖÎÙ "ÐÅÒÅËÌÀÞÉÔØÓÑ" × ÎÅÇÏ. +åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÅÒÅËÌÀÞÉÔØÓÑ × ÂÕÆÅÒ, Ó×ÑÚÁÎÎÙÊ Ó ÆÁÊÌÏÍ, ÔÏ ×Ù ÍÏÖÅÔÅ +ÏÔËÒÙÔØ ÜÔÏÔ ÆÁÊÌ ÓÎÏ×Á Ó ÐÏÍÏÝØÀ C-x C-f. îÏ ÅÓÔØ ÂÏÌÅÅ ÐÒÏÓÔÏÊ ÓÐÏÓÏ -- +ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ C-x b. ÷ ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ ÄÌÑ ÄÁÎÎÏÊ ËÏÍÁÎÄÙ ×Ù +ÄÏÌÖÎÙ ÕËÁÚÁÔØ ÉÍÑ ÂÕÆÅÒÁ. + +>> îÁÂÅÒÉÔÅ C-x b foo ÄÌÑ ÐÅÒÅËÌÀÞÅÎÉÑ × ÂÕÆÅÒ "foo", ËÏÔÏÒÙÊ + ÈÒÁÎÉÔ ÔÅËÓÔ ÆÁÊÌÁ "foo". úÁÔÅÍ ÎÁÂÅÒÉÔÅ C-x b TUTORIAL ÄÌÑ + ×ÏÚ×ÒÁÝÅÎÉÑ × ÂÕÆÅÒ Ó ÄÁÎÎÙÍ ÕÞÅÂÎÉËÏÍ. + +þÁÝÅ ×ÓÅÇÏ ÉÍÑ ÂÕÆÅÒÁ ÓÏ×ÐÁÄÁÅÔ Ó ÉÍÅÎÅÍ ÆÁÊÌÁ (ÔÏÌØËÏ ÂÅÚ ÉÍÅÎÉ ËÁÔÁÌÏÇÏ×). +ïÄÎÁËÏ ÜÔÏ ÎÅ ×ÓÅÇÄÁ Ñ×ÌÑÅÔÓÑ ÐÒÁ×ÄÏÊ. óÐÉÓÏË ÂÕÆÅÒÏ×, ËÏÔÏÒÙÊ ×Ù ÓÏÚÄÁÅÔÅ +Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ C-x C-b ×ÓÅÇÄÁ ÐÏËÁÚÙ×ÁÅÔ ×ÁÍ ÉÍÅÎÁ ×ÓÅÈ ÂÕÆÅÒÏ×. + +ìàâïê ÔÅËÓÔ, ËÏÔÏÒÙÊ ×Ù ×ÉÄÉÔÅ × ÏËÎÅ Emacs, ×ÓÅÇÄÁ Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ +ËÁËÏÇÏ-ÌÉÂÏ ÂÕÆÅÒÁ. îÅËÏÔÏÒÙÅ ÂÕÆÅÒÁ ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÆÁÊÌÁÍ. îÁÐÒÉÍÅÒ, +ÂÕÆÅÒ Ó ÉÍÅÎÅÍ "*Buffer List*" ÎÅ Ó×ÑÚÁÎ ÎÉ Ó ËÁËÉÍ ÆÁÊÌÏÍ. üÔÏ ÂÕÆÅÒ, +ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÓÐÉÓÏË ÂÕÆÅÒÏ×, ËÏÔÏÒÙÊ ×Ù ÓÏÚÄÁÌÉ ÉÓÐÏÌØÚÕÑ C-x C-b. +âÕÆÅÒ Ó ÉÍÅÎÅÍ "*Messages*" ÔÁËÖÅ ÎÅ Ó×ÑÚÁÎ ÎÉ Ó ËÁËÉÍ ÆÁÊÌÏÍ; ÏÎ ÓÏÄÅÒÖÉÔ +ÓÏÏÂÝÅÎÉÑ, ËÏÔÏÒÙÅ ÏÔÏÂÒÁÖÁÀÔÓÑ × ÓÁÍÏÊ ÎÉÖÎÅÊ ÓÔÒÏËÅ ÏËÎÁ Emacs × ÔÅÞÅÎÉÉ +ÔÅËÕÝÅÊ ÓÅÓÓÉÉ ÒÁÂÏÔÙ Ó ÒÅÄÁËÔÏÒÏÍ. + +>> îÁÂÅÒÉÔÅ C-x b *Messages* ÄÌÑ ÐÒÏÓÍÏÔÒÁ ÓÏÄÅÒÖÉÍÏÇÏ ÂÕÆÅÒÁ + ÓÏÏÂÝÅÎÉÊ. úÁÔÅÍ ÎÁÂÅÒÉÔÅ C-x b TUTORIAL ÄÌÑ ×ÏÚ×ÒÁÔÁ × ÄÁÎÎÙÊ + ÕÞÅÂÎÉË. + +åÓÌÉ ×Ù ÉÚÍÅÎÑÅÔÅ ÔÅËÓÔ ÏÄÎÏÇÏ ÆÁÊÌÁ, Á ÚÁÔÅÍ ÏÔËÒÙ×ÁÅÔÅ ÄÒÕÇÏÊ, ÔÏ ÔÅËÓÔ × +ÐÅÒ×ÏÍ ÂÕÆÅÒÅ ÏÓÔÁÅÔÓÑ ÎÅ ÓÏÈÒÁÎÅÎÎÙÍ. éÚÍÅÎÅÎÉÑ ÏÓÔÁÎÕÔÓÑ ×ÎÕÔÒÉ Emacs, × +ÂÕÆÅÒÅ, Ó×ÑÚÁÎÎÏÍ Ó ÆÁÊÌÏÍ. óÏÚÄÁÎÉÅ ÉÌÉ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ ÓÌÅÄÕÀÝÅÇÏ ÂÕÆÅÒÁ ÎÅ ÓËÁÚÙ×ÁÅÔÓÑ ÎÁ ÐÅÒ×ÏÍ ÂÕÆÅÒÅ. üÔÏ ÏÞÅÎØ ÕÄÏÂÎÏ, ÎÏ ÉÍÅÊÔÅ × ×ÉÄÕ, ÞÔÏ ×ÁÍ -ÎÕÖÎÏ ÉÍÅÔØ ÕÄÏÂÎÙÊ ÓÐÏÓÏ ÓÏÈÒÁÎÉÔØ ÐÅÒ×ÙÊ ÆÁÊÌÏ×ÙÊ ÂÕÆÅÒ. âÙÌÏ ÂÙ -ÎÅÐÒÉÑÔÎÏ ËÁÖÄÙÊ ÒÁÚ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÁÚÁÄ Ó ÐÏÍÏÝØÀ C-x C-f É ÐÏÔÏÍ -ÉÓÐÏÌØÚÏ×ÁÔØ C-x C-s. ðÏÜÔÏÍÕ ÓÕÝÅÓÔ×ÕÅÔ ËÏÍÁÎÄÁ +ÎÕÖÎÏ ÉÍÅÔØ ÓÐÏÓÏ ÓÏÈÒÁÎÉÔØ ÐÅÒ×ÙÊ ÆÁÊÌÏ×ÙÊ ÂÕÆÅÒ. âÙÌÏ ÂÙ ÎÅÐÒÉÑÔÎÏ +ËÁÖÄÙÊ ÒÁÚ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÁÚÁÄ ÉÓÐÏÌØÚÕÑ C-x C-f É ÐÏÔÏÍ ÉÓÐÏÌØÚÏ×ÁÔØ C-x C-s +ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ. ðÏÜÔÏÍÕ ÓÕÝÅÓÔ×ÕÅÔ ËÏÍÁÎÄÁ C-x s óÏÈÒÁÎÉÔØ ÎÅËÏÔÏÒÙÅ ÂÕÆÅÒÁ. (Save some buffers) -C-x s ÓÐÒÁÛÉ×ÁÅÔ ×ÁÓ Ï ËÁÖÄÏÍ ÂÕÆÅÒÅ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÎÅ ÓÏÈÒÁÎÅÎÎÙÅ -ÉÚÍÅÎÅÎÉÑ. äÌÑ ËÁÖÄÏÇÏ ÔÁËÏÇÏ ÂÕÆÅÒÁ Õ ×ÁÓ ÓÐÒÁÛÉ×ÁÀÔ ÓÏÈÒÁÎÑÔØ ÉÌÉ ÎÅ -ÓÏÈÒÁÎÑÔØ ÉÚÍÅÎÅÎÉÑ. +C-x s ÚÁÐÒÁÛÉ×ÁÅÔ Õ ×ÁÓ ÐÏÄÔ×ÅÒÖÄÅÎÉÅ Ï ÓÏÈÒÁÎÅÎÉÉ ÄÌÑ ËÁÖÄÏÇÏ ÂÕÆÅÒÁ, +ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÎÅ ÓÏÈÒÁÎÅÎÎÙÅ ÉÚÍÅÎÅÎÉÑ. äÌÑ ËÁÖÄÏÇÏ ÔÁËÏÇÏ ÂÕÆÅÒÁ Õ ×ÁÓ +ÚÁÐÒÏÓÑÔ: ÓÏÈÒÁÎÑÔØ ÉÌÉ ÎÅ ÓÏÈÒÁÎÑÔØ ÉÚÍÅÎÅÎÉÑ. >> ÷ÓÔÁרÔÅ ÓÔÒÏËÕ ÔÅËÓÔÁ, ÐÏÔÏÍ ÎÁÂÅÒÉÔÅ C-x s. - õ ×ÁÓ ÄÏÌÖÎÙ ÓÐÒÏÓÉÔØ ÓÏÈÒÁÎÑÔØ ÌÉ ÂÕÆÅÒ Ó ÉÍÅÎÅÍ TUTORIAL.ru. - ïÔ×ÅÔØÔÅ ÎÁ ×ÏÐÒÏÓ ÄÁ ÎÁÂÒÁ× "y". + õ ×ÁÓ ÄÏÌÖÎÙ ÓÐÒÏÓÉÔØ, ÓÏÈÒÁÎÑÔØ ÌÉ ÂÕÆÅÒ Ó ÉÍÅÎÅÍ TUTORIAL.ru. ïÔ×ÅÔØÔÅ + ÎÁ ×ÏÐÒÏÓ ÕÔ×ÅÒÄÉÔÅÌØÎÏ, ÎÁÂÒÁ× "y". -* òáóûéòåîîùê îáâïò ëïíáîä +* òáóûéòåîéå îáâïòá ëïíáîä -------------------------- -õ Emacs ÏÞÅÎØ ÍÎÏÇÏ ËÏÍÁÎÄ, ÏÎÉ ÍÏÇÕÔ ÂÙÔØ ÎÁÚÎÁÞÅÎÙ ÎÁ ×ÓÅ control- É meta- -ÓÉÍ×ÏÌÙ. Emacs ÏÂÈÏÄÉÔ ÜÔÏ, ÉÓÐÏÌØÚÕÑ X-ËÏÍÁÎÄÕ (eXtend). åÓÔØ Ä×Å +õ Emacs ÏÞÅÎØ ÍÎÏÇÏ ËÏÍÁÎÄ, É ÏÎÉ ÎÅ ÍÏÇÕÔ ÂÙÔØ ÎÁÚÎÁÞÅÎÙ ÎÁ ×ÓÅ control- É +meta- ÓÉÍ×ÏÌÙ. Emacs ÏÂÈÏÄÉÔ ÜÔÏ, ÉÓÐÏÌØÚÕÑ X-ËÏÍÁÎÄÕ (eXtend). åÓÔØ Ä×Å ×ÏÚÍÏÖÎÏÓÔÉ: - C-x óÉÍ×ÏÌ ÒÁÓÛÉÒÅÎÉÑ (Character eXtend). - úÁ ÎÉÍ ÓÌÅÄÕÅÍ ÏÄÉÎ ÓÉÍ×ÏÌ. - M-x éÍÅÎÏ×ÁÎÎÙÅ ÒÁÓÛÉÒÅÎÎÙÅ ËÏÍÁÎÄÙ (Named command eXtend). - úÁ ÎÉÍ ÓÌÅÄÕÅÔ ÉÍÑ ËÏÍÁÎÄÙ. - -üÔÏ ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÀÔÓÑ, ÎÏ ×Ù ÕÖÅ ×ÙÕÞÉÌÉ ÎÅËÏÔÏÒÙÅ ÉÚ -ÎÉÈ. ÷Ù ÕÖÅ ×ÉÄÅÌÉ: ËÏÍÁÎÄÙ ÒÁÂÏÔÙ Ó ÆÁÊÌÁÍÉ C-x C-f -- ÏÔËÒÙÔØ, É C-x C-s --- ÓÏÈÒÁÎÉÔØ. äÒÕÇÏÊ ÐÒÉÍÅÒ - ÚÁ×ÅÒÛÅÎÉÑ ÒÁÂÏÔÙ Ó Emacs -- ÜÔÏ ËÏÍÁÎÄÁ C-x -C-c. (îÅ ×ÏÌÎÕÊÔÅÓØ Ï ÔÏÍ, ÞÔÏ ×Ù ÐÏÔÅÒÑÅÔÅ ÓÄÅÌÁÎÎÙÅ ÉÚÍÅÎÅÎÉÑ, C-x C-c -ÐÒÅÄÌÁÇÁÅÔ ÓÏÈÒÁÎÉÔØ ÉÚÍÅÎÅÎÉÑ ÐÅÒÅÄ ÔÅÍ ËÁË ÕÄÁÌÉÔ ÂÕÆÅÒ Emacs.) - -C-z ÜÔÏ ËÏÍÁÎÄÁ *×ÒÅÍÅÎÎÏÇÏ* ×ÙÈÏÄÁ ÉÚ Emacs -- ×Ù ÍÏÖÅÔÅ ×ÅÒÎÕÔØÓÑ × ÔÕÖÅ -ÓÅÓÓÉÀ Emacs ÐÏÓÌÅ. - -îÁ ÓÉÓÔÅÍÁÈ, ËÏÔÏÒÙÅ ÄÏÐÕÓËÁÀÔ ÜÔÏÇÏ, C-z "ÐÒÉÏÓÔÁÎÁ×ÌÉ×ÁÀÔ" ("suspends") -Emacs; ÷ÏÚ×ÒÁÝÁÀÔ × ÏÂÏÌÏÞËÕ (shell), ÎÏ ÎÅ ÚÁËÒÙ×ÁÀÔ Emacs. ÷ ÂÏÌØÛÉÎÓÔ×Å -ÏÂÏÌÏÞÅË ×Ù ÍÏÖÅÔÅ ÐÒÏÄÏÌÖÉÔØ ÒÁÂÏÔÕ × Emacs ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ `fg' ÉÌÉ -`%emacs'. - -÷ ÓÉÓÔÅÍÁÈ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÝÉÈ ÐÒÉÏÓÔÁÎÏ×ËÕ ÐÒÏÃÅÓÓÏ×, C-z ÓÏÚÄÁÅÔ ÎÏ×ÕÀ -ÏÂÏÌÏÞËÕ (subshell), ÚÁÐÕÝÅÎÎÕÀ ÉÚ-ÐÏÄ Emacs, ÞÔÏÂÙ ÄÁÔØ ×ÁÍ ×ÏÚÍÏÖÎÏÓÔØ -×ÙÐÏÌÎÉÔØ ÄÒÕÇÕÀ ÐÒÏÇÒÁÍÍÕ, É ÐÏÔÏÍ ×ÅÒÎÕÔØÓÑ × Emacs; üÔÏ ÎÅ ÎÁÓÔÏÑÝÉÊ -×ÙÈÏÄ ÉÚ Emacs. ÷ ÜÔÏÍ ÓÌÕÞÁÅ, ËÏÍÁÎÄÁ `exit' ×ÅÒÎÅÔ ×ÁÓ × Emacs ÉÚ -ÏÂÏÌÏÞËÉ. - -éÓÐÏÌØÚÕÊÔÅ C-x C-c ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ×ÙÊÔÉ (log out) ÉÚ ÓÉÓÔÅÍÙ. üÔÏ ÔÁËÖÅ -ÉÓÐÏÌØÚÕÅÔÓÑ ÞÔÏÂÙ ×ÙÊÔÉ ÉÚ Emacs ×ÙÚ×ÁÎÎÏÇÏ ÉÚ ÐÏÞÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÙ, ÉÌÉ ÄÒÕÇÏÊ -ÕÔÉÌÉÔÙ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÎÅ ÚÎÁÅÔ ËÁË ÓÐÒÁ×ÉÔØÓÑ Ó ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÍ Emacs. -ïÂÙÞÎÏ, ÅÓÌÉ ×Ù ÎÅ ×ÙÈÏÄÉÔÅ ÉÚ ÓÉÓÔÅÍÙ, ÌÕÞÛÅ ÐÒÉÏÓÔÁÎÏ×ÉÔØ Emacs -ÉÓÐÏÌØÚÕÑ C-z ×ÍÅÓÔÏ ×ÙÈÏÄÁ ÉÈ ÎÅÇÏ. - -óÕÝÅÓÔ×ÕÅÔ ÏÞÅÎØ ÍÎÏÇÏ C-x ËÏÍÁÎÄ. üÔÉ ×Ù ÕÖÅ ×ÙÕÞÉÌÉ: - - C-x C-f ïÔËÒÙÔØ ÆÁÊÌ. - C-x C-s óÏÈÒÁÎÉÔØ ÆÁÊÌ. - C-x C-b óÐÉÓÏË ÂÕÆÅÒÏ×. - C-x C-c ÷ÙÈÏÄ ÉÚ Emacs. - C-x 1 õÄÁÌÑÅÔ ×ÓÅ ÏËÎÁ ËÒÏÍÅ ÏÄÎÏÇÏ. - C-x u ïÔÍÅÎÁ. - -éÍÅÎÏ×ÁÎÎÙÅ ÒÁÓÛÉÒÅÎÎÙÅ ËÏÍÁÎÄÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÇÏÒÁÚÄÏ ÒÅÖÅ, ÉÌÉ ÉÓÐÏÌØÚÕÀÔÓÑ -ÔÏÌØËÏ × ÏÐÒÅÄÅÌÅÎÎÙÈ ÒÅÖÉÍÁÈ. ÷ ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ ËÏÍÁÎÄÁ ÚÁÍÅÎÁ ÓÔÒÏËÉ, -ËÏÔÏÒÁÑ ÚÁÍÅÎÑÅÔ ÏÄÎÕ ÓÔÒÏËÕ ÎÁ ÄÒÕÇÕÀ ×Ï ×ÓÅÍ ÔÅËÓÔÅ. ëÏÇÄÁ ×Ù ÎÁÂÅÒÅÔÅ -M-x, Emacs ÐÒÅÄÌÏÖÉÔ ×ÁÍ ××ÅÓÔÉ ÉÍÑ ËÏÍÁÎÄÙ × ÎÉÖÎÅÊ ÓÔÒÏËÅ ÜËÒÁÎÁ; × ÎÁÛÅÍ -ÓÌÕÞÁÅ, "replace-string". ôÏÌØËÏ ÎÁÂÅÒÉÔÅ "repl s" É Emacs ÄÏÐÏÌÎÉÔ -ÉÍÑ. ( -- ÜÔÏ ËÌÁ×ÉÛÁ ÔÁÂÕÌÑÃÉÉ, ÏÂÙÞÎÏ ÎÁÈÏÄÑÝÁÑÓÑ ×ÙÛÅ ËÌÁ×ÉÛ -CapsLock ÉÌÉ Shift ÓÌÅ×Á ÎÁ ËÌÁ×ÉÁÔÕÒÅ). úÁ×ÅÒÛÉÔÅ ÉÍÑ ××ÏÄÏÍ . - -ëÏÍÁÎÄÁ ÚÁÍÅÎÙ ÓÔÒÏËÉ (replace-string) ÔÒÅÂÕÅÔ Ä×Á ÁÒÇÕÍÅÎÔÁ -- ÓÔÒÏËÕ -ËÏÔÏÒÁÑ ÂÕÄÅÔ ÚÁÍÅÎÅÎÁ, É ÓÔÒÏËÁ ÎÁ ËÏÔÏÒÕÀ ÎÕÖÎÏ ÚÁÍÅÎÉÔØ. ÷Ù ÄÏÌÖÎÙ + C-x òÁÓÛÉÒÅÎÉÅ Ó ÐÏÍÏÝØÀ ××ÏÄÁ ÐÒÅÆÉËÓÁ. úÁ ÎÉÍ ÓÌÅÄÕÅÍ ÏÄÉÎ ÓÉÍ×ÏÌ. + M-x òÁÓÛÉÒÅÎÉÅ ÎÁÂÏÒÁ ËÏÍÁÎÄ Ó ÐÏÍÏÝØÀ ÉÈ ÎÁÉÍÅÎÏ×ÁÎÉÑ. úÁ ÎÉÍ ÓÌÅÄÕÅÔ ÉÍÑ + ËÏÍÁÎÄÙ. + +üÔÏ ÐÏÌÅÚÎÙÅ ËÏÍÁÎÄÙ, ÎÏ ÏÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÍÅÎÅÅ ÞÁÓÔÏ, ÞÅÍ ÔÅ ËÏÍÁÎÄÙ, +ËÏÔÏÒÙÅ ÍÙ ÉÚÕÞÉÌÉ. ÷Ù ÕÖÅ ×ÉÄÅÌÉ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ: ËÏÍÁÎÄÙ ÒÁÂÏÔÙ Ó ÆÁÊÌÁÍÉ +C-x C-f -- ÏÔËÒÙÔØ ÆÁÊÌ, É C-x C-s -- ÓÏÈÒÁÎÉÔØ ÆÁÊÌ. äÒÕÇÏÊ ÐÒÉÍÅÒ -- +ËÏÍÁÎÄÁ ÚÁ×ÅÒÛÅÎÉÑ ÒÁÂÏÔÙ Ó Emacs -- C-x C-c. (îÅ ×ÏÌÎÕÊÔÅÓØ Ï ÔÏÍ, ÞÔÏ ×Ù +ÐÏÔÅÒÑÅÔÅ ÓÄÅÌÁÎÎÙÅ ÉÚÍÅÎÅÎÉÑ, C-x C-c ÐÒÅÄÌÁÇÁÅÔ ÓÏÈÒÁÎÉÔØ ÉÚÍÅÎÅÎÉÑ ÐÅÒÅÄ +ÕÄÁÌÅÎÉÅÍ ÂÕÆÅÒÁ Emacs). + +C-z -- ÜÔÏ ËÏÍÁÎÄÁ *×ÒÅÍÅÎÎÏÇÏ* ×ÙÈÏÄÁ ÉÚ Emacs. ÷Ù ÍÏÖÅÔÅ ×ÅÒÎÕÔØÓÑ × ÔÕ ÖÅ +ÓÅÓÓÉÀ Emacs ÐÏÚÖÅ. + +îÁ ÓÉÓÔÅÍÁÈ, ËÏÔÏÒÙÅ ÒÅÁÌÉÚÕÀÔ ÜÔÕ ×ÏÚÍÏÖÎÏÓÔØ, ËÏÍÁÎÄÁ C-z +"ÐÒÉÏÓÔÁÎÁ×ÌÉ×ÁÅÔ" ("suspends") Emacs; ×ÏÚ×ÒÁÝÁÅÔ × ËÏÍÁÎÄÎÙÊ ÐÒÏÃÅÓÓÏÒ +(shell), ÎÏ ÎÅ ÚÁËÒÙ×ÁÀÔ Emacs. ÷ ÂÏÌØÛÉÎÓÔ×Å ËÏÍÁÎÄÎÙÈ ÐÒÏÃÅÓÓÏÒÏ× ×Ù +ÍÏÖÅÔÅ ×ÅÒÎÕÔØÓÑ × Emacs, ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ `fg' ÉÌÉ `%emacs'. + +÷ ÓÉÓÔÅÍÁÈ, ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÝÉÈ ÐÒÉÏÓÔÁÎÏ×ËÕ ÐÒÏÃÅÓÓÏ×, C-z ÓÏÚÄÁÅÔ ÎÏ×ÙÊ +ËÏÍÁÎÄÎÙÊ ÐÒÏÃÅÓÓÏÒ (subshell), ÚÁÐÕÝÅÎÎÙÊ ÉÚ-ÐÏÄ Emacs, ÞÔÏÂÙ ÄÁÔØ ×ÁÍ +×ÏÚÍÏÖÎÏÓÔØ ×ÙÐÏÌÎÉÔØ ÄÒÕÇÕÀ ÐÒÏÇÒÁÍÍÕ, É ÚÁÔÅÍ ×ÅÒÎÕÔØÓÑ × Emacs (ÜÔÏ ÎÅ +ÎÁÓÔÏÑÝÉÊ ×ÙÈÏÄ ÉÚ Emacs). ÷ ÔÁËÉÈ ÓÉÓÔÅÍÁ ÄÌÑ ×ÏÚ×ÒÁÔÁ × Emacs ×ÁÍ ÎÕÖÎÏ +ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ `exit'. + +þÔÏÂÙ ÐÏËÉÎÕÔØ Emacs ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ C-x C-c. ïÂÙÞÎÏ ÜÔÏ ÎÕÖÎÏ ÔÏÇÄÁ, +ËÏÇÄÁ ×Ù ÈÏÔÉÔÅ ÚÁËÏÎÞÉÔØ ÓÅÁÎÓ ÒÁÂÏÔÙ Ó ËÏÍÐØÀÔÅÒÏÍ. üÔÏ ÓÏÞÅÔÁÎÉÅ ÔÁËÖÅ +ÉÓÐÏÌØÚÕÅÔÓÑ, ÞÔÏÂÙ ×ÙÊÔÉ ÉÚ Emacs, ×ÙÚ×ÁÎÎÏÇÏ ÉÚ ÐÏÞÔÏ×ÏÊ ÐÒÏÇÒÁÍÍÙ, ÉÌÉ +ÄÒÕÇÏÊ ÕÔÉÌÉÔÙ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÎÅ ÚÎÁÔØ, ËÁË ÓÐÒÁ×ÉÔØÓÑ Ó ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÍ +Emacs. ïÂÙÞÎÏ, ÅÓÌÉ ×Ù ÎÅ ÓÏÂÉÒÁÅÔÅÓØ ×ÙÈÏÄÉÔØ ÉÚ ÓÉÓÔÅÍÙ, ÔÏ ÌÕÞÛÅ +ÐÒÉÏÓÔÁÎÏ×ÉÔØ Emacs, ÉÓÐÏÌØÚÕÑ C-z ×ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏÂÙ ÐÏËÉÄÁÔØ ÅÇÏ ÓÏ×ÓÅÍ. + +óÕÝÅÓÔ×ÕÅÔ ÏÞÅÎØ ÍÎÏÇÏ ËÏÍÁÎÄ, ÉÓÐÏÌØÚÕÀÝÉÈ ÐÒÅÆÉËÓ C-x. ÷Ù ÕÖÅ ÉÚÕÞÉÌÉ +ÓÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ: + + C-x C-f ïÔËÒÙÔØ ÆÁÊÌ + C-x C-s óÏÈÒÁÎÉÔØ ÆÁÊÌ + C-x s óÏÈÒÁÎÉÔØ ÎÅËÏÔÏÒÙÅ ÆÁÊÌÙ + C-x C-b óÐÉÓÏË ÂÕÆÅÒÏ× + C-x b ðÅÒÅËÌÀÞÉÔØÓÑ × ÂÕÆÅÒ + C-x C-c ÷ÙÈÏÄ ÉÚ Emacs + C-x 1 õÄÁÌÑÅÔ ×ÓÅ ÏËÎÁ ËÒÏÍÅ ÏÄÎÏÇÏ + C-x u ïÔÍÅÎÁ + +éÍÅÎÏ×ÁÎÎÙÅ ËÏÍÁÎÄÙ -- ÜÔÏ ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÇÏÒÁÚÄÏ ÒÅÖÅ, ÉÌÉ +ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ × ÏÐÒÅÄÅÌÅÎÎÙÈ ÒÅÖÉÍÁÈ. ÷ ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ ÍÏÖÎÏ +ÐÒÉ×ÅÓÔÉ ËÏÍÁÎÄÕ ÚÁÍÅÎÙ ÓÔÒÏËÉ, ËÏÔÏÒÁÑ ÚÁÍÅÎÑÅÔ ÏÄÎÕ ÓÔÒÏËÕ ÎÁ ÄÒÕÇÕÀ ×Ï +×ÓÅÍ ÔÅËÓÔÅ. ëÏÇÄÁ ×Ù ÎÁÂÅÒÅÔÅ M-x, Emacs ÐÒÅÄÌÏÖÉÔ ×ÁÍ ××ÅÓÔÉ ÉÍÑ ËÏÍÁÎÄÙ; +× ÎÁÛÅÍ ÓÌÕÞÁÅ, ÜÔÏ ËÏÍÁÎÄÁ "replace-string". îÁÂÅÒÉÔÅ ÌÉÛØ "repl s", +É Emacs ÄÏÐÏÌÎÉÔ ÉÍÑ. ( -- ÜÔÏ ËÌÁ×ÉÛÁ ÔÁÂÕÌÑÃÉÉ, ÏÂÙÞÎÏ ÎÁÈÏÄÑÝÁÑÓÑ +×ÙÛÅ ËÌÁ×ÉÛ CapsLock ÉÌÉ Shift × ÌÅ×ÏÊ ÞÁÓÔÉ ËÌÁ×ÉÁÔÕÒÙ). úÁ×ÅÒÛÉÔÅ ÉÍÑ +ÎÁÖÁÔÉÅÍ . + +ëÏÍÁÎÄÁ ÚÁÍÅÎÙ ÓÔÒÏËÉ (replace-string) ÔÒÅÂÕÅÔ Ä×Á ÁÒÇÕÍÅÎÔÁ -- ÓÔÒÏËÕ, +ËÏÔÏÒÁÑ ÂÕÄÅÔ ÚÁÍÅÎÅÎÁ, É ÓÔÒÏËÕ, ÎÁ ËÏÔÏÒÕÀ ÎÕÖÎÏ ÚÁÍÅÎÉÔØ. ÷Ù ÄÏÌÖÎÙ ÚÁ×ÅÒÛÁÔØ ËÁÖÄÙÊ ÁÒÇÕÍÅÎÔ ××ÏÄÏÍ . >> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ Ä×Å ÐÕÓÔÙÅ ÓÔÒÏËÉ ÎÉÖÅ ÜÔÏÊ. - îÁÂÅÒÉÔÅ M-x repl schangedaltered. + îÁÂÅÒÉÔÅ M-x repl sÆÁÊÌÆÁÊÌÙ. - úÁÍÅÔØÔÅ ËÁË ÜÔÁ ÓÔÒÏËÁ ÉÚÍÅÎÉÔÓÑ: ×Ù ÚÁÍÅÎÉÔÅ ÓÌÏ×Ï c-h-a-n-g-e-d - ÓÌÏ×ÏÍ "altered" ×ÅÚÄÅ, ÇÄÅ ÏÎÏ ×ÓÔÒÅÔÉÔÓÑ, ÎÉÖÅ ÐÏÚÉÃÉÉ ËÕÒÓÏÒÁ. + úÁÍÅÔØÔÅ, ËÁË ÜÔÁ ÓÔÒÏËÁ ÉÚÍÅÎÉÔÓÑ: ×Ù ÚÁÍÅÎÉÔÅ ÓÌÏ×Ï Æ-Á-Ê-Ì + ÓÌÏ×ÏÍ "ÆÁÊÌÙ" ×ÅÚÄÅ, ÇÄÅ ÏÎÏ ×ÓÔÒÅÔÉÔÓÑ, ÎÉÖÅ ÐÏÚÉÃÉÉ ËÕÒÓÏÒÁ. -* á÷ôïóïèòáîåîéå ----------------- +* á÷ôïíáôéþåóëïå óïèòáîåîéå +--------------------------- -ëÏÇÄÁ ×Ù ÉÚÍÅÎÑÅÔÅ ÆÁÊÌ, ÎÏ ÎÅ ÓÏÈÒÁÎÑÅÔÅ ÅÇÏ, ÔÏ × ÓÌÕÞÁÅ ËÒÁÈÁ ÓÉÓÔÅÍÙ -×Ù ÍÏÖÅÔÅ ÐÏÔÅÒÑÔØ ÉÎÆÏÒÍÁÃÉÀ. ÞÔÏÂÙ ÚÁÝÉÔÉÔØ ×ÁÓ ÏÔ ÜÔÏÇÏ, Emacs -ÐÅÒÉÏÄÉÞÅÓËÉ ÓÏÈÒÁÎÑÅÔ ËÁÖÄÙÊ ÆÁÊÌ, ËÏÔÏÒÙÊ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ. á×ÔÏÓÏÈÒÁÎÅÎÉÅ +ëÏÇÄÁ ×Ù ÉÚÍÅÎÑÅÔÅ ÆÁÊÌ, ÎÏ ÎÅ ÓÏÈÒÁÎÑÅÔÅ ÅÇÏ, ÔÏ × ÓÌÕÞÁÅ ËÒÁÈÁ ÓÉÓÔÅÍÙ ×Ù +ÍÏÖÅÔÅ ÐÏÔÅÒÑÔØ ÉÎÆÏÒÍÁÃÉÀ. þÔÏÂÙ ÚÁÝÉÔÉÔØ ×ÁÓ ÏÔ ÜÔÏÇÏ, Emacs ÐÅÒÉÏÄÉÞÅÓËÉ +ÓÏÈÒÁÎÑÅÔ ËÁÖÄÙÊ ÆÁÊÌ, ËÏÔÏÒÙÊ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ. á×ÔÏÍÁÔÉÞÅÓËÏÅ ÓÏÈÒÁÎÅÎÉÅ ÐÒÏÉÓÈÏÄÉÔ × ÆÁÊÌ, ÉÍÑ ËÏÔÏÒÏÇÏ ÔÁËÏÅ ÖÅ, ÎÏ ÎÁÞÉÎÁÅÔÓÑ É ÚÁËÁÎÞÉ×ÁÅÔÓÑ -ÓÉÍ×ÏÌÏÍ "#"; ÎÁÐÒÉÍÅÒ, ÅÓÌÉ ×ÁÛ ÆÁÊÌ ÎÁÚÙ×ÁÅÔÓÑ "hello.c", ÔÏ -Á×ÔÏÓÏÈÒÁÎÅÎÎÙÊ ÆÁÊÌ ÂÕÄÅÔ ÎÁÚÙ×ÁÔØÓÑ "#hello.c#". ëÏÇÄÁ ×Ù ÓÏÈÒÁÎÉÔÅ ÆÁÊÌ -ÏÂÙÞÎÙÍ ÓÐÏÓÏÂÏÍ. Emacs ÕÄÁÌÉÔ Á×ÔÏÓÏÈÒÁÎÅÎÎÙÊ ÆÁÊÌ. +ÓÉÍ×ÏÌÏÍ "#"; ÎÁÐÒÉÍÅÒ, ÅÓÌÉ ×ÁÛ ÆÁÊÌ ÎÁÚÙ×ÁÅÔÓÑ "hello.c", ÔÏ Á×ÔÏÍÁÔÉÞÅÓËÉ +ÓÏÈÒÁÎÅÎÎÙÊ ÆÁÊÌ ÂÕÄÅÔ ÎÁÚÙ×ÁÔØÓÑ "#hello.c#". ëÏÇÄÁ ×Ù ÓÏÈÒÁÎÉÔÅ ÆÁÊÌ +ÏÂÙÞÎÙÍ ÓÐÏÓÏÂÏÍ, Emacs ÕÄÁÌÉÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎÅÎÎÙÊ ÆÁÊÌ. -åÓÌÉ ÓÉÓÔÅÍÁ ÐÏÄ×ÉÓÁÅÔ, ×Ù ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ×ÁÛÉ ÉÚÍÅÎÅÎÉÑ ËÏÔÏÒÙÊ ÂÙÌÉ -ÓÏÈÒÁÎÅÎÙ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÐÕÔÅÍ ÏÔËÒÙÔÉÑ ÎÏÒÍÁÌØÎÏÇÏ ÆÁÊÌÁ (ÆÁÊÌÁ ËÏÔÏÒÙÊ ×Ù -ÒÅÄÁËÔÉÒÏ×ÁÌÉ, ÎÅ Á×ÔÏÓÏÈÒÁÎÅÎÎÏÇÏ) É ÚÁÔÅÍ ÎÁÂÒÁ× M-x recover-file. -ëÏÇÄÁ Õ ×ÁÓ ÓÐÒÏÓÑÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÅ, ÎÁÂÅÒÉÔÅ yes ÞÔÏÂÙ ×ÏÓÓÔÁÎÏ×ÉÔØ -Á×ÔÏÓÏÈÒÁÎÅÎÎÙÅ ÄÁÎÎÙÅ. +åÓÌÉ ÓÉÓÔÅÍÁ ÚÁ×ÉÓÌÁ, ÔÏ ×Ù ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ×ÁÛÉ ÉÚÍÅÎÅÎÉÑ, ËÏÔÏÒÙÊ ÂÙÌÉ +ÓÏÈÒÁÎÅÎÙ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÐÕÔÅÍ ÏÔËÒÙÔÉÑ ÎÕÖÎÏÇÏ ÆÁÊÌÁ (ÆÁÊÌÁ, ËÏÔÏÒÙÊ ×Ù +ÒÅÄÁËÔÉÒÏ×ÁÌÉ, ÎÅ ÓÏÈÒÁÎÅÎÎÏÇÏ), É ÚÁÔÅÍ ÎÁÂÒÁ× M-x recover-file. +ëÏÇÄÁ Õ ×ÁÓ ÚÁÐÒÏÓÑÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÅ, ÎÁÂÅÒÉÔÅ yes, ÞÔÏÂÙ +×ÏÓÓÔÁÎÏ×ÉÔØ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎÅÎÎÙÅ ÄÁÎÎÙÅ. * ïâìáóôø üèï (ECHO AREA) ------------------------- -åÓÌÉ Emacs ×ÉÄÉÔ ÞÔÏ ×Ù ÍÅÄÌÅÎÎÏ ÎÁÂÉÒÁÅÔÅ ËÏÍÁÎÄÙ, ÏÎ ÐÏËÁÚÙ×ÁÅÔ ÉÈ ×ÁÍ -×ÎÉÚÕ ÜËÒÁÎÁ, × ÏÂÌÁÓÔÉ ÎÁÚÙ×ÁÅÍÏÊ "ÏÂÌÁÓÔØ ÜÈÏ". ïÂÌÁÓÔØ ÜÈÏ -- ÜÔÏ ÓÁÍÁÑ -ÎÉÖÎÑÑ ÓÔÒÏËÁ ÜËÒÁÎÁ. +åÓÌÉ Emacs ×ÉÄÉÔ, ÞÔÏ ×Ù ÍÅÄÌÅÎÎÏ ÎÁÂÉÒÁÅÔÅ ËÏÍÁÎÄÙ ÉÚ ÎÅÓËÏÌØËÉÈ ÓÉÍ×ÏÌÏ×, +ÔÏ ÏÎ ÐÏËÁÚÙ×ÁÅÔ ÉÈ ×ÁÍ ×ÎÉÚÕ ÜËÒÁÎÁ, × ÏÂÌÁÓÔÉ ÎÁÚÙ×ÁÅÍÏÊ "ÏÂÌÁÓÔØ ÜÈÏ". +ïÂÌÁÓÔØ ÜÈÏ -- ÜÔÏ ÓÁÍÁÑ ÎÉÖÎÑÑ ÓÔÒÏËÁ ÜËÒÁÎÁ. -* óôòïëá òåöéíá +* óôòïëá óïóôïñîéñ ------------------ -óÔÒÏËÁ ÓÒÁÚÕ ÎÁÄ ÏÂÌÁÓÔØÀ ÜÈÏ ÎÁÚÙ×ÁÅÔÓÑ "ÓÔÒÏËÁ ÓÏÓÔÏÑÎÉÑ". -÷ÙÇÌÑÄÉÔ ÜÔÁ ÓÔÒÏËÁ ÐÒÉÍÅÒÎÏ ÔÁË: +óÔÒÏËÁ ÓÒÁÚÕ ÎÁÄ ÏÂÌÁÓÔØÀ ÜÈÏ ÎÁÚÙ×ÁÅÔÓÑ "ÓÔÒÏËÏÊ ÓÏÓÔÏÑÎÉÑ". ÷ÙÇÌÑÄÉÔ ÜÔÁ +ÓÔÒÏËÁ ÐÒÉÍÅÒÎÏ ÔÁË: ---:** TUTORIAL (Fundamental)--L670--58%---------------- +--:** TUTORIAL.ru 63% L749 (Fundamental)----------------------- üÔÁ ÓÔÒÏËÁ ÓÏÏÂÝÁÅÔ ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ Emacs É ÔÅËÓÔÁ, ËÏÔÏÒÙÊ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ. -÷Ù ÕÖÅ ÚÎÁÅÔÅ ÞÔÏ ÏÚÎÁÞÁÅÔ ÉÍÑ ÆÁÊÌÁ -- ÜÔÏ ÆÁÊÌ, ËÏÔÏÒÙÊ ×Ù ÏÔËÒÙÌÉ. -NN%-- +÷Ù ÕÖÅ ÚÎÁÅÔÅ, ÞÔÏ ÏÚÎÁÞÁÅÔ ÉÍÑ ÆÁÊÌÁ -- ÜÔÏ ÆÁÊÌ, ËÏÔÏÒÙÊ ×Ù ÏÔËÒÙÌÉ. NN% ÐÏËÁÚÙ×ÁÅÔ ÔÅËÕÝÕÀ ÐÏÚÉÃÉÀ ËÕÒÓÏÒÁ × ÔÅËÓÔÅ; ÜÔÏ ÏÚÎÁÞÁÅÔ ÞÔÏ NN ÐÒÏÃÅÎÔÏ× -ÔÅËÓÔÁ ×ÙÛÅ, ÞÅÍ ÎÁÞÁÌÏ ÜËÒÁÎÁ. åÓÌÉ ÐÅÒ×ÁÑ ÓÔÒÏËÁ ÎÁÈÏÄÉÔÓÑ × ÐÅÒ×ÏÊ ÓÔÒÏËÅ -ÜËÒÁÎÁ, ×Ù ÔÁÍ Õ×ÉÄÉÔÅ --Top-- ×ÍÅÓÔÏ --00%--. åÓÌÉ ÎÁ ÜËÒÁÎÅ ÏÔÏÂÒÁÖÁÅÔÓÑ -ÐÏÓÌÅÄÎÑÑ ÓÔÒÏËÁ, ÔÏ ÂÕÄÅÔ ÏÔÏÂÒÁÖÅÎÏ --Bot--. åÓÌÉ ÔÅËÓÔ ÎÁÓÔÏÌØËÏ ÍÁÌ, ÞÔÏ -×ÅÓØ ×ÍÅÝÁÅÔÓÑ × ÜËÒÁÎ, ÓÔÒÏËÁ ÓÏÓÔÏÑÎÉÑ ÓÏÏÂÝÉÔ --All--. - -âÕË×Á L É ÃÉÆÒÙ ÐÏËÁÚÙ×ÁÀÔ ÐÏÚÉÃÉÀ ÄÒÕÇÉÍ ÓÐÏÓÏÂÏÍ: ÏÎÉ ÐÏËÁÚÙ×ÁÀÔ ÎÏÍÅÒ -ÔÅËÕÝÅÊ ÓÔÒÏËÉ Ó ËÕÒÓÏÒÏÍ. - -ú×ÅÚÄÏÞËÉ × ÎÁÞÁÌÅ ÓÔÒÏËÉ ÏÚÎÁÞÁÀÔ, ÞÔÏ ×Ù ÉÚÍÅÎÑÌÉ ÔÅËÓÔ. ëÁË ÔÏÌØËÏ ×Ù -ÏÔËÒÙÌÉ ÉÌÉ ÓÏÈÒÁÎÉÌÉ ÆÁÊÌ, ÜÔÁ ÞÁÓÔØ ÓÔÒÏËÉ ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÎÅ Ú×ÅÚÄÏÞËÉ, Á -ÔÉÒÅ. - -þÁÓÔØ ÓÔÒÏËÉ ÓÔÁÔÕÓÁ ×ÎÕÔÒÉ ÓËÏÂÏË ÓÏÏÂÝÁÅÔ ×ÁÍ ÒÅÖÉÍ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ, -ËÏÔÏÒÙÍ ×Ù ÐÏÌØÚÕÅÔÅÓØ. óÔÁÎÄÁÒÔÎÙÊ ÒÅÖÉÍ -- Fundamental, ÅÇÏ ×Ù ÉÓÐÏÌØÚÕÅÔÅ -É ÓÅÊÞÁÓ. üÔÏ ÐÒÉÍÅÒ "ÏÓÎÏ×ÎÏÇÏ ÒÅÖÉÍÁ" ("major mode"). - -Emacs ÉÍÅÅÔ ÍÎÏÇÏ ÒÁÚÌÉÞÎÙÈ ÏÓÎÏ×ÎÙÈ ÒÅÖÉÍÏ×. îÅËÏÔÏÒÙÅ ÉÚ ÒÅÖÉÍÏ× ÏÚÎÁÞÁÀÔ, -ÞÔÏ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÔÅËÓÔ ÎÁ ÒÁÚÌÉÞÎÏÍ ÑÚÙËÅ É/ÉÌÉ ÒÁÚÌÉÞÎÙÅ ×ÉÄÙ ÔÅËÓÔÁ, -ÔÁËÉÅ ËÁË Lisp-ÒÅÖÉÍ, Text-ÒÅÖÉÍ É ÐÒ. ÷ ÌÀÂÏÅ ×ÒÅÍÑ ÄÅÊÓÔ×ÕÅÔ ÔÏÌØËÏ ÏÄÉÎ -ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ, É ÅÇÏ ÎÁÚ×ÁÎÉÅ ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ × ÓËÏÂËÁÈ, ÇÄÅ ÓÅÊÞÁÓ -ÎÁÈÏÄÉÔÓÑ ÓÌÏ×Ï "Fundamental" (ÂÁÚÏ×ÙÊ). - -ëÁÖÄÙÊ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ÏÔÌÉÞÉÔÅÌØÎÙÈ ËÏÍÁÎÄ. îÁÐÒÉÍÅÒ, ËÏÍÁÎÄÙ -ÓÏÚÄÁÎÉÑ ËÏÍÍÅÎÔÁÒÉÑ × ÐÒÏÇÒÁÍÍÅ, É ÐÏÓËÏÌØËÕ × ËÁÖÄÏÍ ÑÚÙËÅ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ -ËÏÍÍÅÎÔÁÒÉÉ ÚÁÐÉÓÙ×ÁÀÔÓÑ ÐÏ-Ó×ÏÅÍÕ, ËÁÖÄÙÊ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ ×ÓÔÁ×ÌÑÅÔ ÉÈ -ÐÏ-ÒÁÚÎÏÍÕ. ëÁÖÄÙÊ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÉÍÅÅÔ ÉÍÅÎÏ×ÁÎÎÕÀ ËÏÍÁÎÄÕ, ËÏÔÏÒÁÑ ×ËÌÀÞÁÅÔ -ÅÇÏ. îÁÐÒÉÍÅÒ, M-x fundamental-mode - ËÏÍÁÎÄÁ, ËÏÔÏÒÁÑ ÐÅÒÅËÌÀÞÁÅÔ × ÂÁÚÏ×ÙÊ -(Fundamental) ÒÅÖÉÍ. - -åÓÌÉ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÁÎÇÌÉÊÓËÉÊ ÔÅËÓÔ, ÎÁÐÒÉÍÅÒ ËÁË ÜÔÏÔ (//ËÏÎÅÞÎÏ ÎÅ ÉÍÅÎÎÏ -ÜÔÏÔ, Á TUTORIAL) ÆÁÊÌ, ×Ù ×ÅÒÏÑÔÎÏ ÄÏÌÖÎÙ ÐÅÒÅËÌÀÞÉÔØÓÑ × Text-ÒÅÖÉÍ. +ÔÅËÓÔÁ ÎÁÈÏÄÑÔÓÑ ×ÙÛÅ, ÞÅÍ ÎÁÞÁÌÏ ÜËÒÁÎÁ. åÓÌÉ ÐÅÒ×ÁÑ ÓÔÒÏËÁ ×ÓÅÇÏ ÔÅËÓÔÁ +ÎÁÈÏÄÉÔÓÑ × ÐÅÒ×ÏÊ ÓÔÒÏËÅ ÜËÒÁÎÁ, ×Ù ÔÁÍ Õ×ÉÄÉÔÅ "Top" ×ÍÅÓÔÏ "0%". åÓÌÉ ÎÁ +ÜËÒÁÎÅ ÏÔÏÂÒÁÖÁÅÔÓÑ ÐÏÓÌÅÄÎÑÑ ÓÔÒÏËÁ, ÔÏ ÂÕÄÅÔ ÏÔÏÂÒÁÖÅÎÏ "Bot". åÓÌÉ ÔÅËÓÔ +ÎÁÓÔÏÌØËÏ ÍÁÌ, ÞÔÏ ×ÅÓØ ×ÍÅÝÁÅÔÓÑ × ÜËÒÁÎ, ÔÏ ÓÔÒÏËÁ ÓÏÓÔÏÑÎÉÑ ÓÏÏÂÝÉÔ +"All". + +âÕË×Á L É ÃÉÆÒÙ ÐÏËÁÚÙ×ÁÀÔ ÐÏÚÉÃÉÀ ÄÒÕÇÉÍ ÓÐÏÓÏÂÏÍ -- ÏÎÉ ÐÏËÁÚÙ×ÁÀÔ ÎÏÍÅÒ +ÓÔÒÏËÉ × ËÏÔÏÒÏÊ ÎÁÈÏÄÉÔÓÑ ËÕÒÓÏÒ. + +ú×ÅÚÄÏÞËÉ × ÎÁÞÁÌÅ ÓÔÒÏËÉ ÏÚÎÁÞÁÀÔ, ÞÔÏ ×Ù ÉÚÍÅÎÑÌÉ ÔÅËÓÔ. ðÒÉ ÏÔËÒÙÔÉÉ ÉÌÉ +ÓÏÈÒÁÎÅÎÉÉ ÆÁÊÌÁ, ÜÔÁ ÞÁÓÔØ ÓÔÒÏËÉ ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÎÅ Ú×ÅÚÄÏÞËÉ, Á ÔÉÒÅ. + +þÁÓÔØ ÓÔÒÏËÉ ÓÔÁÔÕÓÁ ×ÎÕÔÒÉ ÓËÏÂÏË ÓÏÏÂÝÁÅÔ ×ÁÍ Ï ÒÅÖÉÍÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ, +ËÏÔÏÒÙÍ ×Ù ÓÅÊÞÁÓ ÉÓÐÏÌØÚÕÅÔÅ. óÔÁÎÄÁÒÔÎÙÊ ÒÅÖÉÍ -- Fundamental, ÏÎ +ÉÓÐÏÌØÚÕÅÔÓÑ É ÄÁÎÎÏÍ ÄÏËÕÍÅÎÔÅ. üÔÏ ÐÒÉÍÅÒ "ÏÓÎÏ×ÎÏÇÏ ÒÅÖÉÍÁ" ("major +mode"). + +Emacs ÉÍÅÅÔ ÍÎÏÇÏ ÒÁÚÌÉÞÎÙÈ ÏÓÎÏ×ÎÙÈ ÒÅÖÉÍÏ×. îÅËÏÔÏÒÙÅ ÉÚ ÒÅÖÉÍÏ× +ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÔÅËÓÔÁ ÎÁ ÒÁÚÌÉÞÎÙÈ ÑÚÙËÁÈ É/ÉÌÉ ÒÁÚÌÉÞÎÙÈ +×ÉÄÏ× ÔÅËÓÔÁ, ÔÁËÉÅ ËÁË Lisp-ÒÅÖÉÍ, Text-ÒÅÖÉÍ É ÐÒ. ÷ ËÁÖÄÙÊ ÍÏÍÅÎÔ +×ÒÅÍÅÎÉ ÄÅÊÓÔ×ÕÅÔ ÔÏÌØËÏ ÏÄÉÎ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ, É ÅÇÏ ÎÁÚ×ÁÎÉÅ ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ +× ÓËÏÂËÁÈ -- ÔÁÍ, ÇÄÅ ÓÅÊÞÁÓ ÎÁÈÏÄÉÔÓÑ ÓÌÏ×Ï "Fundamental" (ÂÁÚÏ×ÙÊ). + +ëÁÖÄÙÊ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÚÁÓÔÁ×ÌÑÅÔ ÎÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ ×ÅÓÔÉ ÓÅÂÑ ÎÅÍÎÏÇÏ ÐÏ +ÄÒÕÇÏÍÕ. îÁÐÒÉÍÅÒ, ÜÔÏ ËÏÍÁÎÄÙ ÓÏÚÄÁÎÉÑ ËÏÍÍÅÎÔÁÒÉÅ× × ÐÒÏÇÒÁÍÍÅ, É +ÐÏÓËÏÌØËÕ × ËÁÖÄÏÍ ÑÚÙËÅ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ËÏÍÍÅÎÔÁÒÉÉ ÚÁÐÉÓÙ×ÁÀÔÓÑ +ÐÏ-Ó×ÏÅÍÕ, ÔÏ É ËÁÖÄÙÊ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ ×ÓÔÁ×ÌÑÅÔ ÉÈ ÐÏ-ÒÁÚÎÏÍÕ. ëÁÖÄÙÊ +ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÉÍÅÅÔ ÉÍÅÎÏ×ÁÎÎÕÀ ËÏÍÁÎÄÕ, ËÏÔÏÒÁÑ ×ËÌÀÞÁÅÔ ÅÇÏ. îÁÐÒÉÍÅÒ, +M-x fundamental-mode -- ÜÔÏ ËÏÍÁÎÄÁ, ËÏÔÏÒÁÑ ×ËÌÀÞÁÅÔ ÂÁÚÏ×ÙÊ (Fundamental) +ÒÅÖÉÍ. + +åÓÌÉ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÔÅËÓÔ ÎÁ ÅÓÔÅÓÔ×ÅÎÎÏÍ ÑÚÙËÅ, ÎÁÐÒÉÍÅÒ, ËÁË ÜÔÏÔ ÆÁÊÌ, +ÔÏ ×Ù ×ÅÒÏÑÔÎÏ ÄÏÌÖÎÙ ÐÅÒÅËÌÀÞÉÔØÓÑ × Text-ÒÅÖÉÍ. >> îÁÂÅÒÉÔÅ M-x text mode. îÅ ×ÏÌÎÕÊÔÅÓØ, ÎÉ ÏÄÎÁ ÉÚ ×ÙÕÞÅÎÎÙÈ ×ÁÍÉ ËÏÍÁÎÄ Emacs ÎÅ ÉÚÍÅÎÉÌÁÓØ. îÏ ×Ù -ÍÏÖÉÔÅ ÚÁÍÅÔÉÔØ, ÞÔÏ M-f É M-b ÔÅÐÅÒØ ÒÁÚÌÉÞÁÔØ ÁÐÏÓÔÒÏÆÙ ËÁË ÞÁÓÔÉ ÓÌÏ×Á. -òÁÎÅÅ, × ÂÁÚÏ×ÏÍ ÒÅÖÉÍÅ (Fundamental mode), M-f É M-b ÐÏÎÉÍÁÌÉ ÁÐÏÓÔÒÏÆÙ -ËÁË ÒÁÚÄÅÌÉÔÅÌÉ ÓÌÏ×. +ÍÏÖÅÔÅ ÚÁÍÅÔÉÔØ, ÞÔÏ M-f É M-b ÔÅÐÅÒØ ÒÁÓÓÍÁÔÒÉ×ÁÀÔ ÁÐÏÓÔÒÏÆÙ ËÁË ÞÁÓÔØ +ÓÌÏ×Á. òÁÎÅÅ, × ÂÁÚÏ×ÏÍ ÒÅÖÉÍÅ (Fundamental mode), M-f É M-b ÐÏÎÉÍÁÌÉ +ÁÐÏÓÔÒÏÆÙ ËÁË ÒÁÚÄÅÌÉÔÅÌÉ ÓÌÏ×. ïÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÏÂÙÞÎÏ ÄÅÌÁÅÔ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ, ÔÁËÉÅ ËÁË: ÂÏÌØÛÉÎÓÔ×Ï -ËÏÍÁÎÄ ÄÅÌÁÀÔ "ÔÕ ÖÅ ÒÁÂÏÔÕ" × ËÁÖÄÏÍ ÉÚ ÒÅÖÉÍÏ×, ÎÏ ÉÈ ÒÁÂÏÔÁ ÏÔÌÉÞÁÅÔÓÑ -ËÁËÏÊ-ÎÉÂÕÄØ ÍÅÌÏÞØÀ. +ËÏÍÁÎÄ ÄÅÌÁÀÔ "ÏÄÎÕ É ÔÕ ÖÅ ÒÁÂÏÔÕ" × ËÁÖÄÏÍ ÉÚ ÒÅÖÉÍÏ×, ÎÏ ÉÈ ÄÅÊÓÔ×ÉÅ +ÏÔÌÉÞÁÅÔÓÑ ËÁËÏÊ-ÎÉÂÕÄØ ÍÅÌÏÞØÀ. -äÌÑ ÐÒÏÓÍÏÔÒÁ ÄÏËÕÍÅÎÔÁÃÉÉ Ï ×ÁÛÅÍ ÔÅËÕÝÅÍ ÏÓÎÏ×ÎÏÍ ÒÅÖÉÍÅ, ÎÁÖÍÉÔÅ C-h m. +äÌÑ ÐÒÏÓÍÏÔÒÁ ÄÏËÕÍÅÎÔÁÃÉÉ Ï ÔÅËÕÝÅÍ ÏÓÎÏ×ÎÏÍ ÒÅÖÉÍÅ, ÎÁÖÍÉÔÅ C-h m. ->> éÓÐÏÌØÚÕÊÔÅ C-u C-v ÏÄÉÎ ÒÁÚ ÉÌÉ ÂÏÌÅÅ, ÞÔÏÂÙ ÒÁÓÐÏÌÏÖÉÔØ ÜÔÕ ÓÔÒÏËÕ ÂÌÉÖÅ - Ë ×ÅÒÈÕ ÜËÒÁÎÁ. ->> îÁÂÅÒÉÔÅ C-h m, ÞÔÏ ÐÏÓÍÏÔÒÅÔØ ÏÔÌÉÞÉÑ Text-ÒÅÖÉÍÁ ÏÔ ÂÁÚÏ×ÏÇÏ. ->> îÁÂÅÒÉÔÅ C-x 1 ÞÔÏÂÙ ÕÂÒÁÔØ ÄÏËÕÍÅÎÔÁÃÉÀ Ó ÇÌÁÚ ÄÏÌÏÊ :) +>> éÓÐÏÌØÚÕÊÔÅ C-u C-v ÏÄÉÎ ÒÁÚ ÉÌÉ ÂÏÌÅÅ, ÞÔÏÂÙ ÒÁÓÐÏÌÏÖÉÔØ ÜÔÕ ÓÔÒÏËÕ + ÂÌÉÖÅ Ë ×ÅÒÈÕ ÜËÒÁÎÁ. +>> îÁÂÅÒÉÔÅ C-h m, ÞÔÏÂÙ ÐÏÓÍÏÔÒÅÔØ ÏÔÌÉÞÉÑ Text-ÒÅÖÉÍÁ ÏÔ ÂÁÚÏ×ÏÇÏ. +>> îÁÂÅÒÉÔÅ C-x 1, ÞÔÏÂÙ ÕÂÒÁÔØ ÄÏËÕÍÅÎÔÁÃÉÀ Ó ÇÌÁÚ ÄÏÌÏÊ :) -ïÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÎÁÚÙ×ÁÅÔÓÑ ÏÓÎÏ×ÎÙÍ ÐÏÔÏÍÕ, ÞÔÏ ÅÓÔØ ÎÅÓËÏÌØËÏ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ -(minor) ÒÅÖÉÍÏ×. äÏÐÏÌÎÉÔÅÌØÎÙÅ ÒÅÖÉÍÙ ÎÅ Ñ×ÌÑÀÔÓÑ ÁÌØÔÅÒÎÁÔÉ×ÁÍÉ ÏÓÎÏ×ÎÙÍ, -ÏÎÉ ÔÏÌØËÏ ÎÅÍÎÏÇÏ ÉÚÍÅÎÑÀÔ ÉÈ ÐÏ×ÅÄÅÎÉÅ. ëÁÖÄÙÊ ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ÒÅÖÉÍ -×ËÌÀÞÁÅÔÓÑ/×ÙËÌÀÞÁÅÔÓÑ ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÄÒÕÇÉÈ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÒÅÖÉÍÏ×, É -ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ×ÁÛÅÇÏ ÏÓÎÏ×ÎÏÇÏ ÒÅÖÉÍÁ. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ -ÂÅÚ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ, ÉÌÉ Ó ÌÀÂÏÊ ÉÈ ËÏÍÂÉÎÁÃÉÅÊ. +ïÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÎÁÚÙ×ÁÅÔÓÑ ÏÓÎÏ×ÎÙÍ ÐÏÔÏÍÕ, ÞÔÏ ÔÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ +ÄÏÐÏÌÎÉÔÅÌØÎÙÅ (minor) ÒÅÖÉÍÙ. äÏÐÏÌÎÉÔÅÌØÎÙÅ ÒÅÖÉÍÙ ÎÅ Ñ×ÌÑÀÔÓÑ +ÁÌØÔÅÒÎÁÔÉ×ÁÍÉ ÏÓÎÏ×ÎÙÍ, ÏÎÉ ÔÏÌØËÏ ÎÅÍÎÏÇÏ ÉÚÍÅÎÑÀÔ ÉÈ ÐÏ×ÅÄÅÎÉÅ. ëÁÖÄÙÊ +ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ÒÅÖÉÍ ×ËÌÀÞÁÅÔÓÑ/×ÙËÌÀÞÁÅÔÓÑ ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÄÒÕÇÉÈ +ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÒÅÖÉÍÏ×, É ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ×ÁÛÅÇÏ ÏÓÎÏ×ÎÏÇÏ ÒÅÖÉÍÁ. ÷Ù ÍÏÖÅÔÅ +ÉÓÐÏÌØÚÏ×ÁÔØ ÏÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÂÅÚ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ, ÉÌÉ Ó ÌÀÂÏÊ ÉÈ ËÏÍÂÉÎÁÃÉÅÊ. ïÄÉÎ ÉÚ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÒÅÖÉÍÏ× ÏÞÅÎØ ÐÏÌÅÚÅÎ, ÏÓÏÂÅÎÎÏ ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ -ÔÅËÓÔÁ - ÜÔÏ ÒÅÖÉÍ Á×ÔÏÚÁÐÏÌÎÅÎÉÑ (Auto Fill mode). ëÏÇÄÁ ÜÔÏÔ ÒÅÖÉÍ -×ËÌÀÞÅÎ, Emacs ÒÁÚÒÙ×ÁÅÔ ÓÔÒÏËÉ ÍÅÖÄÕ ÓÌÏ×ÁÍÉ Á×ÔÏÍÁÔÉÞÅÓËÉ, ËÏÇÄÁ ×Ù -×ÓÔÁ×ÌÑÅÔÅ ÔÅËÓÔ É ÄÅÌÁÅÔÅ ÓÔÒÏËÉ ÓÌÉÛËÏÍ ÄÌÉÎÎÙÍÉ. +ÔÅËÓÔÁ -- ÜÔÏ ÒÅÖÉÍ Á×ÔÏÚÁÐÏÌÎÅÎÉÑ (Auto Fill mode). ëÏÇÄÁ ÜÔÏÔ ÒÅÖÉÍ +×ËÌÀÞÅÎ, ÔÏ Emacs ÒÁÚÒÙ×ÁÅÔ ÓÔÒÏËÉ ÍÅÖÄÕ ÓÌÏ×ÁÍÉ Á×ÔÏÍÁÔÉÞÅÓËÉ, × ÔÅÈ +ÓÌÕÞÁÑÈ ËÏÇÄÁ ×Ù ×ÓÔÁ×ÌÑÅÔÅ ÔÅËÓÔ É ÄÅÌÁÅÔÅ ÓÔÒÏËÉ ÓÌÉÛËÏÍ ÄÌÉÎÎÙÍÉ. -÷Ù ÍÏÖÅÔÅ ×ËÌÀÞÉÔØ ÒÅÖÉÍ Á×ÔÏÚÁÐÏÌÎÅÎÉÑ ÎÁÂÒÁ× M-x auto fill mode. -ëÏÇÄÁ ÜÔÏÔ ÒÅÖÉÍ ×ËÌÀÞÅÎ, ÅÇÏ ÍÏÖÎÏ ×ÙËÌÀÞÉÔØ - M-x auto fill mode. -åÓÌÉ ÒÅÖÉÍ ×ËÌÀÞÅÎ -- ËÏÍÁÎÄÁ ÅÇÏ ×ÙËÌÀÞÉÔ, ÅÓÌÉ ×ÙËÌÀÞÅÎ -- ×ËÌÀÞÉÔ. íÙ -ÎÁÚÙ×ÁÅÍ ÜÔÏ ËÏÍÁÎÄÏÊ "ÐÅÒÅËÌÀÞÅÎÉÑ ÒÅÖÉÍÁ". +÷Ù ÍÏÖÅÔÅ ×ËÌÀÞÉÔØ ÒÅÖÉÍ Á×ÔÏÚÁÐÏÌÎÅÎÉÑ, ÎÁÂÒÁ× M-x auto fill mode. +ëÏÇÄÁ ÜÔÏÔ ÒÅÖÉÍ ×ËÌÀÞÅÎ, ÅÇÏ ÍÏÖÎÏ ×ÙËÌÀÞÉÔØ Ó ÐÏÍÏÝØÀ ÔÏÊ ÖÅ ËÏÍÁÎÄÙ -- +M-x auto fill mode. åÓÌÉ ÒÅÖÉÍ ×ËÌÀÞÅÎ, ÔÏ ÔÁËÁÑ ËÏÍÁÎÄÁ ÅÇÏ +×ÙËÌÀÞÉÔ, ÅÓÌÉ ×ÙËÌÀÞÅÎ, ÔÏ ×ËÌÀÞÉÔ. íÙ ÎÁÚÙ×ÁÅÍ ÜÔÏ ËÏÍÁÎÄÏÊ "ÐÅÒÅËÌÀÞÅÎÉÑ +ÒÅÖÉÍÁ". ->> îÁÂÅÒÉÔÅ M-x auto fill mode. úÁÔÅÍ ××ÏÄÉÔÅ ÓÔÒÏËÕ ÉÚ ÓÌÏ× - "ÆÙ×Á " ÐÏËÁ ÎÅ Õ×ÉÄÉÔÅ ËÁË ÏÎÁ ÒÁÚÄÅÌÉÔÓÑ ÎÁ Ä×Å ÓÔÒÏËÉ. ÷Ù ÄÏÌÖÎÙ - ÐÏÍÅÝÁÔØ ÐÒÏÂÅÌÙ ÍÅÖÄÕ ÓÌÏ×ÁÍÉ, ÐÏÔÏÍÕ ÞÔÏ ÒÅÖÉÍ Á×ÔÏÚÁÐÏÌÎÅÎÉÑ ÒÁÚÄÅÌÑÅÔ - ÓÔÒÏËÉ ÔÏÌØËÏ ÐÏ ÐÒÏÂÅÌÁÍ. +>> îÁÂÅÒÉÔÅ M-x auto fill mode. úÁÔÅÍ ××ÏÄÉÔÅ ÓÔÒÏËÕ ÉÚ ÓÌÏ× "ÆÙ×Á " + ÐÏËÁ ÎÅ Õ×ÉÄÉÔÅ, ËÁË ÏÎÁ ÒÁÚÄÅÌÉÔÓÑ ÎÁ Ä×Å ÓÔÒÏËÉ. ÷Ù ÄÏÌÖÎÙ ÐÏÍÅÝÁÔØ + ÐÒÏÂÅÌÙ ÍÅÖÄÕ ÓÌÏ×ÁÍÉ, ÐÏÔÏÍÕ ÞÔÏ ÒÅÖÉÍ Á×ÔÏÚÁÐÏÌÎÅÎÉÑ ÒÁÚÂÉ×ÁÅÔ ÓÔÒÏËÉ + ÔÏÌØËÏ ÐÏ ÐÒÏÂÅÌÁÍ. -çÒÁÎÉÃÁ ÏÂÙÞÎÏ ×ÙÓÔÁ×ÌÅÎÁ ÎÁ 70-ÔÉ ÓÉÍ×ÏÌÁÈ, ÎÏ ×Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÅÅ -ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ C-x f. ÷Ù ÄÏÌÖÎÙ ÚÁÄÁÔØ ÇÒÁÎÉÃÕ × ×ÉÄÅ ÞÉÓÌÏ×ÏÇÏ ÁÒÇÕÍÅÎÔÁ -ÄÌÑ ÜÔÏÊ ËÏÍÁÎÄÙ. +çÒÁÎÉÃÁ ÒÁÚÂÉÅÎÉÑ ÏÂÙÞÎÏ ÒÁ×ÎÁ 70-ÔÉ ÓÉÍ×ÏÌÁÍ, ÎÏ ×Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÅÅ +ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ C-x f. ÷Ù ÄÏÌÖÎÙ ÚÁÄÁÔØ ÇÒÁÎÉÃÕ × ×ÉÄÅ ÞÉÓÌÏ×ÏÇÏ +ÁÒÇÕÍÅÎÔÁ ÄÌÑ ÜÔÏÊ ËÏÍÁÎÄÙ. ->> ÷×ÅÄÉÔÅ C-x f Ó ÁÒÇÕÍÅÎÔÏÍ 20. (C-u 2 0 C-x f). úÁÔÅÍ ××ÅÄÉÔÅ - ËÁËÏÊ-ÎÉÂÕÄØ ÔÅËÓÔ, É ÐÏÓÍÏÔÒÉÔÅ ËÁË Emacs ÚÁÐÏÌÎÑÅÔ ÓÔÒÏËÉ ÐÏ 20 - ÓÉÍ×ÏÌÏ× × ËÁÖÄÏÊ. ÷ÅÒÎÉÔÅ ÚÎÁÞÅÎÉÅ ÇÒÁÎÉÃÙ 70 ÎÁÚÁÄ, - ÓÎÏ×Á ÉÓÐÏÌØÚÕÑ C-x f. +>> ÷×ÅÄÉÔÅ C-x f Ó ÁÒÇÕÍÅÎÔÏÍ 20 (C-u 2 0 C-x f). úÁÔÅÍ ××ÅÄÉÔÅ ËÁËÏÊ-ÎÉÂÕÄØ + ÔÅËÓÔ, É ÐÏÓÍÏÔÒÉÔÅ ËÁË Emacs ÚÁÐÏÌÎÑÅÔ ÓÔÒÏËÉ ÐÏ 20 ÓÉÍ×ÏÌÏ× × ËÁÖÄÏÊ. + ÷ÅÒÎÉÔÅ ÚÎÁÞÅÎÉÅ ÇÒÁÎÉÃÙ ÒÁ×ÎÏÅ 70 ÎÁÚÁÄ, ÉÓÐÏÌØÚÕÑ ËÏÍÁÎÄÕ C-x f. -åÓÌÉ ×Ù ÓÄÅÌÁÌÉ ÉÚÍÅÎÅÎÉÑ × ÓÅÒÅÄÉÎÅ ÐÁÒÁÇÒÁÆÁ, Á×ÔÏÚÁÐÏÌÎÅÎÉÅ ÎÅ ÐÅÒÅÓÔÒÏÉÔ -ÔÅËÓÔ ÄÌÑ ×ÁÓ. þÔÏÂÙ ÐÅÒÅÓÔÒÏÉÔØ ÐÁÒÁÇÒÁÆ, ÎÁÂÅÒÉÔÅ M-q (META-q) × ÔÏ ×ÒÅÍÑ, -ËÏÇÄÁ ËÕÒÓÏÒ ÎÁÈÏÄÉÔÓÑ ×ÎÕÔÒÉ ÐÁÒÁÇÒÁÆÁ. +åÓÌÉ ×Ù ÓÄÅÌÁÌÉ ÉÚÍÅÎÅÎÉÑ × ÓÅÒÅÄÉÎÅ ÐÁÒÁÇÒÁÆÁ, ÔÏ Á×ÔÏÚÁÐÏÌÎÅÎÉÅ ÎÅ +ÐÅÒÅÆÏÒÍÁÔÉÒÕÅÔ ÔÅËÓÔ Á×ÔÏÍÁÔÉÞÅÓËÉ. þÔÏÂÙ ÐÅÒÅÆÏÒÍÁÔÉÒÏ×ÁÔØ ÐÁÒÁÇÒÁÆ, +ÎÁÂÅÒÉÔÅ M-q (META-q) ËÏÇÄÁ ËÕÒÓÏÒ ÎÁÈÏÄÉÔÓÑ ×ÎÕÔÒÉ ÐÁÒÁÇÒÁÆÁ. >> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ × ÐÒÅÄÙÄÕÝÉÊ ÐÁÒÁÇÒÁÆ, É ÎÁÖÍÉÔÅ M-q. @@ -806,256 +862,277 @@ Emacs * ðïéóë ------- -Emacs ÕÍÅÅÔ ÉÓËÁÔØ ÓÔÒÏËÉ (ÜÔÏ ÎÅÐÒÅÒÙ×ÎÙÅ ÇÒÕÐÐÙ ÓÉÍ×ÏÌÏ× ÉÌÉ ÓÌÏ×Á) ×ÐÅÒÅÄ -ÐÏ ÔÅËÓÔÕ, ÉÌÉ ÎÁÚÁÄ. ðÏÉÓË ÓÔÒÏËÉ ÜÔÏ ËÏÍÁÎÄÁ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ; ÏÎÁ +Emacs ÕÍÅÅÔ ÉÓËÁÔØ ÓÔÒÏËÉ (ÎÅÐÒÅÒÙ×ÎÙÅ ÇÒÕÐÐÙ ÓÉÍ×ÏÌÏ× ÉÌÉ ÓÌÏ×Á) ×ÐÅÒÅÄ ÉÌÉ +ÎÁÚÁÄ ÐÏ ÔÅËÓÔÕ. ðÏÉÓË ÓÔÒÏËÉ -- ÜÔÏ ËÏÍÁÎÄÁ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ; ÏÎÁ ÐÅÒÅÍÅÝÁÅÔ ËÕÒÓÏÒ × ÓÌÅÄÕÀÝÕÀ ÔÏÞËÕ, ÇÄÅ ÎÁÊÄÅÎÁ ÉÓËÏÍÁÑ ÓÔÒÏËÁ. -ëÏÍÁÎÄÁ ÐÏÉÓËÁ Emacs ÏÔÌÉÞÁÀÔÓÑ ÏÔ ÁÎÁÌÏÇÉÞÎÙÈ ËÏÍÁÎÄ ÂÏÌØÛÉÎÓÔ×Á ÄÒÕÇÉÈ -ÒÅÄÁËÔÏÒÏ× ÔÅÍ, ÞÔÏ ÏÎÁ ÉÎËÒÅÍÅÎÔÁÌØÎÁÑ. üÔÏ ÏÚÎÁÞÁÅÔ ÞÔÏ ÐÏÉÓË ÐÒÏÉÓÈÏÄÉÔ ÐÏ -ÍÅÒÅ ÔÏÇÏ ËÁË ×Ù ÎÁÂÉÒÁÅÔÅ ÉÓËÏÍÕÀ ÓÔÒÏËÕ. +ëÏÍÁÎÄÁ ÐÏÉÓËÁ Emacs ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÁÎÁÌÏÇÉÞÎÙÈ ËÏÍÁÎÄ ÂÏÌØÛÉÎÓÔ×Á ÄÒÕÇÉÈ +ÒÅÄÁËÔÏÒÏ× ÔÅÍ, ÞÔÏ ÏÎÁ ÉÎËÒÅÍÅÎÔÁÌØÎÁÑ. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÐÏÉÓË ÐÒÏÉÓÈÏÄÉÔ +ÐÏ ÍÅÒÅ, ÔÏÇÏ ËÁË ×Ù ÎÁÂÉÒÁÅÔÅ ÉÓËÏÍÕÀ ÓÔÒÏËÕ. ëÏÍÁÎÄÁ, ÎÁÞÉÎÁÀÝÁÑ ÐÏÉÓË ×ÐÅÒÅÄ -- C-s, Á C-r ÉÝÅÔ ÎÁÚÁÄ. ðïäïöäéôå! îÅ ÎÕÖÎÏ ÐÒÏÂÏ×ÁÔØ ÐÒÑÍÏ ÓÅÊÞÁÓ. -ëÏÇÄÁ ×Ù ÎÁÖÍÅÔÅ C-s ×Ù Õ×ÉÄÉÔÅ ÓÔÒÏËÕ "I-search", ÐÏÑ×É×ÛÕÀÓÑ × ÏÂÌÁÓÔÉ ÜÈÏ. -÷ÁÍ ÓÏÏÂÝÁÅÔÓÑ ÞÔÏ Emacs ÖÄÅÔ ××ÏÄÁ ÓÌÏ×Á, ËÏÔÏÒÏÅ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ. +ëÏÇÄÁ ×Ù ÎÁÖÍÅÔÅ C-s, ×Ù Õ×ÉÄÉÔÅ ÓÔÒÏËÕ "I-search", ÐÏÑ×É×ÛÕÀÓÑ × ÏÂÌÁÓÔÉ ÜÈÏ. +÷ÁÍ ÓÏÏÂÝÁÅÔÓÑ, ÞÔÏ Emacs ÖÄÅÔ ××ÏÄÁ ÓÌÏ×Á, ËÏÔÏÒÏÅ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ. ÚÁ×ÅÒÛÁÅÔ ÐÏÉÓË. ->> ôÅÐÅÒØ, ÎÁÖÍÉÔÅ C-s ÄÌÑ ÎÁÞÁÌÁ ÐÏÉÓËÁ. íÅÄÌÅÎÎÏ, ÏÄÎÕ ÂÕË×Õ ÚÁ ÏÄÉÎ ÒÁÚ, - ÎÁÂÉÒÁÊÔÅ ÓÌÏ×Ï 'ËÕÒÓÏÒ', ÏÓÔÁÎÁ×ÌÉ×ÁÑÓØ ÐÏÓÌÅ ËÁÖÄÏÊ ××ÅÄÅÎÎÏÊ ÂÕË×Ù É - ÚÁÍÅÞÁÑ ÞÔÏ ÐÒÏÉÓÈÏÄÉÔ Ó ËÕÒÓÏÒÏÍ. +>> ôÅÐÅÒØ ÎÁÖÍÉÔÅ C-s ÄÌÑ ÎÁÞÁÌÁ ÐÏÉÓËÁ. íÅÄÌÅÎÎÏ, ÐÏ ÏÄÎÏÊ ÂÕË×Å, ÎÁÂÉÒÁÊÔÅ + ÓÌÏ×Ï 'ËÕÒÓÏÒ', ÏÓÔÁÎÁ×ÌÉ×ÁÑÓØ ÐÏÓÌÅ ËÁÖÄÏÊ ××ÅÄÅÎÎÏÊ ÂÕË×Ù É ÚÁÍÅÞÁÑ ÞÔÏ + ÐÒÏÉÓÈÏÄÉÔ Ó ËÕÒÓÏÒÏÍ. óÅÊÞÁÓ ×Ù ÎÁÛÌÉ ÐÅÒ×ÏÅ ×ÈÏÖÄÅÎÉÅ ÓÌÏ×Á "ËÕÒÓÏÒ". >> îÁÖÍÉÔÅ C-s ÓÎÏ×Á, ÞÔÏÂÙ ÎÁÊÔÉ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ ÓÌÏ×Á "ËÕÒÓÏÒ". ->> ôÅÐÅÒØ ÎÁÖÍÉÔÅ ÞÅÔÙÒÅ ÒÁÚÁ É ÐÒÏÓÌÅÄÉÔÅ ÚÁ ÐÅÒÅÍÅÝÅÎÉÑÍÉ ËÕÒÓÏÒÁ. +>> ôÅÐÅÒØ ÎÁÖÍÉÔÅ ÞÅÔÙÒÅ ÒÁÚÁ É ÐÒÏÓÌÅÄÉÔÅ ÚÁ ÐÅÒÅÍÅÝÅÎÉÑÍÉ ËÕÒÓÏÒÁ. >> îÁÖÍÉÔÅ ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ ÐÏÉÓËÁ. -÷Ù ×ÉÄÅÌÉ ÞÔÏ ÐÒÏÉÓÈÏÄÉÌÏ? Emacs, × ÒÅÖÉÍÅ ÉÎËÒÅÍÅÎÔÁÌØÎÏÇÏ ÐÏÉÓËÁ, ÐÙÔÁÌÓÑ -ÐÅÒÅÈÏÄÉÔØ Ë ÓÔÒÏËÁÍ ÓÏ×ÐÁÄÁÀÝÉÍ Ó ÎÁÂÉÒÁÅÍÏÊ ×ÁÍÉ, ÐÏÄÓ×ÅÞÉ×ÁÑ ÉÈ ÄÌÑ ×ÁÓ. +÷Ù ÚÁÍÅÔÉÌÉ, ÞÔÏ ÐÒÏÉÓÈÏÄÉÌÏ? Emacs × ÒÅÖÉÍÅ ÉÎËÒÅÍÅÎÔÁÌØÎÏÇÏ ÐÏÉÓËÁ ÐÙÔÁÌÓÑ +ÐÅÒÅÈÏÄÉÔØ Ë ÓÔÒÏËÁÍ, ÓÏ×ÐÁÄÁÀÝÉÍ Ó ÎÁÂÉÒÁÅÍÏÊ ×ÁÍÉ ÓÔÒÏËÏÊ, ÐÏÄÓ×ÅÞÉ×ÁÑ ÉÈ. þÔÏÂÙ ÐÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÍÕ ×ÈÏÖÄÅÎÉÑ ÓÌÏ×Á 'ËÕÒÓÏÒ' ÐÒÏÓÔÏ ÎÁÖÍÉÔÅ C-s -ÓÎÏ×Á. åÓÌÉ ÂÏÌØÛÅ ÎÅÔ ×ÈÏÖÄÅÎÉÊ, Emacs ÉÚÄÁÓÔ Ú×ÕËÏ×ÏÊ ÓÉÇÎÁÌ, É ÓÏÏÂÝÉÔ -ÞÔÏ ×ÁÛ ÐÏÉÓË ÎÅ ÕÄÁÌÓÑ ("failing"), C-g ÔÁËÖÅ ÄÏÌÖÅÎ ÏÔÍÅÎÉÔØ ÐÏÉÓË. - -úáíåþáîéå: îÁ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ, ××ÏÄ C-s ÚÁÍÏÒÏÚÉÔ ÜËÒÁÎ É ×Ù ÎÅ Õ×ÉÄÉÔÅ -ÐÏÓÌÅÄÕÀÝÅÇÏ ×Ù×ÏÄÁ Emacs`Á. üÔÏ ÏÚÎÁÞÁÅÔ ÞÔÏ ÏÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ -"ÏÓÏÂÅÎÎÏÓÔØ" ÉÍÅÎÕÅÍÕÀ "flow control" ÐÅÒÅÈ×ÁÔÙ×ÁÀÝÕÀ C-s É ÎÅ ÐÒÏÐÕÓËÁÀÝÕÀ -ÜÔÏÔ ÓÉÍ×ÏÌ Ë Emacs`Õ. äÌÑ ÒÁÚÍÏÒÏÚËÉ ÜËÒÁÎÁ, ÎÁÖÍÉÔÅ C-q. óÍÏÔÒÉÔÅ ÒÁÚÄÅÌ -"Spontaneous Entry to Incremental Search" ÒÕËÏ×ÏÄÓÔ×Á Emacs ÞÔÏÂÙ ÕÚÎÁÔØ ËÁË +ÓÎÏ×Á. åÓÌÉ ÂÏÌØÛÅ ÎÅÔ ×ÈÏÖÄÅÎÉÊ, ÔÏ Emacs ÉÚÄÁÓÔ Ú×ÕËÏ×ÏÊ ÓÉÇÎÁÌ, É +ÓÏÏÂÝÉÔ, ÞÔÏ ×ÁÛ ÐÏÉÓË ÎÅ ÕÄÁÌÓÑ ("failing"), C-g ÔÁËÖÅ ÍÏÖÅÔ ÏÔÍÅÎÉÔØ +ÐÏÉÓË. + +úáíåþáîéå: îÁ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ, ××ÏÄ C-x C-s ÚÁÂÌÏËÉÒÕÅÔ ÜËÒÁÎ, ÔÁË ÞÔÏ ×Ù +ÎÅ Õ×ÉÄÉÔÅ ÐÏÓÌÅÄÕÀÝÅÇÏ ×Ù×ÏÄÁ Emacs`Á. ôÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ÏÚÎÁÞÁÅÔ, ÞÔÏ +ÏÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ "ÏÓÏÂÅÎÎÏÓÔØ", ÉÍÅÎÕÅÍÕÀ "flow control", +ÐÅÒÅÈ×ÁÔÙ×ÁÀÝÕÀ ÓÏÞÅÔÁÎÉÅ C-s É ÎÅ ÐÒÏÐÕÓËÁÀÝÕÀ ÜÔÏÔ ÓÉÍ×ÏÌ Ë Emacs`Õ. äÌÑ +ÓÎÑÔÉÑ ÂÌÏËÉÒÏ×ËÉ ÜËÒÁÎÁ, ÎÁÖÍÉÔÅ C-q. ïÂÒÁÔÉÔÅÓØ Ë ÒÁÚÄÅÌÕ "Spontaneous +Entry to Incremental Search" ÒÕËÏ×ÏÄÓÔ×Á Emacs, ÞÔÏÂÙ ÕÚÎÁÔØ Ï ÔÏÍ, ËÁË ÂÏÒÏÔØÓÑ Ó ÜÔÏÊ "ÏÓÏÂÅÎÎÏÓÔØÀ". -åÓÌÉ ×Ù ×Ï ×ÒÅÍÑ ÉÎËÒÅÍÅÎÔÁÌØÎÏÇÏ ÐÏÉÓËÁ ÎÁÖÍÅÔÅ , ×Ù ÍÏÖÅÔÅ ÚÁÍÅÔÉÔØ -ÞÔÏ ÐÏÓÌÅÄÎÉÊ ÓÉÍ×ÏÌ × ÉÓËÏÍÏÊ ÓÔÒÏËÅ ÕÄÁÌÉÌÓÑ, É ÐÏÉÓË ×ÅÒÎÕÌÓÑ Ë ÐÒÅÄÙÄÕÝÅÍÕ -ÎÁÊÄÅÎÎÏÍÕ ÍÅÓÔÕ. îÁÐÒÉÍÅÒ, ÐÒÅÄÐÏÌÏÖÉÍ, ÞÔÏ ×Ù ÎÁÂÒÁÌÉ "c", ÐÏÉÓË ÐÅÒÅÊÄÅÔ Ë -ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ ÓÉÍ×ÏÌÁ "c". ôÅÐÅÒØ ÅÓÌÉ ×Ù ÎÁÂÅÒÅÔÅ "u", ËÕÒÓÏÒ ÐÅÒÅÊÄÅÔ Ë -ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "cu". îÁÖÁÔÉÅ ÕÄÁÌÉÔ ÓÉÍ×ÏÌ "u" ÉÈ ÓÔÒÏËÉ ÐÏÉÓËÁ, É -ËÕÒÓÏÒ ×ÅÒÎÅÔÓÑ Ë ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "c". +åÓÌÉ ×Ù ×Ï ×ÒÅÍÑ ÉÎËÒÅÍÅÎÔÁÌØÎÏÇÏ ÐÏÉÓËÁ ÎÁÖÍÅÔÅ , ÔÏ ×Ù ÚÁÍÅÔÉÔÅ, +ÞÔÏ ÐÏÓÌÅÄÎÉÊ ÓÉÍ×ÏÌ × ÉÓËÏÍÏÊ ÓÔÒÏËÅ ÕÄÁÌÉÌÓÑ, É ÐÏÉÓË ×ÅÒÎÕÌÓÑ Ë +ÐÒÅÄÙÄÕÝÅÍÕ ÎÁÊÄÅÎÎÏÍÕ ÍÅÓÔÕ. îÁÐÒÉÍÅÒ, ÐÒÅÄÐÏÌÏÖÉÍ, ÞÔÏ ×Ù ÎÁÂÒÁÌÉ "Ë", +ÐÏÉÓË ÐÅÒÅÊÄÅÔ Ë ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ ÓÉÍ×ÏÌÁ "Ë". ôÅÐÅÒØ, ÅÓÌÉ ×Ù ÎÁÂÅÒÅÔÅ +"Õ", ËÕÒÓÏÒ ÐÅÒÅÊÄÅÔ Ë ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "ËÕ". îÁÖÁÔÉÅ ÕÄÁÌÉÔ +ÓÉÍ×ÏÌ "Õ" ÉÚ ÓÔÒÏËÉ ÐÏÉÓËÁ, É ËÕÒÓÏÒ ×ÅÒÎÅÔÓÑ Ë ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "Ë". åÓÌÉ ×Ù ×Ï ×ÒÅÍÑ ÐÏÉÓËÁ ××ÅÄÅÔÅ control- ÉÌÉ meta- ÓÉÍ×ÏÌ (ÚÁ ÎÅËÏÔÏÒÙÍÉ -ÉÓËÌÀÞÅÎÉÑÍÉ -- ÓÉÍ×ÏÌÙ ×ÙÚÙ×ÁÀÝÉÅ ÐÏÉÓË, Á ÉÍÅÎÎÏ C-s É C-r), ÐÏÉÓË -ÐÒÅËÒÁÔÉÔÓÑ. +ÉÓËÌÀÞÅÎÉÑÍÉ, ÔÁËÉÍÉ, ËÁË ÓÉÍ×ÏÌÙ ÎÁÞÉÎÁÀÝÉÅ ÐÏÉÓË, Á ÉÍÅÎÎÏ C-s É C-r), +ÐÏÉÓË ÐÒÅËÒÁÔÉÔÓÑ. -C-s ÎÁÞÉÎÁÅÔ ÐÏÉÓË É ÓÍÏÔÒÉÔ ÎÁ ÌÀÂÙÅ ×ÈÏÖÄÅÎÉÑ ÉÓËÏÍÏÊ ÓÔÒÏËÉ ðïóìå ÔÅËÕÝÅÊ -ÐÏÚÉÃÉÉ ËÕÒÓÏÒÁ. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ ÞÔÏ-ÔÏ ÒÁÎÅÅ × ÔÅËÓÔÅ, ÎÁÖÍÉÔÅ C-r. ÷ÓÅ -ÞÔÏ ÍÙ ÇÏ×ÏÒÉÌÉ Ï C-s ÐÒÉÍÅÎÉÍÏ É Ë C-r, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÐÒÏÔÉ×ÏÐÏÌÏÖÎÏÇÏ -ÎÁÐÒÁ×ÌÅÎÉÑ ÐÏÉÓËÁ. +C-s ÎÁÞÉÎÁÅÔ ÐÏÉÓË É ÉÝÅÔ ÌÀÂÙÅ ×ÈÏÖÄÅÎÉÑ ÉÓËÏÍÏÊ ÓÔÒÏËÉ ðïóìå ÔÅËÕÝÅÊ +ÐÏÚÉÃÉÉ ËÕÒÓÏÒÁ. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ ÞÔÏ-ÔÏ ÒÁÎÅÅ × ÔÅËÓÔÅ, ÔÏ ÎÁÖÍÉÔÅ +C-r. ÷ÓÅ, ÞÔÏ ÍÙ ÇÏ×ÏÒÉÌÉ Ï C-s, ÐÒÉÍÅÎÉÍÏ É Ë C-r, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ +ÐÒÏÔÉ×ÏÐÏÌÏÖÎÏÇÏ ÎÁÐÒÁ×ÌÅÎÉÑ ÐÏÉÓËÁ. * íîïöåóô÷ï ïëïî (MULTIPLE WINDOWS) -------------------------------- +----------------------------------- -ïÄÎÁ ÉÚ ÐÒÉÑÔÎÙÈ ÏÓÏÂÅÎÎÏÓÔÅÊ Emacs ÜÔÏ ÔÏ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÏÄÎÏ×ÒÅÍÅÎÎÏ -ÏÔÏÂÒÁÖÁÔØ ÎÁ ÜËÒÁÎÅ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏ ÏËÎÏ. +ïÄÎÁ ÉÚ ÐÒÉÑÔÎÙÈ ÏÓÏÂÅÎÎÏÓÔÅÊ Emacs Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÏÄÎÏ×ÒÅÍÅÎÎÏ +ÏÔÏÂÒÁÖÁÔØ ÎÁ ÜËÒÁÎÅ ÎÅÓËÏÌØËÏ ÏËÏÎ. ->> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÜÔÕ ÌÉÎÉÀ, É ÎÁÂÅÒÉÔÅ C-u 0 C-l (ÜÔÏ CONTROL-L, Á +>> ðÅÒÅÍÅÓÔÉÔÅ ËÕÒÓÏÒ ÎÁ ÜÔÕ ÓÔÒÏËÕ, É ÎÁÂÅÒÉÔÅ C-u 0 C-l (ÜÔÏ CONTROL-L, Á ÎÅ CONTROL-1). ->> ôÅÐÅÒØ, ÎÁÂÅÒÉÔÅ C-x 2, ÞÔÏ ÒÁÚÄÅÌÉÔ ÜËÒÁÎ ÎÁ Ä×Á ÏËÎÁ. +>> ôÅÐÅÒØ ÎÁÂÅÒÉÔÅ C-x 2, ÞÔÏ ÒÁÚÄÅÌÉÔ ÜËÒÁÎ ÎÁ Ä×Á ÏËÎÁ. ïÂÁ ÏËÎÁ ÏÔÏÂÒÁÖÁÀÔ ÕÞÅÂÎÉË. ëÕÒÓÏÒ ÏÓÔÁÌÓÑ × ×ÅÒÈÎÅÍ ÏËÎÅ. >> îÁÖÍÉÔÅ C-M-v ÄÌÑ ÐÒÏËÒÕÔËÉ ÎÉÖÎÅÇÏ ÏËÎÁ. - (ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ÎÁÓÔÏÑÝÅÊ ËÎÏÐËÉ META (Alt), ÎÁÖÍÉÔÅ ESC C-v.) + (ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ÎÁÓÔÏÑÝÅÊ ËÎÏÐËÉ META (Alt), ÔÏ ÎÁÖÍÉÔÅ C-v.) ->> îÁÖÍÉÔÅ C-x o ("o" ÏÔ ÓÌÏ×Á "other" - ÄÒÕÇÏÅ) ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ × +>> îÁÖÍÉÔÅ C-x o ("o" ÏÔ ÓÌÏ×Á "other" -- ÄÒÕÇÏÅ) ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ × ÎÉÖÎÅÅ ÏËÎÏ. ->> éÓÐÏÌØÚÕÊÔÅ C-v É M-v × ÎÉÖÎÅÍ ÏËÎÅ ÞÔÏ ÐÒÏËÒÕÞÉ×ÁÔØ ÅÇÏ. +>> éÓÐÏÌØÚÕÊÔÅ C-v É M-v × ÎÉÖÎÅÍ ÏËÎÅ, ÄÌÑ ÐÒÏËÒÕÔËÉ ÔÅËÓÔÁ. ðÒÏÄÏÌÖÉÔÅ ÞÔÅÎÉÅ ÜÔÉÈ ÉÎÓÔÒÕËÃÉÊ × ×ÅÒÈÎÅÍ ÏËÎÅ. ->> îÁÖÍÉÔÅ C-x o ÓÎÏ×Á ÞÔÏÂÙ ÐÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ ÎÁÚÁÄ × ×ÅÒÈÎÅÅ ÏËÎÏ. +>> îÁÖÍÉÔÅ C-x o ÓÎÏ×Á, ÞÔÏÂÙ ÐÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ ÎÁÚÁÄ × ×ÅÒÈÎÅÅ ÏËÎÏ. ëÕÒÓÏÒ × ×ÅÒÈÎÅÍ ÏËÎÅ ÔÁÍ ÖÅ, ÇÄÅ É ÂÙÌ ÄÏ ÔÏÇÏ. ÷Ù ÍÏÖÅÔÅ ÐÒÏÄÏÌÖÁÔØ ÐÅÒÅËÌÀÞÁÔØÓÑ ÍÅÖÄÕ ÏËÎÁÍÉ, ÉÓÐÏÌØÚÕÑ C-x o. ëÁÖÄÏÅ -ÏËÎÏ ÈÒÁÎÉÔ Ó×ÏÀ ÐÏÚÉÃÉÀ ËÕÒÓÏÒÁ, ÎÏ ÔÏÌØËÏ ÏÄÎÏ ÐÏËÁÚÙ×ÁÅÔ ËÕÒÓÏÒ. ÷ÓÅ +ÏËÎÏ ÈÒÁÎÉÔ Ó×ÏÀ ÐÏÚÉÃÉÀ ËÕÒÓÏÒÁ, ÎÏ ÔÏÌØËÏ ÏÄÎÏ ÐÏËÁÚÙ×ÁÅÔ ËÕÒÓÏÒ. ÷ÓÅ ÏÂÙÞÎÙÅ ËÏÍÁÎÄÙ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÐÒÉÍÅÎÑÀÔÓÑ Ë ÏËÎÕ, × ËÏÔÏÒÏÍ ÏÔÏÂÒÁÖÁÅÔÓÑ -ËÕÒÓÏÒ. íÙ ÎÁÚÙ×ÁÅÍ ÜÔÏ ÏËÎÏ "×ÙÂÒÁÎÎÙÍ" ("selected window"). +ËÕÒÓÏÒ. íÙ ÎÁÚÙ×ÁÅÍ ÜÔÏ ÏËÎÏ "×ÙÂÒÁÎÎÙÍ" ("selected window"). -ëÏÍÁÎÄÁ C-M-v ÏÞÅÎØ ÕÄÏÂÎÁ, ËÏÇÄÁ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÔÅËÓÔ × ÏÄÎÏÍ ÏËÎÅ, É -ÉÓÐÏÌØÚÕÅÔÅ ×ÔÏÒÏÅ × ËÁÞÅÓÔ×Å ÓÐÒÁ×ÏÞÎÉËÁ. ÷Ù ÍÏÖÅÔÅ ×ÓÅÇÄÁ ÓÏÈÒÁÎÑÔØ ËÕÒÓÏÒ -× ÏËÎÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ É ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ÐÒÏÄ×ÉÇÁÔØÓÑ ×Ï ×ÔÏÒÏÍ, ÉÓÐÏÌØÚÕÑ -C-M-v. +ëÏÍÁÎÄÁ C-M-v ÏÞÅÎØ ÕÄÏÂÎÁ, ËÏÇÄÁ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ ÔÅËÓÔ × ÏÄÎÏÍ ÏËÎÅ, Á +×ÔÏÒÏÅ ÉÓÐÏÌØÚÕÅÔÅ × ËÁÞÅÓÔ×Å ÓÐÒÁ×ÏÞÎÉËÁ. ÷Ù ÍÏÖÅÔÅ ×ÓÅÇÄÁ ÓÏÈÒÁÎÑÔØ +ËÕÒÓÏÒ × ÏËÎÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ É ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ÐÒÏÄ×ÉÇÁÔØÓÑ ×Ï ×ÔÏÒÏÍ, +ÉÓÐÏÌØÚÕÑ C-M-v. -C-M-v ÐÒÉÍÅÒ CONTROL-META ÓÉÍ×ÏÌÁ. åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÎÁÓÔÏÑÝÁÑ ËÎÏÐËÁ META -(Alt), ÔÏ ×Ù ÍÏÖÅÔÅ ÎÁÂÒÁÔØ C-M-v ÎÁÖÁ× ÏÄÎÏ×ÒÅÍÅÎÎÏ CONTROL É META É ÎÅ -ÏÔÐÕÓËÁÑ ÉÈ ÎÁÖÁÔØ v. é ÎÅ ×ÁÖÎÏ ËÁËÁÑ ÉÚ ËÌÁ×ÉÛ ÂÕÄÅÔ ÎÁÖÁÔÁ ÐÅÒ×ÏÊ, +C-M-v -- ÐÒÉÍÅÒ CONTROL-META ÓÉÍ×ÏÌÁ. åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÎÁÓÔÏÑÝÁÑ ËÎÏÐËÁ META +(Alt), ÔÏ ×Ù ÍÏÖÅÔÅ ÎÁÂÒÁÔØ C-M-v, ÎÁÖÁ× ÏÄÎÏ×ÒÅÍÅÎÎÏ CONTROL É META É, ÎÅ +ÏÔÐÕÓËÁÑ ÉÈ, ÎÁÖÁÔØ v. é ÎÅ ×ÁÖÎÏ, ËÁËÁÑ ÉÚ ËÌÁ×ÉÛ ÂÕÄÅÔ ÎÁÖÁÔÁ ÐÅÒ×ÏÊ, CONTROL ÉÌÉ META, ÐÏÓËÏÌØËÕ ÜÔÉ ËÎÏÐËÉ ÍÏÄÉÆÉÃÉÒÕÀÔ ÔÉÐ ÓÉÍ×ÏÌÁ. -åÓÌÉ Õ ×ÁÓ ÎÅÔ ÎÁÓÔÏÑÝÅÊ ËÎÏÐËÉ META, É ×Ù ÉÓÐÏÌØÚÕÅÔÅ ESC ×ÍÅÓÔÏ ÎÅÅ, -ÐÏÒÑÄÏË ÄÏÌÖÅÎ ÂÙÔØ ÓÌÅÄÕÀÝÉÍ: ×Ù ÄÏÌÖÎÙ ÎÁÖÁÔØ ESC, Á ÚÁÔÅÍ CTRL-v; -CONTROL-ESC v ÎÅ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ. ðÏÔÏÍÕ, ÞÔÏ ESC ÉÍÅÅÔ Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ -ÓÉÍ×ÏÌ -- ÜÔÏ ÎÅ ÍÏÄÉÆÉÃÉÒÕÀÝÁÑ ËÎÏÐËÁ. +åÓÌÉ Õ ×ÁÓ ÎÅÔ ÎÁÓÔÏÑÝÅÊ ËÎÏÐËÉ META, É ×ÍÅÓÔÏ ÎÅÅ ×Ù ÉÓÐÏÌØÚÕÅÔÅ , ÔÏ +ÐÏÒÑÄÏË ÄÏÌÖÅÎ ÂÙÔØ ÓÌÅÄÕÀÝÉÍ: ×Ù ÄÏÌÖÎÙ ÎÁÖÁÔØ , Á ÚÁÔÅÍ CTRL-v; +CONTROL- v ÎÅ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ. üÔÏ ÐÒÏÉÓÈÏÄÉÔ ÐÏÔÏÍÕ, ÞÔÏ ÉÍÅÅÔ +Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ ÓÉÍ×ÏÌ -- ÜÔÏ ÎÅ ÍÏÄÉÆÉÃÉÒÕÀÝÁÑ ËÎÏÐËÁ. ->> îÁÖÍÉÔÅ C-x 1 (× ×ÅÒÈÎÅÍ ÏËÎÅ) ÞÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÎÉÖÎÅÇÏ. +>> îÁÖÍÉÔÅ C-x 1 (× ×ÅÒÈÎÅÍ ÏËÎÅ), ÞÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÎÉÖÎÅÇÏ ÏËÎÁ. -(åÓÌÉ ×Ù ÎÁÖÁÌÉ C-x 1 × ÎÉÖÎÅÍ ÏËÎÅ, ÔÏ ×Ù ÉÚÂÁ×ÉÌÉÓØ ÏÔ ×ÅÒÈÎÅÇÏ. ðÏÎÉÍÁÊÔÅ -ÜÔÕ ËÏÍÁÎÄÕ ËÁË "ïÓÔÁ×ÉÔØ ÔÏÌØËÏ ÏÄÎÏ ÏËÎÏ, ÔÏ × ËÏÔÏÒÏÍ Ñ ÓÅÊÞÁÓ ÎÁÈÏÖÕÓØ"). +(åÓÌÉ ÂÙ ×Ù ÎÁÖÁÌÉ C-x 1 × ÎÉÖÎÅÍ ÏËÎÅ, ÔÏ ×Ù ÂÙ ÉÚÂÁ×ÉÌÉÓØ ÏÔ ×ÅÒÈÎÅÇÏ. +ðÏÎÉÍÁÊÔÅ ÜÔÕ ËÏÍÁÎÄÕ ËÁË "ïÓÔÁ×ÉÔØ ÔÏÌØËÏ ÏÄÎÏ ÏËÎÏ -- ÔÏ, × ËÏÔÏÒÏÍ Ñ +ÓÅÊÞÁÓ ÎÁÈÏÖÕÓØ"). -÷ÁÍ ÎÅ ÎÕÖÎÏ ÏÔÏÂÒÁÖÁÔØ ÏÄÉÎ É ÔÏÔ ÖÅ ÂÕÆÅÒ × ÏÂÏÉÈ ÏËÎÁÈ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ -C-x C-f ÞÔÏÂÙ ÏÔËÒÙÔØ ÆÁÊÌ × ÏÄÎÏÍ ÏËÎÅ, ÄÒÕÇÏÅ ÏÓÔÁÎÅÔÓÑ ÂÅÚ ÉÚÍÅÎÅÎÉÑ. ÷Ù -ÍÏÖÅÔÅ ÏÔËÒÙ×ÁÔØ ÆÁÊÌÙ × ËÁÖÄÏÍ ÏËÎÅ ÎÅÚÁ×ÉÓÉÍÏ. +÷ÁÍ ÎÅ ÎÕÖÎÏ ÏÔÏÂÒÁÖÁÔØ ÏÄÉÎ É ÔÏÔ ÖÅ ÂÕÆÅÒ × ÏÂÏÉÈ ÏËÎÁÈ. åÓÌÉ ×Ù +ÉÓÐÏÌØÚÕÅÔÅ C-x C-f, ÞÔÏÂÙ ÏÔËÒÙÔØ ÆÁÊÌ × ÏÄÎÏÍ ÏËÎÅ, ÄÒÕÇÏÅ ÏÓÔÁÎÅÔÓÑ ÂÅÚ +ÉÚÍÅÎÅÎÉÑ. ÷Ù ÍÏÖÅÔÅ ÏÔËÒÙ×ÁÔØ ÆÁÊÌÙ × ËÁÖÄÏÍ ÏËÎÅ ÎÅÚÁ×ÉÓÉÍÏ. -åÓÔØ ÄÒÕÇÏÊ ÐÕÔØ ÉÓÐÏÌØÚÏ×ÁÔØ Ä×Á ÏËÎÁ ÏÔÏÂÒÁÖÁÀÝÉÈ ÒÁÚÎÙÅ ÆÁÊÌÙ: +åÓÔØ ÄÒÕÇÏÊ ÐÕÔØ ÉÓÐÏÌØÚÏ×ÁÔØ Ä×Á ÏËÎÁ, ÏÔÏÂÒÁÖÁÀÝÉÈ ÒÁÚÎÙÅ ÆÁÊÌÙ: ->> îÁÂÅÒÉÔÅ C-x 4 C-f ÚÁÔÅÍ ÉÍÑ ÏÄÎÏÇÏ É ×ÁÛÉÈ ÆÁÊÌÏ×. úÁ×ÅÒÛÉÔÅ . - ðÏÓÍÏÔÒÉÔÅ ÞÔÏ ×ÙÂÒÁÎÎÙÊ ÆÁÊÌ ÐÏÑ×ÉÌÓÑ × ÎÉÖÎÅÍ ÏËÎÅ. ëÕÒÓÏÒ ÐÅÒÅÛÅÌ - ÔÕÄÁ ÖÅ. +>> îÁÂÅÒÉÔÅ C-x 4 C-f, É ××ÅÄÉÔÅ ÉÍÑ ÏÄÎÏÇÏ É ×ÁÛÉÈ ÆÁÊÌÏ×. úÁ×ÅÒÛÉÔÅ ××ÏÄ + ÎÁÖÁÔÉÅÍ . úÁÍÅÔØÔÅ, ÞÔÏ ×ÙÂÒÁÎÎÙÊ ÆÁÊÌ ÐÏÑ×ÉÌÓÑ × ÎÉÖÎÅÍ ÏËÎÅ. + ëÕÒÓÏÒ ÐÅÒÅÛÅÌ ÔÕÄÁ ÖÅ. ->> îÁÂÅÒÉÔÅ C-x o ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ × ×ÅÒÈÎÅÅ ÏËÎÏ, É C-x 1 ÞÔÏÂÙ ÕÄÁÌÉÔØ ÎÉÖÎÅÅ - ÏËÎÏ. +>> îÁÂÅÒÉÔÅ C-x o, ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ × ×ÅÒÈÎÅÅ ÏËÎÏ, É ÚÁÔÅÍ C-x 1, ÞÔÏÂÙ + ÕÄÁÌÉÔØ ÎÉÖÎÅÅ ÏËÎÏ. * òåëõòóé÷îùå õòï÷îé òåäáëôéòï÷áîéñ (RECURSIVE EDITING LEVELS) -------------------------------------------------------------- -éÎÏÇÄÁ ×Ù ÂÕÄÅÔÅ ×ËÌÀÞÁÔØ ÔÁË ÎÁÚÙ×ÁÅÍÙÅ "ÒÅËÕÒÓÉ×ÎÙÅ ÕÒÏ×ÎÉ -ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ". îÁ ÜÔÏ ÕËÁÚÙ×ÁÀÔ ÐÒÑÍÏÕÇÏÌØÎÙÅ ÓËÏÂËÉ × ÓÔÒÏËÅ -ÓÏÓÔÏÑÎÉÑ, ÏËÒÕÖÁÀÝÉÅ ÏÂÙÞÎÙÅ ÓËÏÂËÉ ×ÏËÒÕÇ ÉÍÅÎÉ ÏÓÎÏ×ÎÏÇÏ ÒÅÖÉÍÁ. îÁÐÒÉÍÅÒ -×Ù ÍÏÖÅÔÅ Õ×ÉÄÅÔØ [(Fundamental)] ×ÍÅÓÔÏ (Fundamental). +éÎÏÇÄÁ ×Ù ÂÕÄÅÔÅ ÐÏÐÁÄÁÔØ × ÔÁË ÎÁÚÙ×ÁÅÍÙÅ "ÒÅËÕÒÓÉ×ÎÙÅ ÕÒÏ×ÎÉ +ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ". îÁ ÜÔÏ ÕËÁÚÙ×ÁÀÔ ÐÒÑÍÏÕÇÏÌØÎÙÅ ÓËÏÂËÉ × ÓÔÒÏËÅ ÓÔÁÔÕÓÁ, +ÏËÒÕÖÁÀÝÉÅ ÏÂÙÞÎÙÅ ÓËÏÂËÉ ×ÏËÒÕÇ ÉÍÅÎÉ ÏÓÎÏ×ÎÏÇÏ ÒÅÖÉÍÁ. îÁÐÒÉÍÅÒ, ×Ù +Õ×ÉÄÉÔÅ [(Fundamental)] ×ÍÅÓÔÏ (Fundamental). -þÔÏÂÙ ×ÙÊÔÉ ÉÚ ÒÅËÕÒÓÉ×ÎÙÈ ÕÒÏ×ÎÅÊ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ, ÎÁÖÍÉÔÅ ESC ESC ESC. üÔÏ -ÍÎÏÇÏÃÅÌÅ×ÁÑ ËÏÍÁÎÄÁ "×ÙÈÏÄ". ÷Ù ÔÁË ÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÅÅ ËÁË ÄÌÑ -ÕÎÉÞÔÏÖÅÎÉÑ ÌÉÛÎÉÈ ÏËÏÎ, ÔÁË É ÄÌÑ ×ÙÈÏÄÁ ÉÚ ÍÉÎÉ-ÂÕÆÅÒÁ. +þÔÏÂÙ ×ÙÊÔÉ ÉÚ ÒÅËÕÒÓÉ×ÎÙÈ ÕÒÏ×ÎÅÊ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ, ÎÁÖÍÉÔÅ +. üÔÏ ÍÎÏÇÏÃÅÌÅ×ÁÑ ËÏÍÁÎÄÁ "×ÙÈÏÄ". ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÅÅ, +ËÁË ÄÌÑ ÕÎÉÞÔÏÖÅÎÉÑ ÌÉÛÎÉÈ ÏËÏÎ, ÔÁË É ÄÌÑ ×ÙÈÏÄÁ ÉÚ ÍÉÎÉ-ÂÕÆÅÒÁ. ->> îÁÖÍÉÔÅ M-x ÞÔÏÂÙ ÐÏÐÁÓÔØ × ÍÉÎÉ-ÂÕÆÅÒ; ÚÁÔÅÍ ÎÁÖÍÉÔÅ ESC ESC ESC ÞÔÏÂÙ - ÐÏËÉÎÕÔØ ÅÇÏ. +>> îÁÖÍÉÔÅ M-x, ÞÔÏÂÙ ÐÏÐÁÓÔØ × ÍÉÎÉ-ÂÕÆÅÒ, Á ÚÁÔÅÍ ÎÁÖÍÉÔÅ + , ÞÔÏÂÙ ÐÏËÉÎÕÔØ ÅÇÏ. -÷Ù ÎÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-g ÞÔÏÂÙ ×ÙÊÔÉ ÉÚ ÒÅËÕÒÓÉ×ÎÙÈ ÕÒÏ×ÎÅÊ -ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ. ðÏÔÏÍÕ, ÞÔÏ C-g ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÔÍÅÎÙ ËÏÍÁÎÄÙ É ÁÒÇÕÍÅÎÔÏ× -âåú ÒÅËÕÒÓÉ×ÎÙÈ ÕÒÏ×ÎÅÊ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ. +÷Ù ÎÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-g, ÄÌÑ ×ÙÈÏÄÁ ÉÚ ÒÅËÕÒÓÉ×ÎÙÈ ÕÒÏ×ÎÅÊ +ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ. üÔÏ ÐÏÔÏÍÕ, ÞÔÏ C-g ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÔÍÅÎÙ ËÏÍÁÎÄÙ É +ÁÒÇÕÍÅÎÔÏ× âåú ÒÅËÕÒÓÉ×ÎÙÈ ÕÒÏ×ÎÅÊ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ. -* ëáë ðïìõþéôø ðïíïýø (GETTING MORE HELP) ------------------------------------------ +* ëáë ðïìõþéôø äïðïìîéôåìøîõà ðïíïýø +------------------------------------ ÷ ÜÔÏÍ ÕÞÅÂÎÉËÅ ÍÙ ÐÏÐÙÔÁÌÉÓØ ÓÎÁÂÄÉÔØ ×ÁÓ ÔÏÌØËÏ ÔÏÊ ÉÎÆÏÒÍÁÃÉÅÊ, ËÏÔÏÒÁÑ -ÐÏÍÏÖÅÔ ÎÁÞÁÔØ ÉÓÐÏÌØÚÏ×ÁÔØ Emacs. ïÞÅÎØ ÍÎÏÇÏ ÉÎÆÏÒÍÁÃÉÉ ÄÏÓÔÕÐÎÏ × Emacs, -É ÎÅ×ÏÚÍÏÖÎÏ ×ÓÀ ÅÅ ÐÒÅÄÓÔÁ×ÉÔØ ÚÄÅÓØ. ïÄÎÁËÏ, ×Ù ÍÏÖÅÔÅ ×ÙÕÞÉÔØ ÂÏÌØÛÅ -×ÏÚÍÏÖÎÏÓÔÅÊ Emacs É ÕÚÎÁÔØ ÄÒÕÇÉÅ ÐÏÌÅÚÎÙÅ ÏÓÏÂÅÎÎÏÓÔÉ. Emacs ÐÒÅÄÏÓÔÁ×ÌÑÅÔ -ËÏÍÁÎÄÙ ÄÌÑ ÞÔÅÎÉÑ ÄÏËÕÍÅÎÔÁÃÉÉ Ï ËÏÍÁÎÄÁÈ Emacs. üÔÉ ËÏÍÁÎÄÙ "ÐÏÍÏÝÉ" -("help") ×ÓÅ ÎÁÞÉÎÁÀÔÓÑ Ó ÓÉÍ×ÏÌÁ CONTROL-h, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ "ÓÉÍ×ÏÌÏÍ -ÐÏÍÏÝÉ". - -þÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÓÏÂÅÎÎÏÓÔÉ ðÏÍÏÝÉ, ÎÁÖÍÉÔÅ C-h, É ÚÁÔÅÍ ÓÉÍ×ÏÌ, ËÏÔÏÒÙÊ -ÒÁÓÓËÁÖÅÔ ËÁËÏÊ ÉÍÅÎÎÏ ×ÉÄ ÐÏÍÏÝÉ ×Ù ÈÏÔÉÔÅ ÐÏÌÕÞÉÔØ. åÓÌÉ ×Ù äåêóô÷éôåìøîï -ÒÁÓÔÅÒÑÌÉÓØ, ÎÁÂÅÒÉÔÅ C-h ? É Emacs ÒÁÓÓËÁÖÅÔ ×ÁÍ ËÁËÕÀ ÐÏÍÏÝØ ÏÎ ÍÏÖÅÔ ×ÁÍ -ÐÒÅÄÏÓÔÁ×ÉÔØ. åÓÌÉ ×Ù ÎÁÖÁÌÉ C-h É ÐÅÒÅÄÕÍÁÌÉ ÏÂÒÁÝÁÔØÓÑ Ë ÐÏÍÏÝÉ, ÐÒÏÓÔÏ -ÎÁÖÍÉÔÅ C-g ÞÔÏÂÙ ÏÔÍÅÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ. - -(ëÏÅ-ÇÄÅ ÐÅÒÅÎÁÚÎÁÞÁÀÔ ÓÉÍ×ÏÌ C-h. òÅÁÌØÎÏÊ ÎÅÏÂÈÏÄÉÍÏÓÔÉ × ÜÔÏÍ ÎÅÔ, -ÓÏÏÂÝÉÔÅ Ï ÎÅÊ ÓÉÓÔÅÍÎÏÍÕ ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ. ôÅÍ ×ÒÅÍÅÎÅÍ, ÅÓÌÉ C-h ÎÅ ×ÙÚÙ×ÁÅÔ -ÓÏÏÂÝÅÎÉÅ ÐÏÍÏÝÉ ×ÎÉÚÕ ÜËÒÁÎÁ, ÐÏÐÒÏÂÕÊÔÅ ×ÍÅÓÔÏ ÜÔÏÇÏ ÎÁÖÁÔØ ËÌÁ×ÉÛÕ F1 ÉÌÉ -ÎÁÂÒÁÔØ M-x help RET). - -óÁÍÁÑ ÏÓÎÏ×ÎÁÑ ×ÏÚÍÏÖÎÏÓÔØ ðïíïýé - C-h c. îÁÖÍÉÔÅ C-h, ÚÁÔÅÍ c, É ÓÉÍ×ÏÌ -ËÏÍÁÎÄÙ ÉÌÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ, É Emacs ÏÔÏÂÒÁÚÉÔ ÏÞÅÎØ ËÒÁÔËÏÅ ÏÐÉÓÁÎÉÅ -ËÏÍÁÎÄÙ. +ÐÏÍÏÖÅÔ ×ÁÍ ÎÁÞÁÔØ ÐÏÌØÚÏ×ÁÔØÓÑ Emacs. ïÞÅÎØ ÍÎÏÇÏ ÉÎÆÏÒÍÁÃÉÉ ÄÏÓÔÕÐÎÏ × +Emacs, É ÎÅ×ÏÚÍÏÖÎÏ ×ÓÀ ÅÅ ÐÒÅÄÓÔÁ×ÉÔØ ÚÄÅÓØ. ïÄÎÁËÏ, ×Ù ÍÏÖÅÔÅ ×ÙÕÞÉÔØ +ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ Emacs É ÕÚÎÁÔØ ÄÒÕÇÉÅ ÐÏÌÅÚÎÙÅ ÏÓÏÂÅÎÎÏÓÔÉ. Emacs +ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ËÏÍÁÎÄÙ ÄÌÑ ÞÔÅÎÉÑ ÄÏËÕÍÅÎÔÁÃÉÉ Ï ËÏÍÁÎÄÁÈ Emacs. üÔÉ ËÏÍÁÎÄÙ +"ÓÐÒÁ×ËÉ" ("help") ×ÓÅ ÎÁÞÉÎÁÀÔÓÑ Ó ÓÉÍ×ÏÌÁ CONTROL-h, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ +"ÓÉÍ×ÏÌÏÍ ÐÏÍÏÝÉ". + +þÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÏÚÍÏÖÎÏÓÔÉ ÓÐÒÁ×ËÉ, ÎÁÖÍÉÔÅ C-h, É ÚÁÔÅÍ ÓÉÍ×ÏÌ, ËÏÔÏÒÙÊ +ÒÁÓÓËÁÖÅÔ, ËÁËÏÊ ÉÍÅÎÎÏ ×ÉÄ ÓÐÒÁ×ËÉ ×Ù ÈÏÔÉÔÅ ÐÏÌÕÞÉÔØ. åÓÌÉ ×Ù +äåêóô÷éôåìøîï ÒÁÓÔÅÒÑÌÉÓØ, ÎÁÂÅÒÉÔÅ C-h ?, É Emacs ÒÁÓÓËÁÖÅÔ ×ÁÍ Ï ÔÏÍ, +ËÁËÕÀ ÓÐÒÁ×ËÕ ÏÎ ÍÏÖÅÔ ×ÁÍ ÐÒÅÄÏÓÔÁ×ÉÔØ. åÓÌÉ ×Ù ÎÁÖÁÌÉ C-h É ÐÅÒÅÄÕÍÁÌÉ +ÏÂÒÁÝÁÔØÓÑ Ë ÓÐÒÁ×ËÅ, ÔÏ ÐÒÏÓÔÏ ÎÁÖÍÉÔÅ C-g, ÞÔÏÂÙ ÏÔÍÅÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ. + +(ëÏÅ-ÇÄÅ ÐÅÒÅÎÁÚÎÁÞÁÀÔ ÓÉÍ×ÏÌ C-h. òÅÁÌØÎÏÊ ÎÅÏÂÈÏÄÉÍÏÓÔÉ × ÜÔÏÍ ÎÅÔ, É +ÅÓÌÉ ÜÔÏ ÔÁË, ÔÏ ÓÏÏÂÝÉÔÅ Ï ÜÔÏÍ ÓÉÓÔÅÍÎÏÍÕ ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ. ôÅÍ ×ÒÅÍÅÎÅÍ, +ÅÓÌÉ C-h ÎÅ ×ÙÚÙ×ÁÅÔ ÓÏÏÂÝÅÎÉÅ ÐÏÍÏÝÉ ×ÎÉÚÕ ÜËÒÁÎÁ, ÔÏ ÐÏÐÒÏÂÕÊÔÅ ×ÍÅÓÔÏ +ÜÔÏÇÏ ÎÁÖÁÔØ ËÌÁ×ÉÛÕ F1 ÉÌÉ ÎÁÂÒÁÔØ M-x help RET). + +ïÄÎÁ ÉÚ ÓÁÍÙÈ ÇÌÁ×ÎÙÈ ÆÕÎËÃÉÊ ÓÐÒÁ×ËÉ -- C-h c. îÁÖÍÉÔÅ C-h, ÚÁÔÅÍ c, É +ÓÉÍ×ÏÌ ËÏÍÁÎÄÙ ÉÌÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ, É Emacs ÏÔÏÂÒÁÚÉÔ ËÒÁÔËÏÅ ÎÁÂÒÁÎÎÏÊ +ÏÐÉÓÁÎÉÅ ËÏÍÁÎÄÙ. >> îÁÖÍÉÔÅ C-h c C-p. - óÏÏÂÝÅÎÉÅ ÄÏÌÖÎÏ ×ÙÇÌÑÄÅÔØ ÐÒÉÍÅÒÎÏ ÔÁË + +óÏÏÂÝÅÎÉÅ ÄÏÌÖÎÏ ×ÙÇÌÑÄÅÔØ ÐÒÉÍÅÒÎÏ ÔÁË: C-p runs the command previous-line - (C-p ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÕ previous-line {ÐÒÅÄÙÄÕÝÁÑ-ÌÉÎÉÑ}) + (C-p ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÕ previous-line {ÐÒÅÄÙÄÕÝÁÑ-ÓÔÒÏËÁ}) -÷ÁÍ ÓÏÏÂÝÁÀÔ "ÉÍÑ ÆÕÎËÃÉÉ". éÍÅÎÁ ÆÕÎËÃÉÉ ÉÓÐÏÌØÚÕÀÔÓÑ × ÏÓÎÏ×ÎÏÍ ÄÌÑ -ÎÁÓÔÒÏÊËÉ É ÒÁÓÛÉÒÅÎÉÑ Emacs. éÍÅÎÁ ÆÕÎËÃÉÊ ×ÙÂÒÁÎÙ ÔÁË, ÞÔÏÂÙ ÐÏËÁÚÁÔØ ÞÔÏ -ÉÍÅÎÎÏ ËÏÍÁÎÄÁ ÄÅÌÁÅÔ, ÔÁË ÖÅ ÏÎÉ ÐÏÚ×ÏÌÑÀÔ Ó ÐÏÍÏÝØÀ ÜÔÏÊ ËÒÁÔËÏÊ +÷ÁÍ ÓÏÏÂÝÁÀÔ "ÉÍÑ ÆÕÎËÃÉÉ". éÍÅÎÁ ÆÕÎËÃÉÊ ÉÓÐÏÌØÚÕÀÔÓÑ × ÏÓÎÏ×ÎÏÍ ÄÌÑ +ÎÁÓÔÒÏÊËÉ É ÒÁÓÛÉÒÅÎÉÑ Emacs. éÍÅÎÁ ÆÕÎËÃÉÊ ×ÙÂÒÁÎÙ ÔÁË, ÞÔÏÂÙ ÐÏËÁÚÁÔØ, ÞÔÏ +ÉÍÅÎÎÏ ËÏÍÁÎÄÁ ÄÅÌÁÅÔ, Á ÔÁËÖÅ ÏÎÉ ÐÏÚ×ÏÌÑÀÔ Ó ÐÏÍÏÝØÀ ÜÔÏÊ ËÒÁÔËÏÊ ÉÎÆÏÒÍÁÃÉÉ ÌÅÇÞÅ ÚÁÐÏÍÎÉÔØ ÕÖÅ ×ÙÕÞÅÎÎÙÅ ËÏÍÁÎÄÙ. -íÎÏÇÏÓÉÍ×ÏÌØÎÙÅ ËÏÍÁÎÄÙ, ÔÁËÉÅ ËÁË C-x C-s É (ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ËÎÏÐËÉ META ÉÌÉ -EDIT ÉÌÉ ALT) v ÔÁË ÖÅ ÂÕÄÕÔ ÄÏÓÔÕÐÎÙ ÐÏÓÌÅ C-h c. +íÎÏÇÏÓÉÍ×ÏÌØÎÙÅ ÓÏÞÅÔÁÎÉÑ ËÌÁ×ÉÛ, ÔÁËÉÅ ËÁË C-x C-s É (ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ËÎÏÐËÉ +META ÉÌÉ EDIT ÉÌÉ ALT) v ÔÁËÖÅ ÂÕÄÕÔ ÄÏÓÔÕÐÎÙ ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÒÁ×ËÉ Ó +ÐÏÍÏÝØÀ C-h c. -ðÏÌÕÞÉÔÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ Ï ËÏÍÁÎÄÅ ÉÓÐÏÌØÚÕÑ C-h k ×ÍÅÓÔÏ C-h c. +÷Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ Ï ËÏÍÁÎÄÅ ÉÓÐÏÌØÚÕÑ C-h k ×ÍÅÓÔÏ C-h c. >> îÁÂÅÒÉÔÅ C-h k C-p. ÷Ù Õ×ÉÄÉÔÅ ÏÐÉÓÁÎÉÅ ÆÕÎËÃÉÉ, Á ÔÁËÖÅ ÅÅ ÉÍÑ × ÏÔÄÅÌØÎÏÍ ÏËÎÅ Emacs. ëÏÇÄÁ ×Ù -ÚÁ×ÅÒÛÉÔÅ ÞÔÅÎÉÅ, ÎÁÖÍÉÔÅ C-x 1 ÞÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÔÅËÓÔÁ ÐÏÍÏÝÉ. ÷Ù -ÍÏÖÅÔÅ ×ÙÐÏÌÎÉÔØ ËÁËÏÅ-ÔÏ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ ×Ï ×ÒÅÍÑ ÐÒÏÓÍÏÔÒÁ ÔÅËÓÔÁ ÓÐÒÁ×ËÉ, -Á ÔÏÌØËÏ ÚÁÔÅÍ ÎÁÖÁÔØ C-x 1 +ÚÁ×ÅÒÛÉÔÅ ÞÔÅÎÉÅ, ÎÁÖÍÉÔÅ C-x 1, ÞÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÔÅËÓÔÁ ÓÐÒÁ×ËÉ. ÷Ù +ÍÏÖÅÔÅ ×ÙÐÏÌÎÉÔØ ÉÚÍÅÎÅÎÉÅ ÔÅËÓÔÁ ×Ï ×ÒÅÍÑ ÐÒÏÓÍÏÔÒÁ ÔÅËÓÔÁ ÓÐÒÁ×ËÉ, Á +ÔÏÌØËÏ ÚÁÔÅÍ ÎÁÖÁÔØ C-x 1. -åÓÔØ ÅÝÅ ÎÅÓËÏÌØËÏ ÐÏÌÅÚÎÙÈ ÏÐÃÉÊ C-h: +åÓÔØ ÅÝÅ ÎÅÓËÏÌØËÏ ÐÏÌÅÚÎÙÈ ÆÕÎËÃÉÊ, ÄÏÓÔÕÐÎÙÈ ÞÅÒÅÚ C-h: - C-h f ïÐÉÓÙ×ÁÅÔ ÆÕÎËÃÉÀ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÎÁÂÒÁÔØ ÉÍÑ ÆÕÎËÃÉÉ. + C-h f ïÐÉÓÙ×ÁÅÔ ÆÕÎËÃÉÀ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÎÁÂÒÁÔØ ÉÍÑ ÆÕÎËÃÉÉ. >> ðÏÐÒÏÂÕÊÔÅ ÎÁÂÒÁÔØ C-h f previous-line. - üÔÏ ÒÁÓÐÅÞÁÔÁÅÔ ÉÎÆÏÒÍÁÃÉÀ Emacs Ï ÜÔÏÊ ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ×ÙÐÏÌÎÑÅÔÓÑ - ËÏÍÁÎÄÏÊ C-p. + üÔÏ ÒÁÓÐÅÞÁÔÁÅÔ ÉÎÆÏÒÍÁÃÉÀ Emacs Ï ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ×ÙÐÏÌÎÑÅÔÓÑ ËÏÍÁÎÄÏÊ + C-p. áÎÁÌÏÇÉÞÎÁÑ ËÏÍÁÎÄÁ C-h v ÏÔÏÂÒÁÖÁÅÔ ÄÏËÕÍÅÎÔÁÃÉÀ Ï ÐÅÒÅÍÅÎÎÙÈ, ÚÎÁÞÅÎÉÅ -ËÏÔÏÒÙÈ ×Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÄÌÑ ÎÁÓÔÒÏÊËÉ ÐÏ×ÅÄÅÎÉÑ Emacs. ÷ÙÍ ÎÕÖÎÏ ÎÁÂÒÁÔØ +ËÏÔÏÒÙÈ ×Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÄÌÑ ÎÁÓÔÒÏÊËÉ ÐÏ×ÅÄÅÎÉÑ Emacs. ÷ÁÍ ÎÕÖÎÏ ÎÁÂÒÁÔØ ÉÍÑ ÐÅÒÅÍÅÎÎÏÊ, ËÏÇÄÁ Emacs ÚÁÐÒÏÓÉÔ ÅÇÏ. - C-h a Hyper Apropos. ÷×ÅÄÉÔÅ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï É Emacs ÐÏËÁÖÅÔ ×ÁÍ - ÓÐÉÓÏË ×ÓÅÈ ÆÕÎËÃÉÊ É ÐÅÒÅÍÅÎÎÙÈ, ÉÍÅÎÁ ËÏÔÏÒÙÈ ÓÏÄÅÒÖÁÔ ÜÔÏ - ÓÌÏ×Ï. ëÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÞÅÒÅÚ Meta-x, - ÂÕÄÕÔ ÏÔÍÅÞÅÎÙ Ú×ÅÚÄÏÞËÏÊ ÓÌÅ×Á. + C-h a (Hyper Apropos). ÷×ÅÄÉÔÅ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï É Emacs ÐÏËÁÖÅÔ ×ÁÍ ÓÐÉÓÏË + ×ÓÅÈ ÆÕÎËÃÉÊ É ÐÅÒÅÍÅÎÎÙÈ, ÉÍÅÎÁ ËÏÔÏÒÙÈ ÓÏÄÅÒÖÁÔ ÜÔÏ + ÓÌÏ×Ï. ëÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÞÅÒÅÚ Meta-x, ÂÕÄÕÔ + ÏÔÍÅÞÅÎÙ Ú×ÅÚÄÏÞËÏÊ ÓÌÅ×Á. >> îÁÂÅÒÉÔÅ C-h a file. -ÜÔÏ ÏÔÏÂÒÁÚÉÔ ÐÏÌÎÙÊ ÓÐÉÓÏË ÆÕÎËÃÉÊ É ÐÅÒÅÍÅÎÎÙÈ ÉÍÅÎÁ ËÏÔÏÒÙÈ ÎÁÞÉÎÁÀÔÓÑ Ó -"newline". îÁÖÍÉÔÅ ÉÌÉ ËÌÉËÎÉÔÅ ÓÒÅÄÎÅÊ ËÎÏÐËÏÊ ÍÙÛËÉ ÞÔÏÂÙ -ÐÏÌÕÞÉÔØ ÂÏÌØÛÅ Ï ÆÕÎËÃÉÉ ÉÌÉ ÐÅÒÅÍÅÎÎÏÊ. îÁÖÍÉÔÅ `q' ÞÔÏÂÙ ×ÙÊÔÉ ÉÚ -hyper-apropos. - -üÔÏ ÏÔÏÂÒÁÚÉÔ × ÄÒÕÇÏÍ ÏËÎÅ ÓÐÉÓÏË ×ÓÅÈ ËÏÍÁÎÄ M-x ÓÏ ÓÌÏ×ÏÍ "file" × ÉÈ -ÉÍÅÎÁÈ. ôÁËÖÅ × ÓÐÉÓËÅ, ËÒÏÍÅ ËÏÍÁÎÄ, ÔÁËÉÈ ËÁË find-file, ×Ù Õ×ÉÄÉÔÅ -ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÉÍ×ÏÌØÎÙÅ ËÏÍÁÎÄÙ, ÔÁËÉÅ ËÁË C-x C-f. +üÔÏ ÏÔÏÂÒÁÚÉÔ × ÄÒÕÇÏÍ ÏËÎÅ ÓÐÉÓÏË ×ÓÅÈ ËÏÍÁÎÄ M-x Õ ËÏÔÏÒÙÈ × ÉÍÅÎÁÈ +ÓÏÄÅÒÖÉÔÓÑ ÓÌÏ×Ï "file". ôÁËÖÅ × ÓÐÉÓËÅ ËÒÏÍÅ ËÏÍÁÎÄ ÔÁËÉÈ, ËÁË find-file, +×Ù Õ×ÉÄÉÔÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÉÍ×ÏÌØÎÙÅ ËÏÍÁÎÄÙ ÔÁËÉÅ, ËÁË C-x C-f. >> îÁÂÅÒÉÔÅ C-M-v ÄÌÑ ÐÒÏËÒÕÔËÉ ÏËÎÁ ÓÐÒÁ×ËÉ. ÷ÙÐÏÌÎÉÔÅ ÜÔÏ ÎÅÓËÏÌØËÏ ÒÁÚ. >> îÁÂÅÒÉÔÅ C-x 1 ÄÌÑ ÕÄÁÌÅÎÉÑ ÏËÎÁ ÓÐÒÁ×ËÉ. - C-h i þÉÔÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÙÅ ÒÕËÏ×ÏÄÓÔ×Á (a.k.a. Info). üÔÁ ËÏÍÁÎÄÁ - ÐÅÒÅÈÏÄÉÔ × ÓÐÅÃÉÁÌØÎÙÊ ÂÕÆÅÒ Ó ÉÍÅÎÅÍ `*info*', ÇÄÅ ×Ù - ÍÏÖÅÔÅ ÞÉÔÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÙÅ ÒÕËÏ×ÏÄÓÔ×Á ÄÌÑ ÐÁËÅÔÏ× - ÕÓÔÁÎÏ×ÌÅÎÎÙÈ × ×ÁÛÅÊ ÓÉÓÔÅÍÅ. îÁÂÅÒÉÔÅ m emacs ÄÌÑ - ÞÔÅÎÉÑ ÒÕËÏ×ÏÄÓÔ×Á ÐÏ Emacs. åÓÌÉ ×Ù ÎÉËÏÇÄÁ ÒÁÎÅÅ ÎÅ - ÉÓÐÏÌØÚÏ×ÁÌÉ Info, ÔÏ ÎÁÂÅÒÉÔÅ ? É Emacs ÏÔËÒÏÅÔ ÕÞÅÂÎÉË ÐÏ - ×ÏÚÍÏÖÎÏÓÔÑÍ ÒÅÖÉÍÁ Info. ïÄÎÁÖÄÙ ÏÚÎÁËÏÍÉ×ÛÉÓØ Ó ÜÔÉÍ - ÕÞÅÂÎÉËÏÍ, ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÕËÏ×ÏÄÓÔ×Ï Emacs Info × - ËÁÞÅÔÓ×Å ÏÓÎÏ×ÎÏÊ ÄÏËÕÍÅÎÔÁÃÉÉ. + C-h i þÉÔÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÙÅ ÒÕËÏ×ÏÄÓÔ×Á (ÔÁË ÎÁÚÙ×ÁÅÍÙÅ Info). üÔÁ ËÏÍÁÎÄÁ + ÐÅÒÅÈÏÄÉÔ × ÓÐÅÃÉÁÌØÎÙÊ ÂÕÆÅÒ Ó ÉÍÅÎÅÍ `*info*', ÇÄÅ ×Ù ÍÏÖÅÔÅ + ÞÉÔÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÙÅ ÒÕËÏ×ÏÄÓÔ×Á ÄÌÑ ÐÁËÅÔÏ×, ÕÓÔÁÎÏ×ÌÅÎÎÙÈ × ×ÁÛÅÊ + ÓÉÓÔÅÍÅ. îÁÂÅÒÉÔÅ m emacs ÄÌÑ ÞÔÅÎÉÑ ÒÕËÏ×ÏÄÓÔ×Á ÐÏ + Emacs. åÓÌÉ ×Ù ÎÉËÏÇÄÁ ÒÁÎÅÅ ÎÅ ÉÓÐÏÌØÚÏ×ÁÌÉ Info, ÔÏ ÎÁÂÅÒÉÔÅ ? É + Emacs ÏÔËÒÏÅÔ ÕÞÅÂÎÉË ÐÏ ×ÏÚÍÏÖÎÏÓÔÑÍ ÒÅÖÉÍÁ Info. ïÄÎÁÖÄÙ + ÏÚÎÁËÏÍÉ×ÛÉÓØ Ó ÜÔÉÍ ÕÞÅÂÎÉËÏÍ, ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÕËÏ×ÏÄÓÔ×Ï + Emacs Info × ËÁÞÅÓÔ×Å ÏÓÎÏ×ÎÏÊ ÄÏËÕÍÅÎÔÁÃÉÉ. + + +* äïðïìîéôåìøîùå ÷ïúíïöîïóôé +---------------------------- +÷Ù ÍÏÖÅÔÅ ÕÚÎÁÔØ ÂÏÌØÛÅ Ï Emacs ÞÉÔÁÑ ÅÇÏ ÒÕËÏ×ÏÄÓÔ×Ï, ËÎÉÇÉ ÉÌÉ +ÉÎÔÅÒÁËÔÉ×ÎÙÊ ÓÐÒÁ×ÏÞÎÉË (ÉÓÐÏÌØÚÕÊÔÅ ÍÅÎÀ Help ÉÌÉ ÎÁÂÅÒÉÔÅ F10 h r). ÷ÁÍ +ÏÓÏÂÅÎÎÏ ÐÏÎÒÁ×ÑÔÓÑ Ä×Å ÆÕÎËÃÉÉ -- ÄÏÐÏÌÎÅÎÉÅ, ËÏÔÏÒÏÅ ÓÏËÒÁÝÁÅÔ ËÏÌÉÞÅÓÔ×Ï +ÎÁÖÉÍÁÅÍÙÈ ËÌÁ×ÉÛ, É dired, ËÏÔÏÒÙÊ ÏÂÌÅÇÞÁÅÔ ÒÁÂÏÔÕ Ó ÆÁÊÌÁÍÉ. + +äÏÐÏÌÎÅÎÉÅ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÎÁÂÏÒÁ ÌÉÛÎÉÈ ÓÉÍ×ÏÌÏ×. +îÁÐÒÉÍÅÒ, ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÅÒÅËÌÀÞÉÔØÓÑ × ÂÕÆÅÒ *Messages*, ÔÏ ×Ù ÍÏÖÅÔÅ +ÎÁÂÒÁÔØ C-x b *M É Emacs ÚÁÐÏÌÎÉÔ ÏÓÔÁÔÏË ÉÍÅÎÉ ÂÕÆÅÒÁ, ÐÏÓËÏÌØËÕ ÏÎ +ÍÏÖÅÔ ÏÐÒÅÄÅÌÉÔØ ÅÇÏ ÉÚ ÔÏÇÏ, ÞÔÏ ×Ù ÕÖÅ ÎÁÂÒÁÌÉ. äÏÐÏÌÎÅÎÉÑ ÏÐÉÓÁÎÙ × +Info-×ÅÒÓÉÉ ÒÕËÏ×ÏÄÓÔ×Á ÐÏ Emacs × ÒÁÚÄÅÌÅ "Completion". + +Dired ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÏÔÏÂÒÁÖÁÔØ ÓÐÉÓÏË ÆÁÊÌÏ× × ËÁÔÁÌÏÇÅ (Á ÔÁËÖÅ +ÐÏÄËÁÔÁÌÏÇÁÈ, × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÎÁÓÔÒÏÊËÉ), ÐÅÒÅÍÅÝÁÔØÓÑ ÐÏ ÓÐÉÓËÕ ÆÁÊÌÏ×, +ÏÔËÒÙ×ÁÔØ ÉÈ, ÐÅÒÅÉÍÅÎÏ×Ù×ÁÔØ, ÕÄÁÌÑÔØ É ×ÙÐÏÌÎÑÔØ ÐÒÏÞÉÅ ÄÅÊÓÔ×ÉÑ ÎÁÄ +ÆÁÊÌÁÍÉ. Dired ÏÐÉÓÁÎ × Info-×ÅÒÓÉÉ ÒÕËÏ×ÏÄÓÔ×Á ÐÏ Emacs × ÒÁÚÄÅÌÅ "Dired". + +÷ ÒÕËÏ×ÏÄÓÔ×Å ÔÁËÖÅ ÏÐÉÓÁÎÙ ÐÒÏÞÉÅ ×ÏÚÍÏÖÎÏÓÔÉ Emacs. * úáëìàþåîéå ------------ -úÁÐÏÍÎÉÔÅ, ÞÔÏ ÞÔÏÂÙ ×ÙÊÔÉ ÉÚ Emacs ÎÁÓÏ×ÓÅÍ ÉÓÐÏÌØÚÕÅÔÓÑ ÓÏÞÅÔÁÎÉÅ C-x -C-c. á ÞÔÏÂÙ ×ÒÅÍÅÎÎÏ ×ÙÊÔÉ × ÏÂÏÌÏÞËÕ (shell) É ÐÏÔÏÍ ×ÅÒÎÕÔØÓÑ ÏÂÒÁÔÎÏ, -ÉÓÐÏÌØÚÕÊÔÅ C-z. +úÁÐÏÍÎÉÔÅ, ÞÔÏ ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÓÏ×ÓÅÍ ×ÙÊÔÉ ÉÚ Emacs, ÉÓÐÏÌØÚÕÅÔÓÑ ÓÏÞÅÔÁÎÉÅ +ËÌÁ×ÉÛ C-x C-c. á ÞÔÏÂÙ ×ÒÅÍÅÎÎÏ ×ÙÊÔÉ × ÏÂÏÌÏÞËÕ (shell) É ÐÏÔÏÍ ×ÅÒÎÕÔØÓÑ +ÏÂÒÁÔÎÏ, ÉÓÐÏÌØÚÕÊÔÅ C-z. -üÔÏÔ ÕÞÅÂÎÉË ÄÏÌÖÅÎ ÂÙÔØ ÐÏÎÑÔÅÎ ×ÓÅÍ ÎÏ×ÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ, ÅÓÌÉ ×Ù ÎÁÊÄÅÔÅ -ÞÔÏ-ÎÉÂÕÄØ ÎÅÑÓÎÏÅ, ÎÅ ÎÕÖÎÏ ÓÉÄÅÔØ É ÐÏÒÉÃÁÔØ ÓÅÂÑ -- ÖÁÌÕÊÔÅÓØ! +üÔÏÔ ÕÞÅÂÎÉË ÄÏÌÖÅÎ ÂÙÔØ ÐÏÎÑÔÅÎ ×ÓÅÍ ÎÏ×ÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ, ÎÏ ÅÓÌÉ ×Ù +ÎÁÊÄÅÔÅ ÞÔÏ-ÎÉÂÕÄØ ÎÅÑÓÎÏÅ, ÎÅ ÎÕÖÎÏ ÓÉÄÅÔØ É ÐÏÒÉÃÁÔØ ÓÅÂÑ -- ÖÁÌÕÊÔÅÓØ! -* COPYING -------- +* õóìï÷éñ òáóðòïóôòáîåîéñ +------------------------- üÔÏÔ ÕÞÅÂÎÉË ÐÒÏÉÚÏÛÅÌ ÉÚ ÄÌÉÎÎÏÊ ÓÅÒÉÉ ÕÞÅÂÎÉËÏ× Emacs, ÎÁÞÁÔÏÊ Ó ÏÄÎÁÖÄÙ -ÎÁÐÉÓÁÎÎÏÇÏ by Stuart Cracraft ÄÌÑ ÏÒÉÇÉÎÁÌØÎÏÇÏ Emacs. +ÎÁÐÉÓÁÎÎÏÇÏ Stuart Cracraft ÄÌÑ ÏÒÉÇÉÎÁÌØÎÏÇÏ Emacs. üÔÁ ×ÅÒÓÉÑ ÕÞÅÂÎÉËÁ, ËÁË É GNU Emacs, ÚÁÝÉÝÅÎÁ ÐÒÁ×ÁÍÉ ËÏÐÉÒÏ×ÁÎÉÑ (copyrighted), É ÐÒÉÈÏÄÉÔ Ó ÏÇÒÁÎÉÞÅÎÉÑÍÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ËÏÐÉÊ ÓÏ ÓÌÅÄÕÀÝÉÍÉ ÓÏÇÌÁÛÅÎÉÑÍÉ: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -1068,13 +1145,18 @@ Copyright (c) 1985, 1996 Free Software Foundation under the above conditions, provided also that they carry prominent notices stating who last altered them. -õÓÌÏ×ÉÑ ËÏÐÉÒÏ×ÁÎÉÑ ÓÁÍÏÇÏ Emacs ÂÏÌÅÅ ÓÌÏÖÎÙÅ, ÎÏ × ÔÏÍ ÖÅ ÄÕÈÅ. +õÓÌÏ×ÉÑ ËÏÐÉÒÏ×ÁÎÉÑ ÓÁÍÏÇÏ Emacs ÂÏÌÅÅ ÓÌÏÖÎÙÅ, ÎÏ ÐÒÉÍÅÒÎÏ × ÔÏÍ ÖÅ ÄÕÈÅ. ðÏÖÁÌÕÊÓÔÁ, ÐÒÏÞÔÉÔÅ ÆÁÊÌ COPYING É ÚÁÔÅÍ ÄÁÊÔÅ ËÏÐÉÀ GNU Emacs ×ÁÛÉÍ ÄÒÕÚØÑÍ. ðÏÍÏÇÉÔÅ ÕÎÉÞÔÏÖÉÔØ ÏÂÓÔÒÕËÃÉÏÎÉÚÍ × ÏÂÌÁÓÔÉ ÐÒÏÇÒÁÍÍÎÏÇÏ -ÏÂÅÓÐÅÞÅÎÉÑ ("×ÌÁÄÅÎÉÅ") ÉÓÐÏÌØÚÕÑ, ÓÏÚÄÁ×ÁÑ É ÒÁÓÐÒÏÓÔÒÁÎÑÑ Ó×ÏÂÏÄÎÏÅ +ÏÂÅÓÐÅÞÅÎÉÑ ("×ÌÁÄÅÎÉÅ"), ÉÓÐÏÌØÚÕÑ, ÓÏÚÄÁ×ÁÑ É ÒÁÓÐÒÏÓÔÒÁÎÑÑ Ó×ÏÂÏÄÎÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ! -// ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÎÅÔÅÒÐÅÎÉÅÍ ÖÄÕ ÐÏ ÁÄÒÅÓÕ ottalex@beep.ru +// ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÖÄÕ ÐÏ ÁÄÒÅÓÕ alexott@gmail.com. // Alex Ott. -// âÏÌØÛÏÅ ÓÐÁÓÉÂÏ ÷ÌÁÄÉÍÉÒÕ âÏÒÍÏÔÏ×Õ, ÎÁ ÂÁÚÅ ÐÅÒÅ×ÏÄÁ ËÏÔÏÒÏÇÏ ÂÙÌ ÓÄÅÌÁÎ -// ÜÔÏÔ ÐÅÒÅ×ÏÄ + +;;; Local Variables: +;;; coding: cyrillic-koi8 +;;; sentence-end-double-space: nil +;;; End: + +;;; arch-tag: ad4e5698-ea8b-45b7-b236-ed5ad5b72d2b diff --git a/etc/TUTORIAL.sk b/etc/TUTORIAL.sk index 2adfb42f1f0..26e3f834748 100644 --- a/etc/TUTORIAL.sk +++ b/etc/TUTORIAL.sk @@ -1,4 +1,4 @@ -Copyright (c) 1985 Free Software Foundation, Inc; podmienky pozri na konci. +Tútorial k Emacsu. Podmienky pozri na konci. Do èe¹tiny prelo¾il Milan Zamazal , do slovenèiny Miroslav Va¹ko . @@ -500,7 +500,7 @@ vyvol C-x C-f Vyhµadanie súboru Emacs sa Vás opýta na meno súboru. Meno súboru, ktoré pí¹ete, sa -objavuje v spodnom riadku obrazovky, ktorý sa v tejto situácii nazýva +objavuje v spodnom riadku obrazovky, ktorý sa v tejto situácii nazýva minibuffer. Pre editáciu mena súboru mô¾ete pou¾íva» obvyklé editaèné príkazy Emacsu. @@ -1081,7 +1081,8 @@ t Táto verzia tútorialu je, podobne ako GNU Emacs, chránená copyrightom a je ¹írená s povolením distribuova» kópie za istých podmienok: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Ka¾dému je zaruèené právo vytvára» a distribuova» presné kópie tohto dokumentu tak, ako ho dostal, na akomkoµvek médiu, s tým, ¾e bude @@ -1101,3 +1102,5 @@ GNU Emacsu svojim priate ;;; Local Variables: ;;; coding: iso-latin-2 ;;; End: + +;;; arch-tag: 87861cfa-5cf6-4b87-9fab-86c93c5ca9f3 diff --git a/etc/TUTORIAL.sl b/etc/TUTORIAL.sl index 856605557ab..37ebb2fbf11 100644 --- a/etc/TUTORIAL.sl +++ b/etc/TUTORIAL.sl @@ -1,5 +1,4 @@ Prvo berilo za Emacs. Pogoji uporabe in raz¹irjanja so navedeni na koncu. -Copyright (c) 1985, 1996, 1997, 2001, 2002 Free Software Foundation, Inc. Ukazi v Emacsu v splo¹nem vkljuèujejo tipki CONTROL (vèasih oznaèeni CTRL ali CTL) in META (vèasih oznaèena EDIT ali ALT). Namesto, da bi ju @@ -1115,7 +1114,8 @@ Emacs. V sloven To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo razmno¾evanje in raz¹irjanje je dovoljeno pod naslednjimi pogoji: -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Dovoljeno je izdelovati in raz¹irjati neokrnjene kopije tega spisa v kakr¹nikoli obliki pod pogojem, da je ohranjena navedba o @@ -1134,4 +1134,7 @@ pi ;;; Local Variables: ;;; coding: iso-latin-2 +;;; sentence-end-double-space: nil ;;; End: + +;;; arch-tag: 985059e4-44c6-4ac9-b627-46c8db57acf6 diff --git a/etc/TUTORIAL.sv b/etc/TUTORIAL.sv index 6cda75bcef6..65dff742ec2 100644 --- a/etc/TUTORIAL.sv +++ b/etc/TUTORIAL.sv @@ -1,6 +1,4 @@ -Detta är den Svenska användarhandledningen till Emacs. I slutet finns -kopieringsvillkoren. Copyright (c) 1985, 1996, 1998, 2001, 2002 Free -Software Foundation, Inc. +Emacs användarhandledning. I slutet finns kopieringsvillkoren. Emacs-kommandon innebär ofta användning av kontrolltangenten (vanligen märkt CTRL eller CTL) eller META-tangenten (på vissa tangentbord märkt @@ -49,6 +47,10 @@ F Hitta markören igen och notera att det är samma text som står kring markören nu. +Du kan också använda PageUp och PageDn tangenterna, om din terminal +har dem, för att flytta en hel skärmbild åt gången, men du redigerar +effektivare om du använder C-v och M-v. + * GRUNDLÄGGANDE MARKÖRRÖRELSER ------------------------------ @@ -56,12 +58,10 @@ F Att flytta sig från skärmbild till skärmbild kan vara bra, men hur förflyttar man sig till en speciell plats på skärmen? -Det finns flera sätt att göra detta på. Det vanligaste är att använda -kommandona C-p, C-b, C-f och C-n. Vart och ett av dessa kommandon -flyttar markören en rad eller en kolumn i en bestämd riktning på -skärmen. Här visas dessa fyra kommandon och i vilken riktning de -flyttar markören: - +Det finns flera sätt att göra detta. Du kan använda piltangenterna, +men det är mer effektivt att ha händerna i standardläget och använda +kommandona C-p, C-b, C-f och C-n. Dessa tecken är likvärdiga med de +fyra piltangenterna. Så här: Föregående rad, C-p : @@ -75,11 +75,10 @@ flyttar mark och C-p. Använd sedan C-l för att centrera diagrammet på skärmbilden. -Detta är säkert lite enklare att förstå om du tänker på dessa -förkortningar: P för föregående (previous), N för nästa (next), B för -bakåt (backward) och F för framåt (forward). Detta är de grundläggande -kommandona för att flytta markören och du kommer säkert att använda -dem hela tiden, så det är en stor fördel om du lär dig dem nu. +Detta är enklare att komma ihåg om du tänker på dessa förkortningar: P +för föregående (previous), N för nästa (next), B för bakåt (backward) +och F för framåt (forward). Dessa är de grundläggande kommandona för +att flytta markören och du kommer att använda dem hela tiden. >> Gör några C-n så att du kommer ned till den här raden. @@ -309,17 +308,23 @@ texten. Tecken som du kan se, s sätts in direkt. Skriv (retur-tangenten) för att sätta in en radbrytning. -Du kan radera det sista tecknet du skrev genom att trycka . - är en tangent på tangentbordet, som kan vara märkt "Del". I -några fall fungerar också "backsteg" som men inte alltid! +Du kan radera det sista tecknet du skrev genom att trycka . + är en tangent på tangentbordet -- samma som du normalt +använder utanför Emacs för att ta bort det senaste tecknet du skrivit. +Det är vanligen en stor tangent några rader ovanför retur-tangenten, +och den är vanligtvis märkt "Delete, "Del" eller "Backspace". + +Om den stora tangenten är märkt med "Backspace" så är det den du +använder för . Det kan finnas en annan tangent som är märkt +med "Delete" men det är inte . -Generellt raderar tecknet precis före den aktuella +Generellt raderar tecknet precis före den aktuella markörspositionen. >> Gör detta nu: Skriv in några tecken och ta bort dem genom att - använda . Var inte rädd för att skriva i den här filen, du - kommer inte att kunna förändra originalet till vägledningen. Detta - är bara en lokal kopia. + använda . Var inte rädd för att skriva i den här filen, + du kommer inte att kunna förändra originalet till vägledningen. + Detta är bara en lokal kopia. När en rad blir för lång för att rymmas på en skärmbredd så fortsätter den på raden under. Ett bakstreck ("\") (eller om du kör under ett @@ -330,7 +335,7 @@ indikerar att raden forts fortsätt att skriva lite till. Du kommer då att se hur fortsättningstecknet ser ut. ->> Använd för att radera texten tills raden ryms på en +>> Använd för att radera texten tills raden ryms på en skärmbredd igen. Fortsättningstecknet kommer då att försvinna. Du kan radera radbrytning precis som andra tecken. Genom att radera @@ -338,7 +343,7 @@ radbrytningen mellan tv resultatet av denna sammanslagning blir för stor för att passa inom en skärmbredd, så kommer den att visas med ett fortsättningstecken. ->> Flytta markören till början av en rad och tryck . +>> Flytta markören till början av en rad och tryck . Detta kommer att klistra ihop raden med raden över. >> Tryck för att sätta in radbrytningen du tog bort. @@ -353,21 +358,21 @@ Du har nu l Emacs och att rätta fel. Du kan radera ord och rader också. Här är en översikt över kommandon för radering: - raderar tecknet som står precis före markören - C-d raderar tecknet som står precis under markören + Raderar tecknet som står precis före markören + C-d Raderar tecknet som står precis under markören - M- raderar ordet precis före markören - M-d raderar ordet precis efter markören + M- Raderar ordet precis före markören + M-d Raderar ordet precis efter markören - C-k raderar från markören till slutet av raden - M-k raderar till slutet av stycket + C-k Raderar från markören till slutet av raden + M-k Raderar till slutet av stycket -Lägg märke till att och C-d kontra M- och M-d följer -mönstret som började med C-f och M-f. ( är inte precis +Lägg märke till att och C-d kontra M- och M-d +följer mönstret som började med C-f och M-f. ( är inte precis ett kontrolltecken men låt oss inte bry oss om det.) C-k och M-k fungerar på samma sätt som C-e och M-e (nästan). -Du kan också ta bort vilken del som helst av bufferten med hjälp av +Du kan också ta bort vilken del som helst av texten med hjälp av följande allmänna metod. Flytta till ena änden av det område du vill ta bort och tryck C-@ eller C-mellanslag. Flytta till andra änden av området och tryck C-w. Detta tar bort all text mellan de två @@ -405,9 +410,9 @@ Att s (Tänk på det som att du rycker, eller drar, tillbaka någon text som tagits bort.) Du kan antingen hämta tillbaka borttagen text till samma plats som där den blev borttagen, eller så kan du sätta in den på en -annan plats i bufferten eller till och med i en helt annan fil. Du kan -också hämta tillbaka den flera gånger så att du får flera lika -förekomster av den. +annan plats i texten du redigerar eller till och med i en helt annan +fil. Du kan också hämta tillbaka samma text flera gånger så att du får +flera lika förekomster av den. Kommandot för att hämta tillbaka text är C-y. Kommandot hämtar tillbaka den sist borttagna texten och placerar den där markören är. @@ -496,8 +501,8 @@ nytt namn, som backup, ifall du senare Om du tittar nästan längst ner på skärmbilden så kommer du se en rad som börjar och slutar med minustecken, och som innehåller texten -"--:-- TUTORIAL.se". Denna del av skärmbilden visar alltid namnet på -filen du besöker. Just nu är du inne i en fil som heter "TUTORIAL.se" +"--:-- TUTORIAL.sv". Denna del av skärmbilden visar alltid namnet på +filen du besöker. Just nu är du inne i en fil som heter "TUTORIAL.sv" och som är en personlig kopia av vägledningen till Emacs. Vilken fil du än är inne i så kommer filnamnet stå där. @@ -540,7 +545,7 @@ blev sparad. Du b systemet kraschar. >> Skriv C-x C-s för att spara en kopia av denna vägledning. - Detta skall leda till att "Wrote ...TUTORIAL.se" skrivs ut nederst + Detta skall leda till att "Wrote ...TUTORIAL.sv" skrivs ut nederst på skärmbilden. Observera: På vissa system leder C-x C-s till att skärmen låser @@ -569,7 +574,7 @@ den p >> Skapa en fil med namnet "foo" genom att trycka C-x C-f foo . Skriv in lite text, redigera den och spara "foo" genom att använda - C-x C-s. Skriv till slut C-x C-f TUTORIAL.se för att komma + C-x C-s. Skriv till slut C-x C-f TUTORIAL.sv för att komma tillbaka till den här vägledningen. Emacs sparar texten för varje fil i ett objekt kallat "buffert". När @@ -581,13 +586,37 @@ du finner en ny fil skapas en ny buffert i Emacs. F >> Prova C-x C-b nu. Se hur varje buffert har ett namn och att de också kan ha namnet på -den fil som innehållet kommer från. En del buffertar är inte knutna -till någon fil, till exempel bufferten "*Buffer List*". Det är den -buffert som innehåller buffertlistan som skapades med C-x C-b. Vilken -text du än ser i ett Emacs-fönster så tillhör den alltid en buffert. +den fil som innehållet kommer från. Vilken text du än ser i ett +Emacs-fönster så tillhör den alltid en buffert. >> Skriv C-x 1 för att bli kvitt buffertlistan. +När du har flera buffertar så är bara en av dem "gällande" åt gången. +Det är den buffert du redigerar. Om du vill redigera en annan buffert +så måste du byta till den. Om du vill byta till en buffert som +motsvarar en fil kan du göra det genom att besöka den igen med C-x +C-f. Det finns dock ett enklare sätt: använd C-x b kommandot. I det +kommandot anger du buffertens namn. + +>> Skriv C-x b foo för att gå tillbaka till bufferten "foo" + som innehåller texten i filen "foo". Skriv sedan C-x b TUTORIAL.sv + för att komma tillbaka till den här handledningen. + +Mestadels är buffertens namn densamma som filens namn (utan +katalogdel.) Det är dock inte alltid så. Bufferlistan du skapar med +C-x C-b visar alltid namnen på varje buffert. + +All text du ser i ett Emacsfönster är alltid del av någon buffert. En +del buffertar är inte knutna till någon fil, till exempel bufferten +"*Buffer List*". Det är den buffert som innehåller buffertlistan som +skapades med C-x C-b. Bufferten "*Messages*" motsvarar inte heller +någon fil. Den innehåller de meddelanden som visas på den nedersta +raden i Emacs sessionen. + +>> Skriv C-x b *Messages* för att se meddelandebufferten. + Skriv sedan C-x b TUTORIAL.sv för att återgå till den här + handledningen. + Om du ändrar texten till en fil och sedan öppnar en ny fil, så kommer inte den första filen sparas. Förändringen ligger kvar i bufferten. Skapande och redigering av den nya filen påverkar inte den @@ -603,7 +632,7 @@ vill spara eller ej. >> Sätt in en rad med text och spara med C-x s Du skall nu få frågan om du önskar spara bufferten - TUTORIAL.se. Svara ja på frågan genom att trycka "y" (yes). + TUTORIAL.sv. Svara ja på frågan genom att trycka "y" (yes). * UTVIDGNING AV KOMMANDOMÄNGDEN @@ -618,9 +647,9 @@ META-tangenter. F kommandonamn. Detta är kommandon som är bra att ha men används mer sällan än de -kommandon du redan har lärt dig. Du har redan sett två av dem, C-x C-f -för finn, och C-x C-s för spara. Ett annat exempel är kommandot för -att avsluta Emacs som är C-x C-c. Var inte rädd för att förlora +kommandon du redan har lärt dig. Du har redan sett några av dem, C-x +C-f för finn, och C-x C-s för spara. Ett annat exempel är kommandot +för att avsluta Emacs som är C-x C-c. Var inte rädd för att förlora förändringar du har gjort. C-x C-c erbjuder dig att spara förändringar innan Emacs avslutas. @@ -646,12 +675,14 @@ ist Det finns många C-x kommandon. Här är en lista över de du har lärt dig hittills: - C-x C-f Finn fil. - C-x C-s Spara fil. - C-x C-b Lista buffertar. - C-x C-c Avsluta Emacs. - C-x 1 Ta bort alla utom ett fönster. - C-x u Ångra. + C-x C-f Finn fil + C-x C-s Spara fil + C-x s Spara några buffertar + C-x C-b Lista buffertar + C-x b Byt buffert + C-x C-c Avsluta Emacs + C-x 1 Ta bort alla utom ett fönster + C-x u Ångra Namngivna utvidgade kommandon är kommandon som används mycket sällan eller bara i vissa lägen. Ett exempel på ett sådant kommando är @@ -708,16 +739,16 @@ sk Raden precis över ekoområdet kallas "lägesrad" (mode line). Den ser ungefär ut så här: ---:** TUTORIAL (Fundamental)--L670--58%---------------- +--:** TUTORIAL 63% L749 (Fundamental)----------------------- Raden innehåller information om Emacs och texten du redigerar. -Du vet redan vad filnamnet betyder, det är den fil du har funnit. --NN%-- visar den aktuella positionen i texten, dvs. NN procent av -texten befinner sig över toppen av skärmbilden. Om toppen av filen är -i skärmbilden kommer det stå --Top-- istället för --00%-- och om -slutet av filen är i skärmbilden kommer det stå --Bot--. Om du ser på -en fil där hela texten passar in på en sida kommer det stå --All--. +Du vet redan vad filnamnet betyder, det är den fil du har funnit. NN% +visar den aktuella positionen i texten, dvs. NN procent av texten +befinner sig över toppen av skärmbilden. Om toppen av filen är i +skärmbilden kommer det stå "Top" istället för " 0%" och om slutet av +filen är i skärmbilden kommer det stå "Bot". Om du ser på en fil där +hela texten passar in på en sida kommer det stå "All". Bokstaven L följd av siffror anger positionen på ett annat sätt. Siffrorna visar vilken rad som markören befinner sig på. @@ -831,7 +862,7 @@ efter. avslutar s har du sökt efter ordet "markör" en gång. >> Skriv C-s en gång till för att söka efter nästa förekomst av ordet "markör". ->> Tryck nu på fyra gånger och se hur markören flyttar sig +>> Tryck nu på fyra gånger och se hur markören flyttar sig >> Tryck för att avsluta sökandet. Såg du vad som hände? Under inkrementell sökning försöker Emacs att gå @@ -847,12 +878,12 @@ den vidare till Emacs. F fall avsnittet "Spontaneous Entry to Incremental Search" i Emacs-manualen för råd om hur detta kan undvikas. -Om du är inne i en inkrementell sökning och trycker kommer du -lägga märke till att den sista bokstaven i söksträngen blir raderad +Om du är inne i en inkrementell sökning och trycker kommer +du lägga märke till att den sista bokstaven i söksträngen blir raderad och sökandet hoppar tillbaka till en tidigare förekomst. Om du till exempel skriver "m" för att söka efter den första förekomsten av "m", och sedan trycker "a" så kommer markören flytta sig till första -förekomsten av "ma". Tryck nu . Detta avlägsnar "a" från +förekomsten av "ma". Tryck nu . Detta avlägsnar "a" från söksträngen, och markören flyttar sig tillbaka till den första förekomsten av "m". @@ -880,7 +911,7 @@ sk det övre fönstret. >> Skriv C-M-v för att rulla det nedre fönstret. - (Om du inte har META-tangenten trycker du ESC C-v.) + (Om du inte har META-tangenten trycker du C-v.) >> Skriv C-x o (o för other) för att flytta markören till det nedre fönstret. @@ -910,10 +941,10 @@ som du trycker v. Det har ingen betydelse vilken av tangenterna KONTROLL och META som trycks först, för bägge fungerar så att de "modifierar" de andra tangenterna du trycker. -Om du inte har META-tangenten och använder ESC istället är -ordningsföljden viktig. Du måste trycka ESC följt av KONTROLL-v, -KONTROLL-ESC v fungerar inte. Det är för att ESC är ett tecken i sig -och inte en äkta "modifierare". +Om du inte har META-tangenten och använder istället är +ordningsföljden viktig. Du måste trycka följt av KONTROLL-v, +KONTROLL- v fungerar inte. Det är för att är ett tecken i +sig och inte en äkta "modifierare". >> Skriv C-x 1 i det övre fönstret för att bli kvitt det nedre fönstret. @@ -946,12 +977,12 @@ Ibland kan du hamna i n huvudläget i lägesraden. Till exempel kan det stå [(Fundamental)] istället för (Fundamental). -För att komma ur rekursiv redigering trycker du ESC ESC ESC. Detta är -ett generellt brytkommando. Du kan också använda det för att bli kvitt -extra fönster och för att komma ut ur minibufferten. +För att komma ur rekursiv redigering trycker du . +Detta är ett generellt brytkommando. Du kan också använda det för att +bli kvitt extra fönster och för att komma ut ur minibufferten. ->> Skriv M-x för att komma in i minibufferten. Skriv så ESC ESC ESC - för att komma ut. +>> Skriv M-x för att komma in i minibufferten. Skriv så + för att komma ut. Du kan inte använda C-g för att komma ut ur rekursiv redigering. Detta är för att C-g används för att avbryta kommandon och argument @@ -985,7 +1016,8 @@ Den mest grundl och en knappsekvens. Emacs ger då en beskrivning av kommandot. >> Skriv C-h c C-p. - Meddelandet skall då bli något i stil med + +Meddelandet skall då bli något i stil med: C-p runs the command previous-line @@ -1061,6 +1093,29 @@ oklart duger det inte att sitta och tycka synd om sig sj ett mail och klaga! +* MER FUNKTIONER +---------------- + +Du kan lära dig mer om Emacs genom att läsa dess manual, antingen i +bokform eller on-line i Info (använd Hjälp-menyn eller skriv F10 h r). +Två finesser som du kan komma att gilla speciellt är komplettering +(completion), som spar tangenttryckningar, och dired, som förenklar +filhantering. + +Komplettering är ett sätt att undvika onödiga tangenttryckningar. Till +exempel, om du vill byta till *Messages* bufferten, kan du du skriva +C-x b *M och Emacs kommer fylla i resten av buffertnamnet så +långt den kan räkna ut det från det du redan skrivit. Komplettering +finns beskrivet i Emacs-manualen i noden "Completion". + +Dired gör det möjligt att lista filer i en katalog (och även dess +subkataloger), flytta runt i listan, besöka, byta namn, ta bort och +operera på olika sätt på filerna. Dired finns beskrivet i Info i +Emacs-manualen i noden "Dired". + +Manualen beskriver även många andra Emacs funktioner. + + * KOPIERING ----------- @@ -1071,7 +1126,8 @@ Lidell This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -1088,3 +1144,10 @@ The conditions for copying Emacs itself are more complex, but in the same spirit. Please read the file COPYING and then do give copies of GNU Emacs to your friends. Help stamp out software obstructionism ("ownership") by using, writing, and sharing free software! + +;;; Local Variables: +;;; coding: latin-1 +;;; sentence-end-double-space: nil +;;; End: + +;;; arch-tag: b352f774-622b-4cc6-85ce-43e3baf4fc1b diff --git a/etc/TUTORIAL.th b/etc/TUTORIAL.th index 4f33ad8d032..5db33b3d470 100644 --- a/etc/TUTORIAL.th +++ b/etc/TUTORIAL.th @@ -1,3 +1,4 @@ +0,T$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B. ,Tb;C40HV1!IR0Jh1G907i1RB"M'0$Yh10AW1MJSK0CQ1:`0'Wh1M9d"c9!RC7SJS`9R(B. ,TJ'G90ET1"0JT1708Tl1(B ,T>(B.,TH(B. 2528 ,Tb4B:0CT10IQ17?0CU1+M?05l1aG0Cl1?RG09l1`40*Q19(B (Free Software Foundation, Inc); ,T!0CX13R0HV1!IR`0'Wh1M9d"5M907i1RB:7(B. 0,T7h1R9!S0EQ1'0HV1!IR0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B (Emacs tutorial) ,TM0BYh1c9"3P09Ui1(B. @@ -969,7 +970,8 @@ starting with the one written by Stuart Cracraft for the original Emacs. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -1005,3 +1007,8 @@ virach@nectec.or.th Translate - January 1999 by Virach Sornlertlamvanich +;;; Local Variables: +;;; sentence-end-double-space: nil +;;; End: + +;;; arch-tag: 79ad252a-448a-4dc9-a4cb-2097dd1ec014 diff --git a/etc/TUTORIAL.translators b/etc/TUTORIAL.translators index ef1689633b3..dfda17bedb7 100644 --- a/etc/TUTORIAL.translators +++ b/etc/TUTORIAL.translators @@ -1,26 +1,91 @@ -This file contains the list of translators of the tutorial. - -TUTORIAL.bg: Ognyan Kulev -TUTORIAL.cs: Milan Zamazal - Pavel Janík -TUTORIAL.de: Werner Lemberg -TUTORIAL.es: Rafael Sepúlveda -TUTORIAL.fr: Éric Jacoboni -TUTORIAL.it: Alfredo Finelli - Italian GNU Translation Group -TUTORIAL.ja: Kenichi Handa -TUTORIAL.ko: Koaunghi Un -TUTORIAL.nl: Pieter Schoenmakers -TUTORIAL.pl: Beatę Wierzchołowską - Janusz S. Bien -TUTORIAL.ro: Tudor Hulubei -TUTORIAL.ru: Alex Ott -TUTORIAL.sv: Mats Lidell -TUTORIAL.sk: Miroslav VaÅ¡ko - Pavel Janík -TUTORIAL.sl: Primož Peterlin -TUTORIAL.th: Virach Sornlertlamvanich +This file contains the list of translators and maintainers of the +tutorial. + +* TUTORIAL.bg: +Author: Ognyan Kulev +Maintainer: Ognyan Kulev + +* TUTORIAL.cn: +Author: Chao-Hong Liu +Maintainer: Chao-Hong Liu + +* TUTORIAL.cs: +Author: Milan Zamazal + Pavel Janík +Maintainer: Milan Zamazal + Pavel Janík + +* TUTORIAL.de: +Author: Werner Lemberg +Maintainer: Werner Lemberg + +* TUTORIAL.es: +Author: Rafael Sepúlveda +Maintainer: Rafael Sepúlveda + +* TUTORIAL.fr: +Author: Éric Jacoboni +Maintainer: Éric Jacoboni + +* TUTORIAL.it: +Author: Alfredo Finelli + Italian GNU Translation Group +Maintainer: Alfredo Finelli + Italian GNU Translation Group + +* TUTORIAL.ja: +Author: Kenichi Handa +Maintainer: Kenichi Handa + +* TUTORIAL.ko: +Author: Koaunghi Un +Maintainer: Maintainer needed. + +* TUTORIAL.nl: +Author: Pieter Schoenmakers +Maintainer: Pieter Schoenmakers + +* TUTORIAL.pl: +Author: Beatę Wierzchołowską + Janusz S. Bien +Maintainer: Radoslaw Moszczynski + +* TUTORIAL.pt_BR: +Author: Marcelo Toledo +Maintainer: Marcelo Toledo + +* TUTORIAL.ro: +Author: Tudor Hulubei +Maintainer: Maintainer needed. + +* TUTORIAL.ru: +Author: Alex Ott +Maintainer: Alex Ott + +* TUTORIAL.sk: +Author: Miroslav VaÅ¡ko + Pavel Janík +Maintainer: Pavel Janík + +* TUTORIAL.sl: +Author: Primož Peterlin +Maintainer: Primož Peterlin + +* TUTORIAL.sv: +Author: Mats Lidell +Maintainer: Mats Lidell + +* TUTORIAL.th: +Author: Virach Sornlertlamvanich +Maintainer: Virach Sornlertlamvanich + +* TUTORIAL.zh: +Author: Chao-Hong Liu +Maintainer: Chao-Hong Liu + ;;; Local Variables: ;;; coding: utf-8 ;;; End: + +;;; arch-tag: 8788b16b-e739-4304-a7f2-729bdb999fa0 diff --git a/etc/TUTORIAL.zh b/etc/TUTORIAL.zh new file mode 100644 index 00000000000..1a1020a425b --- /dev/null +++ b/etc/TUTORIAL.zh @@ -0,0 +1,1087 @@ +Emacs §Ö³t«ü«n¡]. + +Emacs «ü¥O³q±`¥]§t¦³ CONTROL Áä¡]¦³®É­Ô¥H CTRL ©Î CTL ¨Ó¼Ð¥Ü¡^©Î¬O +META Áä¡]¦³®É­Ô¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁ×§K¨C¤@¦¸³£­n¼g¥X¨ä¥þ¦W¡A +§Ú­Ì±N·|¨Ï¥Î¤U­zªºÁY¼g¡G + + C- ªí¥Ü·íÁä¤J¦r¤¸ ®É «ö¦í CONTROL Áä¡C + ¦]¦¹¡AC-f ´N¬O¡G«ö¦í CONTROL Áä¦AÁä¤J f ¡C + M- ªí¥Ü·íÁä¤J¦r¤¸ ®É «ö¦í META ©Î EDIT ©Î ALT Áä¡C + ¦pªG¨S¦³ META ¡B EDIT ©Î ALT Áä®É¡A«h¥i¥H¥Î + ¡u«ö¤@¤U ESC ÁäµM«á©ñ¶}¡A¦AÁä¤J ªº¨BÆJ¡v + ¨Ó§@¬°´À¥N¡C§Ú­Ì¥H ¨Óªí¥Ü ESC Áä¡C + +­«­n³Æ§Ñ¿ý¡G­nÂ÷¶} Emacs §@·~¶¥¬q¡] session ¡^¡AÁä¤J C-x C-c ¡]¨â­Ó¦r +¤¸¡^¡C¦ì¦b¥ª°¼Ãä¬Éªº¡u>>¡v¦r¤¸¬OÅý±z¥i¥H¸ÕµÛ¨Ï¥Îªº«ü¥Oªº´£¥Ü¡CÁ|¨Ò¨Ó»¡¡G +<> +[Middle of page left blank for didactic purposes. Text continues below] +>> ²{¦bÁä¤J C-v ¡] View next screen ¡^¥H²¾¨ì¤U­Ó¿Ã¹õ¡C + ¡]¸Õ¸Õ¬Ý¡AÁä¤J¦r¤¸ v ®É¡A«ö¦í CONTROL Áä¡^ + ±q²{¦b¶}©l¡A±zÀ³¸Ó¦b¨C¦¸¾\Ū§¹¥Ø«eªº¿Ã¹õ®É°µ¤@¦¸³o­Ó°Ê§@¡C + +­nª`·Nªº¬O¡A·í±z±q¤@­Ó¿Ã¹õ²¾¨ì¥t¤@­Ó®É¡A¤¤¶¡·|¦³¨â¦æ­«½Æ¡F³o¼Ë°µ¬O¬°¤F +´£¨Ñ¤@¨Ç³sÄò©Ê¡AÅý±z¥i¥H±µÄò¦a¾\Ū¤å¦r¡C + +±z»Ý­nª¾¹Dªº²Ä¤@¥ó¨Æ¬O¦p¦ó¦b¤å¦r¤¤²¾°Ê¡C±z¤w¸gª¾¹D¤F¥i¥H C-v ¨Ó¦V«e²¾ +°Ê¤@­Ó¿Ã¹õ¡C­n¦V«á²¾°Ê¤@­Ó¿Ã¹õ¡A«hÁä¤J M-v ¡]«ö¦í META Áä¡AµM«áÁä¤J v +¡A©Î¬O¦pªG±z¨S¦³ META ¡B EDIT ©Î ALT Áä®ÉÁä¤J v ¡^¡C + +>> ¸ÕµÛÁä¤J M-v µM«á C-v ¡A³sÄò­Ó´X¦¸¡C + +¡i²{¦b±z¥i¥H C-v «ü¥O²¾¨ì«á­±¡u½Ķ¡v¤@¸`¡A¥H¨ú±oÃö©ó¥»¤åªºÂ½Ä¶¬ÛÃö¨Æ +¶µ¡FµM«á¥H M-v «ü¥O¦^¨ì³o¸Ì¡C¡j + + +* ºK­n¡] SUMMARY ¡^ +------------------- + +¥H¤Uªº«ü¥O¦bÀ˾\¿Ã¹õ®É¬Û·í¦³¥Î¡G¡i§Ú­Ì²{¦b¥H¡u¿Ã¹õ¡v¨Óªí¥Ü¡uÅã¥ÜÀɮפº +®eªº°Ï°ì¡v¡A¦]¬°¥Ø«e¬O³B¦b Emacs ¤¤ªº³æµ¡®æ¡] window ¡^Åã¥Üª¬ºA¡A¦pªG +¬O¦b¦hµ¡®æªºª¬ºA¤U¡A³o¸Ì©Ò¤¶²Ðªº«ü¥O«h§@¥Î¦b¡u¤u§@¤¤ªºµ¡®æ¡v¡C¦³Ãö©óµ¡ +®æªº¤¶²Ð¡A½Ð¨£µ¡®æ¡] windows ¡^¤@¸`¡C¡j + + C-v ¦V«e²¾°Ê¤@­Ó¿Ã¹õ¡þµ¡®æ + M-v ¦V«á²¾°Ê¤@­Ó¿Ã¹õ¡þµ¡®æ + C-l ²M°£¿Ã¹õ¡þµ¡®æ¡A¦A­«·sÅã¥Ü©Ò¦³¤å¦r¡A + ´å¼Ð©Ò¦b¦ì¸m·|Åã¥Ü©ó¿Ã¹õ¡þµ¡®æªº¤¤¥¡¡C + ¡]¬O CONTROL-L ¦Ó¤£¬O CONTROL-1 ¡^ + +>> §ä¥X´å¼Ðªº¦ì¸m¡A¨Ãª`·N¨äªþªñªº¤å¦r¬°¦ó¡CµM«áÁä¤J C-l ¡C + ¦A¦¸§ä¥X´å¼Ðªº¦ì¸m¡A½T»{¤@¤U¬Û¦Pªº¤å¦r²{¦b¤]¦ì¦b¨äªþªñ¡C + +¦pªG±zªº²×ºÝ¾÷¦³ PageUp »P PageDn Á䪺¸Ü¡A±z¤]¥i¥H¨Ï¥Î¥¦­Ì¨Ó¥H¿Ã¹õ¬°³æ +¦ì¦a²¾°Ê¡A¦ý¬O¨Ï¥Î C-v ©M M-v ·|¤ñ¸û¦³®Ä²v¡C + + +* °ò¥»ªº´å¼Ð±±¨î¡] BASIC CURSOR CONTROL ¡^ +------------------------------------------ + +¿Ã¹õ¨ì¿Ã¹õªº²¾°Ê¬O«Ü¦³¥Î¡A¦ý¬O±z¦p¦ó²¾°Ê¨ì¦ì©ó¿Ã¹õ¤º¤å¦r¤¤ªº¯S©w¦ì¸m©O¡H + +¦³´XºØ¤è¦¡¥i¥H¶i¦æ¡C±z¥i¥H¨Ï¥Î¤è¦VÁä¡A¦ý¬O±N±zªº¤â©ñ¦b¼Ð·Çªº¡eÁä½L¡f¦ì +¸m¡A¨Ã¥B¨Ï¥Î«ü¥O C-p ¡B C-b ¡B C-f ©M C-n ±N¤ñ¸û¦³®Ä²v¡C³o¨Ç¦r¤¸©M¥|­Ó +¤è¦VÁä¡eªº¥\¯à¡f¬O¦Pµ¥ªº¡A¦p¤U©Ò¥Ü¡G + + «e¤@¦æ C-p + : + : + ¦V«á²¾ C-b .... ¥Ø«e´å¼Ð¦ì¸m .... ¦V«e²¾ C-f + : + : + «á¤@¦æ C-n + +>> ¥H C-n ©Î C-p ±N´å¼Ð²¾¨ì¹Ï§Îªº¤¤¥¡¡C + Áä¤J C-l ·|¬Ý¨ì¾ã­Ó¹Ï§ÎÅã¥Ü¦b¿Ã¹õªº¤¤¥¡¡C + +±z·|µo²{¥Î¦r¥À©Ò¥Nªíªº·N¸q¨Ó°O¾Ð¥¦­Ì«Ü®e©ö¡GP ªí¥Ü previous ¡B N ªí¥Ü +next ¡B B ªí¥Ü backward ¡B¦Ó F «hªí¥Ü forward ¡C±z±N¡uÁ`¬O¡v¥Î¨ì³o¨Ç´å +¼Ð²¾°Ê«ü¥O¡C + +>> «ö´X¦¸ C-n §â´å¼Ð©¹¤U²¾°Ê¨ì³o¦æ¡C + +>> «ö´X¦¸ C-f ©¹«e²¾¨ì³o¦æ¡AµM«á¦A¥H C-p ©¹«á²¾°Ê¡C + ¬Ý¬Ý·í´å¼Ð¦b¥»¦æ¤¤¥¡®É¡AC-p ªº°Ê§@¬O«ç¼Ë¡C + +¨C¤@­Ó¤å¦r¦æ³£¥H¤@­Ó Newline ¦r¤¸§@¬°µ²§ô¡A¥¦¬O¥Î¨Ó»P¤U¤@¦æ§@¬°¤À§O¡C +¦b±zÀɮפ¤ªº³Ì«á¤@¦æÀ³¸Ó­n¦³¤@­Ó Newline ¨Ó§@¬°µ²§ô¡]¦ý¬O Emacs ¨Ã¤£¤@ +©w»Ý­n¥¦¨Ó½s¿èÀɮס^¡C + +>> ¸ÕµÛ¦b¤@¦æ¶}©lªº¦a¤èÁä¤J C-b ¡Cµ²ªGÀ³¸Ó·|²¾°Ê¨ì«e¤@¦æªº³Ì«á­±¡C + ³o¬O¦]¬°¥¦©¹«á²¾°Ê®É¶V¹L¤F Newline ¦r¤¸¡C + +C-f ¤]¥i¥H©M C-b ¤@¼Ë¦a¶V¹L Newline ¦r¤¸¡C¡iNewline ¦r¤¸¬O¡u¤£¥i¨£ +¡] invisible ¡^¦r¤¸¡v¡A¦b½s¿è¾¹¤¤¤@¯ë¬Ý¤£¨ì¥¦¡A³o¸Ì¥u¬O§i¶D±z¡G¦b¦æ­º +¦A©¹«e¨«¡A¨º»ò´å¼Ð·|¶]¨ì«e¤@¦æ¡]¦pªG¦³«e¤@¦æªº¸Ü¡^¡F¦b¦æ§À¦A©¹«á¨«¡A¨º +»ò´å¼Ð·|¶]¨ì«á¤@¦æ¡]¦pªG¦³«á¤@¦æªº¸Ü¡^¡C¡u¶V¹L Newline ¦r¤¸¡v·|Åý´å¼Ð +¶]¨ì¥t¥~¤@¦æ¡C¡j + +>> ¦h«ö´X¦¸ C-b¡A¦Û¤v·Pı¤@¤U´å¼Ð¦b­þ¡C + µM«á«ö´X¦¸ C-f ¦^¨ì³o¦æªº§À¤Ú¡C + ¦A«ö¤@¦¸ C-f ´N¥i¥H²¾¨ì¤U¤@¦æ¤F¡C + +·í±z²¾°Ê´å¼Ð¬ï¶V¿Ã¹õªº¤W¤è©Î¤U¤è®É¡A¦bÃä¬É¥~ªº¤å¦r·|²¾¦ì¶i¤J¿Ã¹õ¤º¡C³o +ºÙ¬°¡u±²°Ê¡v¡C¥¦Åý Emacs ¥i¥H±N´å¼Ð²¾°Ê¨ì¤å¦r¤¤ªº¥ô·N¯S©w¦ì¸m¡A¦P®É +¡]´å¼Ð¡^¤£·|¶]¥X¿Ã¹õ¥~¡C + +>> ¸ÕµÛ¥H C-n ±N´å¼Ð¶V¹L¿Ã¹õ¤U¤è¡AµM«á¬Ý¬Ýµo¥Í¤F¤°»ò¨Æ¡C + +¦pªG¤@­Ó¦r¤¸¤@­Ó¦r¤¸¦a²¾°Ê¤ÓºCªº¸Ü¡A±z¥i¥H¤@­Ó¦r¤@­Ó¦r¦a²¾°Ê¡CM-f +(META-f) ©¹«e²¾°Ê¤@­Ó¦r¡AM-b «h©¹«á²¾°Ê¤@­Ó¦r¡C¡i¹ï¤¤¤å¨Ó»¡¡A«h¬O²¾°Ê +¨ì¤U¤@­Ó©Î¤U¤@­Ó¼ÐÂI²Å¸¹ªº©Ò¦b¡C¡j + +>> Áä¤J¤@¨Ç M-f ©M M-b¡C + +·í±z¦b¤@­Ó¦rªº¤¤¶¡®É¡AM-f ·|²¾°Ê¨ì³o­Ó¦rªº§À¤Ú¡C·í±z¦b¦r»P¦r¶¡ªºªÅ¥Õ®É¡A +M-f ·|²¾°Ê¨ì¤U¤@­Ó¦rªº§À¤Ú¡CM-b ªº®ÄªG¬Û¦ü¡A¥u¬O¤è¦V¤£¦P¡C + +>> «ö´X¦¸ M-f ©M M-b¡A¤¤¶¡§¨Âø¤@¨Ç C-f ©M C-b¡A + ³o¼Ë¤l±z´N¥i¥HÆ[¹î M-f ©M M-b ¦b¦UºØ¡u¦ì¦b¦r¶¡©Î¦r¤¸¶¡¡v + ªº¤£¦P¦ì¸m¡A©Òªí²{¥X¨Óªº¦æ¬°¡C + +½Ðª`·N C-f ¡B C-b ©M M-f ¡B M-b ¨â¹ï¤§¶¡ªº¬Û¦ü©Ê¡C¡u¸g±`¡vªºª¬ªp¬O¡G +META ¦r¤¸¬O¥Î¨Ó§@¬°»P¡u¥H»y¨¥©w¸q¥Xªº³æ¦ì¡]¦r¡B¥y¤l¡B¬q¸¨¡^¡v¦³Ãöªº¾Þ +§@¡A¦Ó CONTROL ¦r¤¸«h¬O§@¥Î¦b¡u»P±z©Ò½s¿èµLÃöªº¡y°ò¥»¡z³æ¦ì¡]¦r¤¸©Î¦æ +µ¥¡^¡v¤W¡C + +³o­Ó¬Û¦ü©Ê¦b¡u¦æ»P¥y¤l¡v¤§¶¡¤]¦P¼Ë¾A¥Î¡GC-a ©M C-e ·|±N´å¼Ð²¾°Ê¨ì¡u¤@ +¦æ¡vªº ¶}©l©Mµ²§À³B¡A¦ÓM-a ©M M-e «h±N´å¼Ð²¾°Ê¨ì¡u¤@¥y¡vªº ¶}©l©Mµ²§À +³B¡C + +>> ¸ÕµÛ«ö¨â¦¸ C-a¡A¦A«ö¨â¦¸ C-e¡C + ¸ÕµÛ«ö¨â¦¸ M-a¡A¦A«ö¨â¦¸ M-e¡C + +¬Ý¤@¤U¬°¤°»ò­«½Æªº C-a «ü¥O·|¨S¦³§@¥Î¡A¦Ó­«½Æªº M-a «ü¥O«hÄ~Äò²¾°Ê¨ì¤U +¤@­Ó¥y¤l¡CÁöµM³o¨Ã¤£¯à»¡¬O§¹¥þÃþ¤ñ¡A¦ý¬O¨ä¤¤¨C­Ó«ü¥Oªº¦æ¬°¬Ý°_¨Ó³£¤Q¤À +¦ÛµM¡C + +´å¼Ð¦b¤å¦r¤¤ªº¦ì¸m¤]¥i¥HºÙ§@¡uÂI¦ì¡] point ¡^¡v¡C²³æ¨Ó»¡´N¬O¡G´å¼Ðªí +²{¥X¿Ã¹õ¤¤¡uÂI¦ì¡v©Ò¦bªº¤å¦r¦ì¸m¡C + +³o¸Ì¬O¤@¨Ç²³æ¡u´å¼Ð²¾°Ê¡] cursor-moving ¡^¾Þ§@¡vªº¾ã²z¡A¨ä¤¤¤]¥]¬A¤F +¡u¦r©M¥y¡vªº²¾°Ê«ü¥O¡G + + C-f ©¹«e²¾°Ê¤@­Ó¦r¤¸ + C-b ©¹¦^²¾°Ê¤@­Ó¦r¤¸ + + M-f ©¹«e²¾°Ê¤@­Ó¦r¡i¤¤¤å¬O²¾°Ê¨ì¤U¤@­Ó¼ÐÂI²Å¸¹¡j + M-b ©¹¦^²¾°Ê¤@­Ó¦r¡i¤¤¤å¬O²¾°Ê¨ì¤W¤@­Ó¼ÐÂI²Å¸¹¡j + + C-n ²¾°Ê¨ì¤U¤@¦æ + C-p ²¾°Ê¨ì¤W¤@¦æ + + C-a ²¾°Ê¨ì¦æ­º + C-e ²¾°Ê¨ì¦æ§À + + M-a ²¾¦^¥y­º + M-e ²¾¨ì¥y§À + +>> ½m²ß´X¦¸³o¨Ç«ü¥O¡C³o¨Ç³£¬O³Ì±`¨Ï¥Î¨ìªº«ü¥O¡C + +ÁÙ¦³¨â­Ó­«­nªº´å¼Ð°Ê§@¡] cursor-motion ¡^«ü¥O¡AM-<¡] META Less-than ¡^¡A +²¾°Ê¨ì¤å¦rªº³Ì¶}©l¡A¥H¤ÎM->¡] META Greater-than ¡^¡A²¾°Ê¨ì¤å¦rªº³Ì«á¡C + +¦b¤j³¡¥÷ªº²×ºÝ¾÷¡A¡u<¡v¬O¦b comma ¤W¤è¡A©Ò¥H±z¥²¶·­n¨Ï¥Î shift Áä¨ÓÁä +¤J¡C¦b³o¨Ç²×ºÝ¾÷¤W¡A±z¥²¶·¨Ï¥Î shift Áä¨ÓÁä¤J M-<¡F¨S¦³¨Ï¥Î shift Áä¡A +±z´NÅܦ¨Áä¤J M-comma ¤F¡C + +>> ²{¦b¸Õ¤@¤U M-< ¡A²¾¨ì¥»§Ö³t«ü«nªº³Ì¶}©l¡C + µM«á¦A­«½Æ¦a¨Ï¥Î C-v ¦^¨ì³o¸Ì¡C + +>> ²{¦b¸Õ¤@¤U M-> ¡A²¾¨ì¥»§Ö³t«ü«nªº³Ì«á¡C + µM«á¦A­«½Æ¦a¨Ï¥Î M-v ¦^¨ì³o¸Ì¡C + +¦pªG±zªº²×ºÝ¾÷¦³¤è¦VÁ䪺¸Ü¡A±z¤]¥i¥H¥Î¤è¦VÁä²¾°Ê´å¼Ð¡C§Ú­Ì¦³¤T­Ó²z¥Ñ«Ø +ij±z¾Ç²ß C-b ¡B C-f ¡B C-n ¡B ©M C-p ¡G(1) ¥ô¦óªº²×ºÝ¾÷³£¯à¨Ï¥Î¡C(2) +¤@¥¹±z¨Ï¥Î Emacs ¬Û·í¼ô½m¤F¡A±z·|µo²{Áä¤J³o¨Ç CONTROL ¦r¤¸¡A¤ñ°_¨Ï¥Î¤è +¦VÁä§Ö¦h¤F¡]¦]¬°±z¤£»Ý­n±N¤â²¾¶}¥´¦r°Ï¡^¡C(3) ¤@¥¹±z¨Ï¥Î³o¨Ç CONTROL +¦r¤¸«ü¥O¦¨¬°²ßºD¡A±z¤]¥i¥H«Ü®e©ö¦a¾Ç·|¨ä¥L¶i¶¥ªº´å¼Ð°Ê§@«ü¥O¡C + +¤j³¡¥÷ªº Emacs «ü¥O±µ¨ü¼Æ¦r°Ñ¼Æ¡F¹ï¤j³¡¥÷ªº«ü¥O¦Ó¨¥¡A¥¦ªº§@¥Î¬O«ü©w­« +½Æ¦¸¼Æ¡C±z­n«ü©w¤@­Ó«ü¥Oªº­«½Æ¦¸¼Æªº§@ªk¬O¡G¥ýÁä¤J C-u¡AµM«á¦b±zÁä¤J«ü +¥O«e¡AÁä¤J¥Nªí­«½Æ¦¸¼Æªº¼Æ¦ì¡C¦pªG±z¦³¤@­Ó META¡]©Î EDIT ©Î ALT ¡^Áä¡A +¨º»ò±zÁÙ¦³¥t¥~¤@­Ó´À¥N§@ªk¨Ó¿é¤J¼Æ¦r°Ñ¼Æ¡G«ö¦í META Áä®É¥´¤J³o¼Æ¦r¡C§Ú +­Ì«ØÄ³±z¾Ç²ß C-u ªº¤èªk¡A¦]¬°¥¦¦b¥ô¦ó²×ºÝ¾÷³£¥i¥H¨Ï¥Î¡C¦¹¤@¼Æ¦r°Ñ¼Æ¤] +ºÙ§@¬°¡u¦r­º°Ñ¼Æ¡v¡A¦]¬°±z¦b³o°Ñ¼Æ©Ò§@¥Î¨ìªº«ü¥O«eÁä¤J¥¦¡C + +Á|¨Ò¨Ó»¡¡A C-u 8 C-f ¦V«e²¾°Ê 8 ­Ó¦r¤¸¡C + +>> ¸ÕµÛ¥H¤@­Ó¼Æ¦r°Ñ¼Æ¨Ó¨Ï¥Î C-n ©Î C-p¡A + ¥u¤@­Ó«ü¥O´N±N´å¼Ð²¾°Ê¨ì³o¦æªºªþªñ¡C + +¤j³¡¥÷ªº«ü¥O¨Ï¥Î¼Æ¦r°Ñ¼Æ¨Ó§@¬°¨ä­«½Æ¦¸¼Æ¡A¦ý¬O¨ä¤¤¦³¨Ç«ü¥O«h¬O§@¬°¨ä¥L +¥Î³~¡C¦³´X­Ó«ü¥O¡]¥Ø«e±z©|¥¼¾Ç¨ì¡^±N¥¦§@¬°ºX¼Ð -- ¥H¤@­Ó¦r­º°Ñ¼Æªº«¬ºA +¥X²{¡A¦Ó¤£ºÞ¨ä­È¬°¦ó¡A¥¦­ÌÅý³o«ü¥O°µ¨Ç¤£¤@¼Ëªº¨Æ¡C + +C-v ©M M-v «h¬O¥t¤@Ãþªº¨Ò¥~¡C·íµ¹©w¤@­Ó°Ñ¼Æ®É¡A¥¦­Ì±²°Ê¡u©Ò«ü©wªº¼Æ¶q +ªº¦æ¡]¥H¦æ¬°³æ¦ì¡^¡v¡A¦Ó¤£¬O¥H¡u¿Ã¹õ¡v¬°³æ¦ì±²°Ê¡CÁ|¨Ò¨Ó»¡¡AC-u 8 C-v +±NÅã¥Ü¿Ã¹õ±²°Ê 8 ¦æ¡C + +>> ²{¦b¸ÕµÛÁä¤J C-u 8 C-v¡C + +³o«ü¥OÀ³¸Ó¤w¸g±N¿Ã¹õ¦V¤W²¾¤F 8 ¦æ¡C­Y±z·Q±N¥¦¦A¦¸¦a¦V¤U±²°Ê¡A±z¥i¥H¦b +°õ¦æ M-v ®Éµ¹©w¤@­Ó°Ñ¼Æ¡C + +¦pªG±z¥¿¦b¨Ï¥Î X µøµ¡¨t²Î¡A¦b Emacs µøµ¡¥ª¤â°¼À³¸Ó¦³¤@­ÓºÙ¬°¡u±²°Ê¶b¡v +ªºªø¤è«¬°Ï°ì¡C±z¥i¥H¥Î·Æ¹«¦b±²°Ê¶b«ö¤@¤U¨Ó±²°Ê¤å¦r¡C + +>> ¸ÕµÛ¦b¡u±²°Ê¶b¤º¤Ï¥Õ°Ï°ì¤W¡vÀ£¤@¤U¤¤¶¡¶s¡C³oÀ³¸Ó·|±N¤å¦r±²°Ê¨ì + ¡u¥Ñ±z©Ò«ö¤@¤U·Æ¹«ªº¦a¤è¡v©Ò¨M©wªº¦ì¸m¡C + +>> ·í«ö¦í¤¤¶¡®É¡A¸ÕµÛ±N·Æ¹«¤W¤U²¾°Ê¡C + ±z·|¬Ý¨ì¤å¦rÀHµÛ±z²¾°Ê·Æ¹«¦Ó¤W¤U²¾°Ê¡C + + +* ·í EMACS µo§b®É¡] WHEN EMACS IS HUNG ¡^ +----------------------------------------- + +¦pªG Emacs °±¤î¦^À³±zªº«ü¥O¡A±z¥i¥HÁä¤J C-g ¨Ó¦w¥þ¦a°±¤î¥¦¡C±z¤]¥i¥H¨Ï +¥Î C-g ¨Ó°±¤î°õ¦æ¹L¤[ªº«ü¥O¡C + +±z¤]¥i¥H¨Ï¥Î C-g ¨Ó¨ú®ø¼Æ¦r°Ñ¼Æ©Î±z¤£·Q­n§¹¦¨ªº«ü¥O¡C + +>> Áä¤J C-u 100 ¥H³]©w¤@­Ó 100 ªº¼Æ¦r°Ñ¼Æ¡AµM«áÁä¤J C-g¡C + ²{¦bÁä¤J C-f¡C¥¦À³¸Ó¥u·|²¾°Ê¤@­Ó¦r¤¸¡A¦]¬°±z¤w¸g¥H C-g + ¨ú®ø¤F°Ñ¼Æ¡C + +¦pªG±z¤w¸g¤£¤p¤ß¦aÁä¤J¤@­Ó ¡A±z¥i¥H C-g ¨Ó¨ú®ø¥¦¡C + + +* µL®Ä¤Æªº«ü¥O¡] DISABLED COMMANDS ¡^ +------------------------------------- + +¦³¤@¨Ç Emacs «ü¥O³Q¡uµL®Ä¤Æ¡v¤F¡A¦]¦¹ªì¾ÇªÌ¤£·|·N¥~¦a¨Ï¥Î¨ì¥¦­Ì¡C + +¦pªG±zÁä¤J¤F¬Y¤@­ÓµL®Ä¤Æªº«ü¥O¡AEmacs ·|Åã¥Ü¤@­Ó°T®§¡A»¡©ú³o­Ó«ü¥O¬O¤° +»ò¡A¨Ã¥B¸ß°Ý±z¬O§_·Q­nÄ~Äò¡AµM«á°õ¦æ³o«ü¥O¡C + +¦pªG±z¯uªº·Q­n¸Õ¤@¤U³o­Ó«ü¥O¡A¨º»ò¦b·í Emacs ¸ß°Ý±z®É¡A½ÐÁä¤JªÅ¥Õ¡C¤@ +¯ë¨Ó»¡¡A¦pªG±z¤£·Q­n°õ¦æ³o­ÓµL®Ä¤Æªº«ü¥O¡A½Ð¥H¡yn¡z¨Ó¦^µª¥¦¡C + +>> Áä¤J C-x C-l ¡]³o¬O­ÓµL®Ä¤Æªº«ü¥O¡^ + µM«áÁä¤J n ¨Ó¦^µª°ÝÃD¡C + + +* µ¡®æ¡] WINDOWS ¡^ +------------------- + +Emacs ¥i¥H¦³¼Æ­Óµ¡®æ¡A¨C¤@­ÓÅã¥Ü¥¦¦Û¤vªº¤å¦r¡C§Ú­Ì¦bµy«á·|¸ÑÄÀ¦p¦ó¨Ï¥Î +¦h­«µ¡®æ¡C²{¦b§Ú­Ì·Q­n¸ÑÄÀ¦p¦ó°£¥h¦h¾lªºµ¡®æ¡AµM«á¦^¨ì°ò¥»ªº³æµ¡®æ½s¿è¡C +¥¦«Ü²³æ¡G + + C-x 1 One window ¡]§Y¡A°£¥h¨ä¥L©Ò¦³ªºµ¡®æ¡^¡C + +¨º¬O­Ó CONTROL-x «á­±¸òµÛ¼Æ¦r 1 ¡CC-x 1 ±N§t¦³´å¼Ðªºµ¡®æÂX¤j¨ì¾ã­Ó¿Ã¹õ¡C +¥¦±N©Ò¦³¨ä¥Lªºµ¡®æ°£¥h¡C + +>> ²¾°Ê´å¼Ð¨ì¥»¦æ¨Ã¥BÁä¤J C-u 0 C-l¡C +>> Áä¤J CONTROL-h k CONTROL-f¡C + ¬Ý¬Ý³o­Óµ¡®æ¦b·í¤@­Ó·sªºµ¡®æ¥X²{ + ¡]¥HÅã¥Ü¦³Ãö CONTROL-f «ü¥Oªº¤å¥ó®É¡^¡A¥¦¬O¦p¦óÁY¤pªº¡C + +>> Áä¤J C-x 1 ¥H¨Ï¤å¥ó¦Cªíµ¡®æ®ø¥¢¡C + +³o­Ó«ü¥O¨Ã¤£¹³±z¥ý«e©Ò¾Ç¹Lªº«ü¥O¨º¯ë¡A¥¦¥]¬A¤F¨â­Ó¦r¤¸¡C¥¦¬O¥H¦r¤¸ +CONTROL-x §@¬°¶}©l¡C¦³¤@¾ã­Ó¨t¦Cªº«ü¥O¬O¥H CONTROL-x §@¬°¶}©l¡F¥¦­Ì¤§ +¤¤¦³³\¦h¬O»P¡uµ¡®æ¡BÀɮסB¼È¦s°Ï¥H¤Î¬ÛÃö¨Æª«¡v¦³Ãöªº¡C³o¨Ç«ü¥O¦³ 2 ¡B +3 ©Î 4 ­Ó¦r¤¸ªø¡C + + +* ´¡¤J»P§R°£¡] INSERTING AND DELETING ¡^ +---------------------------------------- + +¦pªG±z·Q­n´¡¤J¤å¦r¡A§â¥¦Áä¤J´N¬O¤F¡C±z¥i¥H¬Ý¨ìªº¦r¤¸¡A¹³¬O A ¡B 7 ¡B * +µ¥¡A³Q Emacs µø¬°¤å¦r¨Ã¥B¥i¥Hª½±µ´¡¤J¡CÁä¤J +¡] carriage-return Áä¡^¥H´¡¤J¤@­Ó Newline ¦r¤¸¡C + +±z¥i¥HÁä¤J ¥H§R°£±z³Ì«áÁä¤Jªº¦r¤¸¡C ¬O¤@­ÓªºÁä½LÁä +-- ´N¬O±z³q±`¦b Emacs ¥~¡A¨Ï¥Î¨Ó¡u§R°£±z³Ì«áÁä¤J¦r¤¸¡vªº¦P¤@­Ó¡C¤@¯ë¨Ó +»¡¬O­Ó¦b ¤W¤è¼Æ¦æªº¤jÁä¡A³q±`¼Ð¥Ü¬°¡yDelete¡z¡B¡yDel¡z©Î +¡yBackspace¡z¡C + +¦pªG¦b¨º¸Ì¦³­Ó¼Ð¥Ü¬°¡yBackspace¡zªº¤jÁä¡A¨º»ò¨º¤@­Ó´N¬O±z¨Ï¥Î¨Ó§@¬° + ªºÁä¤F¡C¬Y­Ó¦a¤è¥i¯à¤]·|¦³¥t¤@­Ó¼Ð¥Ü¬°¡yDelete¡zªºÁä¡A¦ý¨º­Ó +¨Ã¤£¬O ¡C + +§ó¤@¯ë¦a»¡¡A ±N¦ì©ó¥Ø«e´å¼Ð¦ì¸m«e¤@­Ó¦r¤¸¥[¥H§R°£¡C + +>> ²{¦b°µ -- Áä¤J¤@¨Ç¦r¤¸¡AµM«áÁä¤J´X¦¸ ¨Ó§R°£¥¦­Ì¡C + ¤£­n¾á¤ß³o­ÓÀÉ®×·|³Q§ó°Ê¡F±z¤£·|¼vÅT¨ì­ì¨Óªº§Ö³t«ü«n¡C + ¡]±z²{¦b¬Ý¨ìªº¡^³o¤@­Ó¬O±zªº­Ó¤H«þ¨©¡C + +·í¤@¦æ¤å¦rÅܱo¤ñ¡u¦bµ¡®æ¤¤ªº¤@¦æ¡vªø®É¡A³o¤@¦æ¤å¦r·|¡u±µÄò¡v¨ì²Ä¤G¦æµ¡ +®æ¦æ¡C³o®É¤@­Ó¤Ï±×½u¡u\¡v¡]©Î¦pªG±z¨Ï¥Îµøµ¡¤ÆªºÅã¥Ü¡A«h¬O¤@­Ó¤p¤pÅsÅs +ªº½bÀY¡^·|¦ì¦b¨ä¥kÃä¬É¥H«ü¥X¦¹¦æ±µÄòµÛ¡C + +>> ´¡¤J¤å¦r¡A¤@ª½¨ì±z¹F¨ì¥kÃä¬É¡AµM«á¦AÄ~Äò´¡¤J¡C + ±z·|¬Ý¨ì¤@­Ó±µÄò¦æ¥X²{¡C + +>> ¨Ï¥Î §R°£¤@¨Ç¤å¦r¡Aª½¨ì¦¹¦æ¦A¦¸¦¨¬°¤@­Óµ¡®æ¦æ¡C + ±µÄò¦æ®ø¥¢¤F¡C + +±z¥i¥H¹³§R°£¨ä¥L¦r¤¸¤@¼Ë¦a§R°£ Newline ¦r¤¸¡C±N¦ì¦b¨â¦æ¤¤ªº Newline ¦r +¤¸§R°£·|Åý¥¦­Ì¦X¨Ö¦¨¬°¤@¦æ¡C¦pªG¦X¨Öªºµ²ªG¨Ï³o¤@¦æ¤Óªø¡A¥H­PµLªk²Å¦Xµ¡ +®æªº¼e«×¡A¥¦·|¥H¤@­Ó±µÄò¦æ¨ÓÅã¥Ü¡C + +>> ²¾°Ê´å¼Ð¨ì¥»¦æªº¶}ÀY¨ÃÁä¤J ¡C + ³o·|±N¥»¦æ»P¨ä«e¤@¦æµ²¦X¬°¤@¦æ¡C + +>> Áä¤J ¥H­«·s´¡¤J±z­è¤~§R°£ªº Newline ¦r¤¸¡C + +°O±o¤j³¡¥÷ªº Emacs «ü¥O³£¥i¥Hµ¹¤©¤@­Ó­«½Æ­p¼Æ¡] repeat count ¡^¡F³o¤] +¥]¬A¤F¤å¦r¦r¤¸¡C­«½Æ¤@­Ó¤å¦r¦r¤¸·|±N¥¦´¡¤J¼Æ¦¸¡C + +>> ²{¦b´N¸Õ¤@¤U -- Áä¤J C-u 8 * ¥H´¡¤J ********¡C + +±z²{¦b¤w¸g¾Ç¨ì¤F¡uÁä¤J­Ó¤°»òªF¦è¶i Emacs ¥H¤Î­×¥¿¿ù»~¡vªº¤j³¡¥÷°ò¥»¤è +ªk¡C±z¤]¥i¥H¡u¥H¦r©Î¦æ¬°³æ¦ì¡v¦a§R°£¡C³o¸Ì¦³¥÷Ãö©ó¡u§R°£¾Þ§@¡vªººK­n¡G + + §R°£´å¼Ð©Ò¦bªº «e¤@­Ó¦r¤¸ + C-d §R°£´å¼Ð©Ò¦bªº «á¤@­Ó¦r¤¸ + + M- §R°£´å¼Ð©Ò¦bªº «e¤@­Ó¦r + M-d §R°£´å¼Ð©Ò¦bªº «á¤@­Ó¦r + + C-k §R°£±q´å¼Ð©Ò¦b¨ì¡u¦æ§À¡v¶¡ªº¦r¤¸ + M-k §R°£±q´å¼Ð©Ò¦b¨ì¡u¥y§À¡v¶¡ªº¦r¤¸ + +ª`·N¡u ©M C-d¡vÁÙ¦³¡uM- ©M M-d¡v¬O¥­¦æ¦a¦Û C-f ©M +M-f ÂX¥R¥X¨Óªº¡]¶â¡A ¨Ã¤£¬O±±¨î¦r¤¸¡A¦ý¬O¨S¤°»ò¦n¾á¤ßªº¡^¡C +C-k ©M M-k ¦b¬YºØµ{«×¤W»P C-e ©M M-e ¤@¼Ë¡A¦pªG§â¡u¤@¦æ¡v©M¡u¤@¥y¡v§@ +¬°Ãþ¤ñªº¸Ü¡C + +±z¤]¥i¥H¥u¥H¤@ºØ¤èªk¨Ó§R°£½w½Ä°Ï¤ºªº¥ô¦ó³¡¥÷¡A¥ý²¾°Ê¨ì±z·Q­n§R°£ªº³¡¥÷ +ªº¤@ºÝ¡AµM«áÁä¤J C-@ ©Î C-SPC ¡]¥ô¤@­Ó§Y¥i¡^¡C¡] SPC «üªº¬O Space Bar +¡^¦A²¾¨ì¨º³¡¥÷ªº¥t¤@ºÝ¡A±µµÛÁä¤J C-w ¡C³o¼Ë´N·|§â¤¶©ó³o¨â­Ó¦ì¸m¶¡ªº©Ò +¦³¤å¦r§R°£¡C + +>> ²¾°Ê´å¼Ð¨ì¤W¤@¬q¶}ÀYªº¡u±z¡v¦r¡C +>> Áä¤J C-SPC ¡C Emacs À³¸Ó·|¦b¿Ã¹õªº¤U¤èÅã¥Ü¤@­Ó¡uMark set¡v°T®§¡C +>> ²¾°Ê´å¼Ð¨ì²Ä¤G¦æ¤¤ªº¡uºÝ¡v¦r¡C +>> Áä¤J C-w ¡C³o¼Ë·|§â±q¡u±z¡v¶}©l¨ì­è¦n¡uºÝ¡v¤§«eªº¤å¦r§R°£¡C + +­nª`·Nªº¬O¡u±þ±¼¡] killing ¡^¡v©M¡u§R°£¡] deleting ¡^¡vªº¤£¦P¦b©ó³Q±þ +±¼ªº¥i¥H©Ô¦^¡A¦Ó³Q§R°£ªº«h¤£¯à¡C¡i¦³ÂIÃø¥H²z¸Ñ¡A±z¥i¥H³o»ò·Q¡G(1)¡u³Q +±þ±¼ªº¡v©|¦s¤r°©¡A¦Ó¡u³Q§R°£ªº¡v«h¤r°©µL¦s¤F¡I¥i¨£±o¹ï¹q¸£¸ê®Æ¨Ó»¡¡A +¡u§R°£¡v¤ñ¡u±þ±¼¡vÄY­«¦h¤F¡C(2)¹ê»Ú¤W¡A´Nºâ³Q§R°£¤F¡A§Ú­ÌÁÙ¬O¦³§Þ³N¥i +¥H§â¥¦±Ï¦^¨Ó¡A¤×¨ä¬O¤å¦r¸ê®Æ¡A«e´£¬O§R°£«á¤£¯à¶i¦æ¹êÅé°O¾ÐÅ骺®æ¦¡¤Æ°Ê +§@¡C¦ý³o¹ï©ó¤@¯ë¨Ï¥ÎªÌ¦Ó¨¥¬O¤£¥i¯àªº¡A¦]¦¹´N¤£¦Ò¼{³o±¡§Î¤F¡C¡j­«·s´¡¤J +³Q±þ±¼ªº¤å¦rºÙ¬°¡u©Ô¦^¡] yanking ¡^¡v¡C¤@¯ë¦Ó¨¥¡A¥i¥H²¾°£±¼«Ü¦h¤å¦rªº +«ü¥O·|§â¨º¨Ç¤å¦rÀx¦s°_¨Ó¡]¥¦­Ì³]©w¦¨±z¥i¥H±N¤å¦r©Ô¦^¡^¡A¦Ó¨º¨Ç¥u¬O§R°£ +¤@­Ó¦r¤¸©ÎªÌ¥u¬O°£¥hªÅ¥Õ¦æ©ÎªÅ¥Õªº«ü¥O¡A«h¤£·|Àx¦s³o¨Ç³Q§R°£ªº¤å¦r¡]¦] +¦¹±z¤£¯à±N¨º¤å¦r©Ô¦^¡^¡C + +>> ²¾°Ê´å¼Ð¨ì¤@«DªÅ¥Õ¦æªº¶}©l¡C + µM«áÁä¤J C-k ±þ±¼¦b¨º¤@¦æ¤Wªº¤å¦r¡C +>> ²Ä¤G¦¸Áä¤J C-k¡C±z±N·|¬Ý¨ì¥¦±þ±¼¸ò¦b¨º¤@¦æ«á­±ªº Newline ¦r¤¸¡C + +½Ðª`·N³æ¿Wªº C-k ·|§â¤@¦æªº¤º®e±þ±¼¡A¦Ó²Ä¤G­Ó C-k «h·|±þ±¼¨º¤@¦æ¥»¨­¡A +¨Ã¥B¨Ï±o©Ò¦³¨ä¥Lªº¦æ¦V¤W²¾°Ê¡CC-k ¥H«Ü¯S§Oªº¤è¦¡¨Ó³B²z¼Æ¦r°Ñ¼Æ¡A¥¦·|±þ +±¼«Ü¦h¦æ¥H¤Î¥¦­Ìªº¤º®e¡A³o¤£¶È¶È¬O­«½Æ¦Ó¤w¡AC-u 2 C-k ·|§â¨â¦æ¥H¤Î¥¦­Ì +ªº Newline ¦r¤¸±þ±¼¡F¦pªG¥u¬OÁä¤J C-k ¨â¦¸¨Ã¤£·|³o¼Ë¡C + +±N³Q±þ±¼ªº¤å¦r¦^´_ªº°Ê§@ºÙ¬°¡u©Ô¦^¡] yanking ¡^¡v¡C¡]§â¥¦·Q¹³¦¨±z§â§O +¤H±q±z¨­¤W¹Ü¥hªºªF¦è²r¤O¦a©Ô¦^¨Ó¡^±z¥i¥H¦b±z§R°£¤å¦rªº¦a¤è©Ô¦^¡A¤]¥i¥H +¦b¤å¦rªº¨ä¥L¦a¤è©Ô¦^¡C±z¥i¥H©Ô¦^¼Æ¦¸¦P¼Ëªº¤å¦r¡A¥H»s§@¥¦ªº¼Æ¥÷«þ¨©¡C + +©Ô¦^ªº«ü¥O¬° C-y¡C¥¦·|¦b¥Ø«e´å¼Ðªº¦ì¸m­«·s´¡¤J³Ì«á±þ±¼ªº¤å¦r¡C + +>> ¸Õ¸Õ¬Ý¡FÁä¤J C-y ±N¤å¦r©Ô¦^¡C + +¦pªG±z³sÄò¦a°µ¤F¼Æ¦¸ C-k¡A©Ò¦³³Q±þ±¼ªº¤å¦r³£·|³QÀx¦s¦b¤@°_¡A¦]¦¹°µ¤@¦¸ +C-y ´N·|§â©Ò¦³³o¨Ç¦æ³£©Ô¦^¨Ó¡C + +>> ²{¦b°µ¤@¤U¡AÁä¤J C-k ¼Æ¦¸¡C + +²{¦b­n¦^´_¨º¨Ç±þ±¼ªº¤å¦r¡G + +>> Áä¤J C-y¡CµM«á§â´å¼Ð©¹¤U²¾°Ê­Ó´X¦æ¡A¦A¤@¦¸Áä¤J C-y¡C + ±z²{¦bª¾¹D¦p¦ó½Æ»s¬Y¨Ç¤å¦r¤F¡C + +¦pªG±z¦³¤@¨Ç¤å¦r·Q­n©Ô¦^¨Ó¡A¦ý¬O«á¨Ó±z¤S±þ¤F¬Y¨ÇªF¦è¡A¨º»ò¸Ó«ç»ò°µ©O¡H +C-y ·|§â³Ìªñ±þ±¼ªº©Ô¦^¨Ó¡A¦ý¬O¥ý«eªº¤å¦r¨Ã¨S¦³®ø¥¢¡A±z¥i¥H¥Î M-y ¨Ó¦^ +¨ì¥¦¡C·í±z¤w¸g¨Ï¥Î C-y §â³Ìªñ±þ±¼ªº©Ô¦^¨Ó¤§«á¡A¦AÁä¤J M-y ¨Ó§â³o¨Ç©Ô¦^ +¨Óªº¤å¦r´À´«¬°¥ý«e©Ò±þ±¼ªº¡C¤@¦¸¤S¤@¦¸¦aÁä¤J M-y ·|§â¥ý«e¦A¥ý«e©Ò±þ±¼ +ªº¤å¦r±a¦^¨Ó¡C·í±z¨ì¤F±z·Q§äªº¤å¦r®É¡A±z¤£»Ý­n°µ¥ô¦ó¨Æ¨Ó«O¦s¥¦¡A¥u­nÄ~ +Äò±zªº½s¿è¡A§â³o¨Ç¤w©Ô¦^ªº¤å¦r¯d¦b¨º¸Ì´N¦n¡C + +¦pªG±z M-y °µ¤F«Ü¦h¦¸¡A±z¥i¯à·|¦^¨ì°_©lÂI¡A¤]´N¬O³Ìªñ±þ±¼ªº¡C + +>> ±þ±¼¤@¦æ¡A¨ì³B¶¶¡A¦A±þ±¼¥t¤@¦æ¡C + µM«á¥Î C-y ±N²Ä¤G¦¸±þ±¼ªº¨º¦æ±a¦^¨Ó¡C + µM«á¦A¥Î M-y¡A¥¦±N·|³Q²Ä¤@¦¸±þ±¼ªº¨º¦æ¨ú¥N¡C + ¦A°µ´X¦¸ M-y ¬Ý¬Ý±z·|±o¨ì¤°»ò¡C + ¤£¶¡Â_¦a°µ¡Aª½¨ì²Ä¤G­Ó±þ±¼¦æ¦^¨Ó¡A¦A°µ­Ó´X¦¸¡C + ¦pªG±z·Qªº¸Ü¡A±z¥i¥H¸ÕµÛµ¹ M-y ¥¿ªº©Î¬O­tªº°Ñ¼Æ¡C + + +* ¨ú®ø°Ê§@¡] UNDO ¡^ +-------------------- + +¦pªG±z¹ï¤å¦r°µ¤F¤@¨Ç§ïÅÜ¡A«á¨Óı±o¥¦¬O­Ó¿ù»~¡A±z¥i¥H Undo «ü¥O¨ú®ø³o¤@ +­Ó§ïÅÜ¡AC-x u¡C + +³q±` C-x u ·|§â¤@­Ó«ü¥O©Ò³y¦¨ªº§ïÅܨú®ø±¼¡F¦pªG±z¦b¤@¦æ¤¤­«½Æ¤F³\¦h¦¸ +C-x u¡A¨C¤@­Ó­«½Æ³£·|¨ú®øÃB¥~ªº«ü¥O¡C + +¦ý¬O¦³¨â­Ó¨Ò¥~¡G +(1) ¨S¦³§ïÅܤå¦rªº«ü¥O¤£ºâ¡]³o¥]¬A¤F´å¼Ð²¾°Êªº«ü¥OÁÙ¦³±²¶b«ü¥O¡^¡F +(2) ¦Û¦æÁä¤Jªº¦r¤¸¥H¤@¸s¤@¸s -- ¨C¸s³Ì¦h 20 ­Ó -- ¨Ó¶i¦æ³B²z¡C + ¡]³o¬O¬°¤F´î¤Ö±z¦b¨ú®ø¡u´¡¤J¤å¦r°Ê§@¡v©Ò¥²¶·Áä¤J C-x u ªº¦¸¼Æ¡^ + +>> ¥H C-k ±N³o¤@¦æ±þ±¼¡AµM«áÁä¤J C-x u «á¥¦·|¦A¦¸¥X²{¡C + +C-_ ¬O¥t¤@­Ó¨ú®ø«ü¥O¡F¥¦ªº§@¥Î´N©M C-x u ¤@¼Ë¡A¦ý¬O¦b¤@¦æ¤¤¥¦¤ñ¸û®e©ö +Áä¤J³\¦h¦¸¡CC-_ ªº¯ÊÂI¬O¦b¬Y¨ÇÁä½L¤¤¤£¤Ó²M·¡¦p¦óÁä¤J¥¦¡A³o¤]¬O¬°¤°»ò§Ú +­Ì¦P®É´£¨Ñ C-x u ªº­ì¦]¡C¦b¬Y¨Ç²×ºÝ¾÷¡A±z¥i¥H«ö¦í CONTROL ¦AÁä¤J / ¡A +¨ÓÁä¤J C-_¡C + +¤@­Ó¼Æ¦r°Ñ¼Æ¹ï C-_ or C-x u ¨Ó»¡¡A¬O§@¬°­«½Æªº¦¸¼Æ¡C + + +* Àɮס] FILE ¡^ +---------------- + +¬°¤F¨Ï±z½s¿èªº¤å¦r¥Ã¤[«O¦s¡A±z¥²¶·§â¥¦©ñ¨ì¤@­ÓÀɮפ¤¡C¤£µM¡A·í±zÂ÷¶} +Emacs «á¡A¥¦´N·|ÀH¤§®ø¥¢¡C¬°¤F§â±zªº¤å¦r©ñ¦bÀɮפ¤¡A±z¥²¶·¦b±zÁä¤J³o¨Ç +¤å¦r«e¡u§ä¡] find ¡^¡vÀɮסC¡]³o¤]ºÙ¤§¬°¡u«ô³X¡] visiting ¡^¡vÀɮס^ + +§ä¤@­ÓÀɮתí¥Ü±z¥i¥H¦b Emacs ¤¤¬Ý¨ìÀɮתº¤º®e¡C±q³\¦h¤è­±¨Ó¬Ý¡A¥¦´N¹³ +¬O±zª½±µ½s¿è¨º­ÓÀɮפ@¼Ë¡CµM¦Ó¡Aª½¨ì±z¡uÀx¦s¡v³o­ÓÀɮפ§«e¡A±z¨Ï¥Î +Emacs ½s¿è©Ò°µ¥Xªº§ïÅܨ䣷|«O¦s¤U¨Ó¡C³o´N¬O¬°¤°»ò·í±z¤£·Q­n®É¡A±z¥i¥H +Á×§K¯d¤U­×§ï¨ì¤@¥bªºÀɮצb¨t²Î¤¤¡C§Y¨Ï·í±zÀx¦s¤F¡AEmacs ¤]·|§â­ì¥»ªºÀÉ +®×¥H¤@­Ó¤£¦Pªº¦WºÙ«O¯d¤U¨Ó¡A­Y±zµy«áı±o±zªº§ïÅܬO¤@­Ó¿ù»~ªº¸Ü¡A´N¥i¥H +¨Ï¥Î¥¦¡C + +¦b¾aªñ¿Ã¹õªº¤U¤è¡A±z¥i¥H¬Ý¨ì¥Ñ¯}§é¸¹¶}©l»Pµ²§ôªº¤@¦æ -- ³q±`¬O¥H¡u--:-- +TUTORIAL.zh¡v©Î¨ä¥LÃþ¦üªºªF¦è§@¬°¶}©l¡C³o¬O¿Ã¹õªº¤@³¡¤À¡A³q±`¥Î¨Óªí¥Ü +±z¥¿¦b«ô³XªºÀɮסC²{¦b¡A±z¥¿¦b«ô³XªºÀÉ®×¥s°µ¡uTUTORIAL.zh¡v¡A¥¦¬O±z­Ó +¤Hªº«þ¨©¡C·í±z¥H Emacs §ä¥X¤@­ÓÀɮ׮ɡA¨º­ÓÀɮתº¦W¦r´N·|¥X²{¦b¨º­Ó¦a +¤è¡C + +Ãö©ó´M§äÀɮתº«ü¥O¤¤¡A¦³¤@­Ó«Ü¯S§Oªº¬O¡A±z¥²¶·»¡¥X³o­Ó±z·Q­nªºÀɮצWºÙ¡C +§Ú­Ì»¡³o­Ó«ü¥O¡u±q²×ºÝ¾÷¤¤Åª¶i¤F¤@­Ó°Ñ¼Æ¡v¡C¡]¦b³o­Ó¨Ò¤l¤¤¡A³o°Ñ¼Æ´N¬O +Àɮתº¦WºÙ¡^·í±zÁä¤J³o­Ó«ü¥O«á¡A + + C-x C-f §ä¤@­ÓÀÉ®× + +Emacs ·|­n±zÁä¤JÀɦW¡C±z©ÒÁä¤JªºÀɦW·|¥X²{¦b¿Ã¹õªº©³¦æ¡C¦b³Q¥Î¨Ó§@¬°³o +ºØ§Î¦¡ªº¿é¤J®É¡A©³¦æ³QºÙ¬°¤p½w½Ä°Ï¡] minibuffer ¡^¡C±z¥i¥H¨Ï¥Î¥¿±`ªº +Emacs ½s¿è«ü¥O¨Ó½s¿è³o­ÓÀɦW¡C + +·í±z¥¿¦bÁä¤JÀɦW®É¡]©Î¬O¥ô¦óªº¤p½w½Ä°Ï¿é¤J®É¡^¡A±z¥i¥H¥Î C-g ³o­Ó«ü¥O +¨Ó¨ú®ø¥¦¡C + +>> Áä¤J C-x C-f¡AµM«áÁä¤J C-g¡C³o·|¨ú®ø¤p½w½Ä°Ï¡A + ¨Ã¥B¤]·|¨ú®ø¨Ï¥Î³o­Ó¤p½w½Ä°Ïªº C-x C-f «ü¥O¡C + ¦]¦¹±z¨S¦³§ä¥ô¦óÀɮסC + +·í±z¤w¸gÁä¤J¤F³o­ÓÀɦW¡A½ÐÁä¤J ¨Óµ²§ô¥¦¡CµM«á C-x C-f «ü¥O´N +·|¶}©l¹B§@¡A¨Ã¥B§ä¨ì±z©Ò¿ï¾ÜªºÀɮסC¤p½w½Ä°Ï¦b·í C-x C-f «ü¥Oµ²§ô®É´N +·|®ø¥¢¡C + +¹L¤F¤@·|¨à¡AÀɮתº¤º®e´N·|¥X²{¦b¿Ã¹õ¡AµM«á±z´N¥i¥H½s¿è¥¦ªº¤º®e¡C·í±z·Q +­n±zªº§ïÅܥä[«O¦s®É¡AÁä¤J³o­Ó«ü¥O¡G + + C-x C-s Àx¦s³o­ÓÀÉ®× + +³o·|§â¦b Emacs ¤¤ªº¤å¦r½Æ»s¨ìÀɮפ¤¡C·í±z²Ä¤@¦¸°µ³o­Ó°Ê§@®É¡AEmacs ·| +±N­ì©lªºÀÉ®×­«·s©R¦W¦¨¤@­Ó·sªº¦W¦r¡A³o¼Ë¥¦¤~¤£·|®ø¥¢¡C·sªº¦W¦r³q±`·|¥[ +¤J¡u~¡v¨ì­ì©lÀɮתº¦W¦r«á­±¡C + +·íÀx¦sµ²§ô®É¡AEmacs ·|§â¼g¤JÀɮתº¦W¦r¦C¥X¨Ó¡C±zÀ³¸Ó¸g±`¦a¶i¦æÀx¦s¡A³o +¼Ë¤l¦pªG¨t²Î·í¾÷®É¡A±z´N¤£·|·l¥¢¤Ó¦h¤u§@¡C + +>> Áä¤J C-x C-s ¥HÀx¦s¥»§Ö³t«ü«nªº±zªº«þ¨©¡C + ³o·|§â¡uWrote ...TUTORIAL.zh¡v³o­Ó°T®§Åã¥Ü¦b¿Ã¹õªº¤U¤è¡C + +ª`·N¡G¦b¬Y¨Ç¨t²Î¤¤¡AÁä¤J C-x C-s ±N·|§â¿Ã¹õ­áµ²¡A±z±N¬Ý¤£¨ì±q Emacs ¨Ó +ªº¥ô¦ó¿é¥X¡C³oªí¥Ü§@·~¨t²Î¤@­ÓºÙ¬°¡u¬yµ{±±¨î¡vªº¡u¥\¯à¡v±N C-s «ü¥OÄd +ºI¦í¡A¨Ã¥B¤£Åý¥¦¶Ç¨ì Emacs¡C­n¨ú®ø¿Ã¹õªº­áµ²¡A½ÐÁä¤J C-q¡CµM«á¨ì Emacs +¨Ï¥Î¤â¥U¤¤¬Ý¬Ý¹ï©ó¡uº¥¶i¦¡·j´Mªº¦P®É¶i¤J¡] Spontaneous Entry to +Incremental Search ¡^¡v³o­Ó¥DÃD¡A¥H¨ú±o³B²z³o­Ó¡u¥\¯à¡vªº«ØÄ³¡C + +±z¥i¥H§ä¥X¤@­Ó¤w¸g¦s¦bªºÀɮסAµM«áÆ[¬Ý¥¦©Î½s¿è¥¦¡C±z¤]¥i¥H§ä¤@­ÓÁÙ¨S¦³ +¦s¦b¹LªºÀɮסC³o¬O¥H Emacs «Ø¥ß¤@­ÓÀɮתº¤èªk¡G§ä³o­ÓÀɮסA´N±q¹s¶}©l¡A +µM«á¶}©l´¡¤J¤å¦r¨ì³o­ÓÀɮפ¤¡C·í±z­n¨D¡uÀx¦s¡v³o­ÓÀɮסAEmacs ·|¯uªº«Ø +¥ß¤@­ÓÀɮסA¨Ã§â±z©Ò´¡¤Jªº¤å¦rÂ\¨ìÀɮפ¤¡C±q¨º®É­Ô¶}©l¡A±z´N¥i¥H·í¦Û¤v +¬O¦b½s¿è¤@­Ó¤w¸g¦s¦bªºÀɮפF¡C + + +* ½w½Ä°Ï¡] BUFFER ¡^ +-------------------- + +¦pªG±z¥H C-x C-f¡u§ä¡v²Ä¤G­ÓÀɮסA²Ä¤@­ÓÀɮפ´µM¦s¦b Emacs ¤º¡C­n¤Á´« +¦^¥¦¡A±z¥i¥H C-x C-f ¦A§ä¥¦¤@¦¸¡C¨Ì¦¹¤è¦¡¡A±z¥i¥H¦b Emacs ¤º¶}±Ò¤£¤ÖÀÉ +®×¡C + +>> ¥HÁä¤J C-x C-f foo ªº¤è¦¡«Ø¥ß¤@­Ó¦W¬°¡ufoo¡vªºÀɮסC + µM«á´¡¤J¤@¨Ç¤å¦r¡A½s¿è¥¦¡AµM«á¦A¥H C-x C-s Àx¦s¡ufoo¡v¡C + ³Ì«á¡AÁä¤J C-x C-f TUTORIAL.zh ¦^¨ì¥»§Ö³t«ü«n¡C + +Emacs Àx¦s¨C­ÓÀɮתº¤å¦r¦b¤@­ÓºÙ¬°¡u½w½Ä°Ï¡] buffer ¡^¡vªºª«¥ó¤¤¡C§ä¤@ +­ÓÀÉ®×·|¦b Emacs ¤º³¡«Ø¥ß¤@­Ó½w½Ä°Ï¡C·Q­n¬Ý¥Ø«e¦s¦b±zªº Emacs ªº¤u§@¤¤ +½w½Ä°Ï¦Cªí¡AÁä¤J + + C-x C-b ¦C¥X½w½Ä°Ï + +>> ²{¦b´N¸Õ¤@¤U C-x C-b + +¬Ý¬Ý¨C¤@­Ó½w½Ä°Ï¬O¦p¦ó©R¦Wªº¡A¥¦¤]¥i¯à¦P®É¾Ö¦³¤@­Ó¡uÀx¦s¨ä¤º®eªºÀɮסv +ªº¦WºÙ¡C±z¦b¤@­Ó Emacs µ¡®æ©Ò¨£¨ìªº¡u¥ô¦ó¡v¤å¦r³£¬O¬Y­Ó½w½Ä°Ïªº¤@³¡¥÷¡C + +>> Áä¤J C-x 1 ¥HÂ÷¶}½w½Ä¦Cªí + +·í±z¦³¼Æ­Ó½w½Ä°Ï®É¡A¦b¥ô¦ó®É­Ô¨ä¤¤¥u¦³¤@­Ó¬O¡u¥Ø«e§@¥Îªº¡v¡C¦Ó¨º­Ó´N¬O +±z¦b½s¿èªº½w½Ä°Ï¡C¦pªG±z·Q­n½s¿è¥t¤@­Ó½w½Ä°Ï¡A¨º»ò±z¥²¶·¡u¤Á´«¡v¨ì¥¦¡C +¦pªG±z·Q­n¤Á´«¨ì³s±µ¨ì¬Y­ÓÀɮתº½w½Ä°Ï¡A±z¥i¥H¥Î C-x C-f ¦A¦¸«ô³X¨º­Ó +ÀɮסC¦ý¬O¦³­Ó¤ñ¸û²³æªº¤è¦¡¡G¨Ï¥Î C-x b ¡F¦b³o­Ó«ü¥O¤¤¡A±z¥²¶·Áä¤J½w +½Ä°Ïªº¦WºÙ¡C + +>> Áä¤J C-x b foo ¥H¦^¨ì§t¦³Àɮסufoo¡vªº¤å¦rªº½w½Ä°Ï¡C + µM«á«Ø¤J C-x b TUTORIAL ¥H¦^¨ì¥»§Ö³t«ü«n¡C + +´N¤j³¡¥÷ªº±¡ªp¨Ó»¡¡A½w½Ä°Ïªº¦WºÙ»PÀɮתº¦WºÙ¬O¬Û¦Pªº¡]°£¥h¤FÀɦW¤¤ªº¥Ø +¿ý³¡¥÷¡^¡CµM¦Ó¨Ã¤£Á`¬O¦p¦¹¡C±z¥H C-x C-b ©Ò»s§@¥Xªº½w½Ä°Ï¦CªíÁ`¬O·|Åã +¥Üµ¹±z¨C¤@­Ó½w½Ä°Ïªº¦WºÙ¡C + +±z¦b¤@­Ó Emacs µ¡®æ¤¤©Ò¨£¨ìªº¡u¥ô¦ó¡v¤å¦rÁ`¬O¬Y­Ó½w½Ä°Ïªº¤@³¡¥÷¡C¦³¤@ +¨Ç½w½Ä°Ï¨Ã¨S¦³³s±µ¨ìÀɮסCÁ|¨Ò¨Ó»¡¡A©R¦W¬°¡u*Buffer List*¡vªº½w½Ä°Ï¨Ã +¨S¦³¥ô¦óÀɮסC¥¦¬O¥]§t¦³±z¥H C-x C-b «ü¥O©Ò»s§@¥X¨Óªº½w½Ä°Ï¦Cªíªº½w½Ä +°Ï¡C©R¦W¬°¡u*Messages*¡vªº½w½Ä°Ï¤]¨S¦³³s±µ¨ì¥ô¦óÀɮסF¥¦¦b±zªº Emacs +§@·~¶¥¬q¤¤¥]§t¥X²{¦b©³¦æªº°T®§¡C + +>> Áä¤J C-x b *Messages* ¨Ó¬Ý¬Ý°T®§ªº½w½Ä°Ï¡C + µM«áÁä¤J C-x b TUTORIAL ¦^¨ì¥»§Ö³t«ü«n¡C + +¦pªG±z¹ïÀɮפ¤ªº¤å¦r°µ¤F­×§ï¡AµM«á§ä¥t¤@ÀɮסA³o­Ó°Ê§@¨Ã¤£·|Àx¦s²Ä¤@­Ó +ÀɮסC¥¦ªº­×§ï¤´Â¦s¦b Emacs ¤¤¡A¤]´N¬O¦b¨º­ÓÀɮתº½w½Ä°Ï¤¤¡C¹ï©ó²Ä¤G +­ÓÀɮתº«Ø¥ß©Î½s¿è¨Ã¤£·|¼vÅT¨ì²Ä¤@­ÓÀɮתº½w½Ä°Ï¡C³o¼Ë¤l«D±`¦³¥Î¡A¦ý³o +­Ó±¡§Î¤]ªí©ú¤F±z»Ý­n¡u¤@­Ó¤è«Kªº¤èªk¡v¨ÓÀx¦s²Ä¤@­ÓÀɮתº½w½Ä°Ï¡C¥u¬O¬° +Àx¦s²Ä¤@­ÓÀÉ®×´N¥²¶·¥H C-x C-f ¤Á´«½w½Ä°Ï¡A¤~¯à¥H C-x C-s ±N¥¦Àx¦s¡AÁ` +¬O­ÓÅý¤H°Q¹½ªº¹Lµ{¡C¦]¦¹§Ú­Ì¦³ + + C-x s Àx¦s¤@¨Ç½w½Ä°Ï + +C-x s ·|¸ß°Ý±zÃö©ó±z¤w°µ¥X­×§ï¦ýÁÙ¨SÀx¦sªº¨C¤@­Ó½w½Ä°Ï¡C¥¦·|°Ý±z¡A¹ï©ó +¨C¤@­Ó³o¼Ëªº½w½Ä°Ï¡A¬O§_­nÀx¦s¡H + +>> ´¡¤J¤@¦æ¤å¦r¡AµM«áÁä¤J C-x s¡C + ¥¦À³¸Ó·|°Ý±z¬O§_­nÀx¦s¦W¬° TUTORIAL.zh ªº½w½Ä°Ï¡C + Áä¤J¡yy¡z¥H¦^µª­nÀx¦s¡C + + +* ÂX¥R«ü¥O¶°¡] EXTENDING THE COMMAND SET ¡^ +------------------------------------------- + +¥Ñ©ó Emacs ¾Ö¦³¤Ó¦h«ü¥O¡A§Y«K¨Ï¥Î¤W©Ò¦³ªº CONTROL ©M META ¦r¤¸¡A¤]¨S¿ì +ªk§¹¥þÂ\¤W¡CEmacs ¥H X¡]ÂX¥R¡yeXtend¡z¡^«ü¥O¨Ó¸Ñ¨M³o­Ó°ÝÃD¡CÂX¥R«ü¥O¦³ +¨âºØ«¬¦¡¡G + + C-x ¦r¤¸ÂX¥R¡C«á­±¸òµÛ¤@­Ó¦r¤¸¡C + M-x ¦³¦WºÙªº«ü¥OÂX¥R¡C«á­±¸òµÛ¤@­Óªøªº¦WºÙ¡C + +ÁÙ¦³¤@¨Ç«ü¥O³q±`¨Ó»¡¬O«Ü¦³¥Îªº¡A¦ý¬O¤ñ±z¤w¸g¾Ç¨ìªº«ü¥O¸û¤Ö¨Ï¥Î¡C±z¤w¸g +¬Ý¹L¨ä¤¤¨â­Ó¡GÀɮ׫ü¥O¤¤ªº C-x C-f ¥h´M§ä¡A¥H¤Î C-x C-s ¥hÀx¦s¡C¨ä¥Lªº +¨Ò¤l«h¦³µ²§ô Emacs ¶¥¬qªº«ü¥O -- ³o­Ó«ü¥O¬O C-x C-c¡C¡]¤£­n¾á¤ß±z·|¥¢ +¥h¤w¸g°µ¥Xªº§ïÅÜ¡AC-x C-c ¦b¥¦±þ±¼ Emacs ¤§«e·|´£¨ÑÀx¦s¨C¤@­ÓÅܰʪºÀÉ +®×ªº¾÷·|¡C¡^ + +C-z ¬O *¼È®É* Â÷¶} Emacs ªº«ü¥O -- ¦]¦¹±zµy«á¥i¥H¦^¨ì¦P¼Ëªº Emacs ¶¥¬q¡C + +¦b¬Y¨Ç¤¹³\¥¦ªº§@¥Îªº¨t²Î¤¤¡A C-z ·|¡u¼È°±¦í¡] suspends ¡^¡vEmacs¡A¤]´N +¬O»¡¡A¥¦·|¦^¨ì shell ¦ý¤£·|§â Emacs ·´±¼¡C¦b³Ì±`¥Îªº shell ¤¤¡A±z¥i¥H +¥Î¡yfg¡z©Î¡y%emacs¡z¨âºØ«ü¥O«ì´_ Emacs¡C + +¦b¨S¦³´£¨Ñ¼È°±¥\¯àªº¨t²Î¤¤¡AC-z ·|¦b Emacs ©³¤U«Ø¥ß¤@­Ó subshell ¥HÅý +±z¦³¾÷·|°õ¦æ¨ä¥Lªºµ{¦¡¡A¨Ã¥B¦bµy«á¦^¨ì Emacs¡A¥¦¨Ã¨S¦³¯uªºÂ÷¶} Emacs¡C +¦b³o­Ó¨Ò¤l¤¤¡Ashell «ü¥O¡yexit¡z¬O±qsubshell ¦^¨ì Emacs ªº³q±`¤è¦¡¡C + +¨Ï¥Î C-x C-c ªº®É¾÷¬O·í±z¥´ºâ­nµn¥X®É¡C¥¦¤]«D±`¾A¦X¥Î¨ÓÂ÷¶}³Q¨ä¥L¶l¥ó +³B²zµ{¦¡¡A¥H¤Î³\¦h¤£¦PªºÀ³¥Îµ{¦¡©Ò±Ò°Êªº Emacs¡CµM¦Ó¦b¤@¯ëªºª¬ªp¤U¡A¦p +ªG±z¤£¥´ºâµn¥X¡A³Ì¦n¬O§â Emacs ¼È°±¦Ó¤£¬OÂ÷¶}¥¦¡C + +¦³³\¦h C-x ªº«ü¥O¡C³o¸Ì¬O¤@¥÷±z¤w¸g¾Ç¹Lªº¦Cªí¡G + + C-x C-f §äÀɮסC + C-x C-s Àx¦sÀɮסC + C-x C-b ¦C¥X½w½Ä°Ï¡C + C-x C-c Â÷¶} Emacs¡C + C-x 1 °£¤F¤@­Ó¥~¡A§R¥h¨ä¥L©Ò¦³ªºµ¡®æ¡C + C-x u ¨ú®ø°Ê§@¡C + +¥HÂX¥R¨Ó©R¦Wªº«ü¥O³q±`¬O¤£¤Ó±`¨Ï¥Îªº«ü¥O¡A©Î¬O¥u¦b¯S©wªº¼Ò¦¡¤U¤~·|¨Ï¥Î +ªº«ü¥O¡C¤@­Ó¨Ò¤l¬O¨ú¥N¦r¦ê«ü¥O¡A¥¦·|¥þ°ì¦a±N¤@­Ó¦r¦ê¥H¥t¤@­Ó¨Ó¨ú¥N¡C·í +±zÁä¤J M-x ®É¡AEmacs ·|¦b¿Ã¹õªº©³ºÝ¸ß°Ý±z¡AµM«á±z¤]À³¸ÓÁä¤J³o­Ó«ü¥Oªº +¦WºÙ¡C¦b³o­Ó¨Ò¤l¤¤¬O¡yreplace-string¡z¥u­nÁä¤J¡yrepl s¡z¡AµM«á +Emacs ±N·|¸É»ô³o­Ó¦WºÙ¡C¥H ¨Óµ²§ô³o­Ó«ü¥O¦WºÙ¡C + +¨ú¥N¦r¦ê«ü¥O»Ý­n¨â­Ó°Ñ¼Æ -- ³Q¨ú¥Nªº¦r¦ê¥H¤Î¥Î¨Ó¨ú¥N¥¦ªº¦r¦ê¡C±z¥²¶·¥H +Newline ¦r¤¸¨Óµ²§ô¨C¤@­Ó°Ñ¼Æ¡C + +>> ±N´å¼Ð²¾¨ì¥»¦æªº¤U¨â¦æªÅ¥Õ¡AµM«áÁä¤J + M-x repl schangedaltered¡C + + ¡i¬°¤F»¡©úªº¥Øªº¡A©ó¤U«O¯d¤@¦æ­ì¤å¡C + Notice how this line has changed: you've replaced... ¡j + +½Ðª`·N³o¤@¦æ¬O«ç»ò§ïÅܪº¡G¦b´å¼Ðªº°_©l¦ì¸m¤§«á¡A±z¤w¸g±N c-h-a-n-g-e-d +³o­Ó¦r -- ¤£ºÞ¥¦¦b­þ¸Ì¥X²{ -- ¥H¡ualtered¡v³o­Ó¦r¨Ó¨ú¥N¤F¡C + + +* ¦Û°Ê¦sÀÉ¡] AUTO SAVE ¡^ +------------------------- + +·í±z¦b¤@­ÓÀɮפ¤°µ¤F­×§ï¡A¦ý¬OÁÙ¨S¦³±N¥¦­ÌÀx¦s°_¨Ó¡A¨º»ò¦pªG±zªº¹q¸£·í +¾÷¡A¥¦­Ì±N¦³¥i¯à¿ò¥¢¡C¬°¤FÁ×§K³oºØ±¡§Îµo¥Í¦b±zªº¨­¤W¡AEmacs ·|©w´Á¦a±N +±z¥¿¦b½s¿èªºÀÉ®×¼g¤J¡u¦Û°ÊÀx¦s¡vÀɮפ¤¡C¦Û°ÊÀx¦sÀɮצbÀɦWªº«e«á·|¦U¦³ +¤@­Ó # ²Å¸¹¡FÁ|¨Ò¨Ó»¡¡A¦pªG±zªºÀɮצW¬°¡uhello.c¡v¡A¨º»ò¥¦ªº¦Û°ÊÀx¦sÀÉ +®×ªºÀɦW´N¬O¡u#hello.c#¡v¡C·í±z¥H¥­±`ªº¤è¦¡Àx¦sÀɮ׮ɡAEmacs ´N·|§â¥¦ +ªº¦Û°ÊÀx¦sÀɧR°£¡C + +¦pªG·í¾÷¡A±z¥i¥H¸g¥Ñ¥¿±`¦a´M§äÀɮסA¡]«üªº¬O±z¦b½s¿èªºÀɮצӤ£¬O¦Û°ÊÀx +¦sÀÉ¡^µM«áÁä¤J M-x recover file ¨Ó¦^´_±zªº¦Û°ÊÀx¦sÀÉ¡C·í¥¦­n¨D +½T»{®É¡AÁä¤J yes ¥HÄ~Äò¨Ã¦^´_¦Û°ÊÀx¦sªº¸ê®Æ¡C + + +* ¦^À³°Ï¡] ECHO AREA ¡^ +----------------------- + +¦pªG Emacs ¨£¨ì±z«ÜºC¦aÁä¤J¦h¦r¤¸«ü¥O¡A¥¦·|±N¥¦­ÌÅã¥Ü¦b¦ì©óµ¡®æ¤U¤è¡A +ºÙ¬°¡u¦^À³°Ï¡vªº°Ï°ìµ¹±z°Ñ¾\¡C¦^À³°Ï¦ì¦bµ¡®æªº³Ì«á¤@¦æ¡C + + +* ª¬ºA¦æ¡] MODE LINE ¡^ +----------------------- + +¦ì¦b¦^À³°Ïªº¥¿¤W­±¬OºÙ¬°¡uª¬ºA¦æ¡vªº¤@¦æ¡Cª¬ºA¦æÅã¥Ü¥X¤@¨Ç¸ê°T¡A¦p¡G + +--:** TUTORIAL.zh (Fundamental)--L670--58%---------------- + +¥»¦æ´£¨Ñ¤@¨ÇÃö©ó¡uEmacs ªºª¬ºA¡v¥H¤Î¡u±z¥¿¦b½s¿èªº¤å¦r¡vªº¦³¥Î¸ê°T¡C + +±z¤w¸gª¾¹DÀɦWªº·N¸q¬O¤°»ò¤F -- ´N¬O±z§äªºÀɮסC-NN%-- «ü¥X¥Ø«e±z¦b¤å +¦rÀɤ¤ªº¦ì¸m¡F¥¦ªº·N«ä¬O»¡¡G¦³ NN ¦Ê¤À¤ñªº¤å¦r¦ì¦bµ¡®æªº¤W­±¡C¦pªGÀÉ®× +ªº³»ºÝ´N¦ì¦bµ¡®æ¤¤¡A¨º»ò¥¦´N·|Åã¥Ü --Top-- ¦Ó¤£¬O --00%--¡C¦pªGÀɮתº +©³³¡´N¦ì¦bµ¡®æ¤¤¡A¨º»ò¥¦¬OÅã¥Ü --Bot--¡C¦pªG±z¥¿¦b¬Ýªº¤å¦rÀɫܤp¡A¦bµ¡ +®æ¤¤´N¨¬¥H¬Ý¨ì¥þ³¡ªº¤º®e¡A¨º»òª¬ºA¦æ´N·|Åã¥Ü --All--¡C + +L ©M¼Æ¦r¥H¥t¤@ºØ¤è¦¡¨Óªí¥Ü¥X¦ì¸m¡G¥¦­Ìµ¹¥X¤F¥Ø«e©Ò¦bªº¦æ¼Æ¡] Line ¡^¡C + +¦b¾aªñ«e­±ªº¬P¸¹ªí¥Ü±z¤w¸g¹ï³o¨Ç¤å¦r°µ¤F§ïÅÜ¡C¦b±z­è«ô³X©ÎÀx¦s¤@­ÓÀÉ®× +¤§«á¡Aª¬ºA¦æªº¨º­Ó³¡¤À·|¨S¦³¬P¸¹¡A¥u¦³¯}§é¸¹¡C + +ª¬ºA¦æ¤¤¦ì©ó¤p¬A©·¸Ì­±ªº³¡¤À¡A¬O¥Î¨Ó§i¶D±z¥¿¦b¨Ï¥Î¤°»ò½s¿è¼Ò¦¡¡C¹w³]ªº +¼Ò¦¡¬O Fundamental¡A¤]´N¬O±z²{¦b¨Ï¥Îªº¡C¥¦¬O¡u¥D¼Ò¦¡¡vªº¤@­Ó¨Ò¤l¡C + +Emacs ¦³³\¦h¤£¦Pªº¥D¼Ò¦¡¡C¥¦­Ì¤§¤¤¦³¤@¨Ç¬O¥Î¨Ó½s¿è¤£¦Pªº»y¨¥¥H¤Î¡þ©Î¤£ +¦PºØÃþªº¤å¦r¡A¹³¬O Lisp ¼Ò¦¡¡B Text ¼Ò¦¡µ¥µ¥¡C¦b¥ô¦óªº®É¶¡¥u¦³¤@­Ó¥D¼Ò +¦¡¥i¥H§@¥Î¡A¨Ã¥B¥¦ªº¦WºÙÁ`¥i¥H¦bª¬ºA¦æ¤¤³Q§ä¨ì¡A´N¦b²{¦bªº +¡uFundamental¡v¤¤ªº¦ì¸m¡C + +¨C¤@­Ó¥D¼Ò¦¡³£¨Ï±o¤@¨Ç«ü¥Oªº¦æ¬°ªí²{±o¤£¤Ó¤@¼Ë¡CÁ|¨Ò¨Ó»¡¡A¦b¤@­Óµ{¦¡¤¤ +¦³¤@¨Ç«ü¥O¥Î¨Ó»s§@¥Xµù¸Ñ¡A¦Ó¥Ñ©ó¨C¤@ºØµ{¦¡»y¨¥¹ï©ó¤@­Óµù¸ÑÀ³¸Óªø±o¹³¤° +»ò¡A³£¦³µÛ¤£¦Pªº·Qªk¡A¦]¦¹¨C¤@­Ó¥D¼Ò¦¡³£¥²¶·¥H¤£¦Pªº¤è¦¡¨Ó´¡¤Jµù¸Ñ¡C¨C +¤@­Ó¥D¼Ò¦¡¬O¤@­Ó©µ¦ù«ü¥Oªº¦WºÙ¡A¨Ï±o±z¥i¥H¥Î¨Ó¤Á´«¦Ü¨º­Ó¼Ò¦¡¡CÁ|¨Ò¨Ó»¡¡A +M-x fundamental-mode ´N¬O¤Á´«¨ì Fundamental ¼Ò¦¡ªº¤@­Ó«ü¥O¡C + +¦pªG±z·Q­n½s¿è¤HÃþ»y¨¥ªº¤å¦rÀÉ®× -- ¹³¬O²{¦bªº³o¤@­Ó¡A±zÀ³¸Ó¨Ï¥Î Text +¼Ò¦¡¡C + +>> Áä¤J M-x text mode¡C + +¤£­n¾á¤ß¡A¨S¦³¥ô¦ó¤@­Ó±z¤w¸g¾Ç¹Lªº Emacs «ü¥O¡A·|³Q§ïÅܦ¨¥ô¦ó«D±`¤£¦P +ªº§Î¦¡¡C¦ý¬O±z¥i¥Hµo²{¨ì M-f ©M M-b ²{¦b§âºJ¸¹¡]'¡^µø¬°¦rªº¤@³¡¤À¡C¥ý +«e¡A¦b Fundamental ¼Ò¦¡¤¤¡AM-f ©M M-b ±NºJ¸¹µø¬°¦rªº¤À¹j²Å¸¹¡C + +¥D¼Ò¦¡³q±`·|¹³¤W­z¨º­Ó¨Ò¤l¤@¼Ë¡A°µ¥X¤@¨Çºë¥©ªº§ïÅÜ¡G¤j³¡¤Àªº«ü¥O¦b¨C¤@ +­Ó¥D¼Ò¦¡¤¤¡u°µ¦P¼Ëªº¨Æ¡v¡A¦ý¬O¥¦­Ì¥H¤@ÂIÂI¤£¦Pªº¤è¦¡¨Ó¤u§@¡C¡i¦AÁ|­Ó¨Ò +¤l¡A±µÄò¤W­±©Ò¶}ªºÀY¡A¥Hµ{¦¡»y¨¥ªºµù¸Ñ¨Ó»¡¡C¦P¼Ë¤@­Ó´¡¤Jµù¸Ñªº°Ê§@¡A¦] +¬°±z¨Ï¥Îªºµ{¦¡»y¨¥¡þ¥D¼Ò¦¡ªº¤£¦P¦Ó¤£¦P¡C­Y±z¨Ï¥Î C »y¨¥¡AEmacs ´¡¤J +¡y/* ¤¶©ó¤¤¶¡ªº¬°µù¸Ñ°Ï¶ô */¡z¡F­Y±z¨Ï¥Îªº¬O Fortran »y¨¥¡AEmacs ´¡¤J +¡yc ¥H¦r¤¸ c ¬°­ºªº¬°µù¸Ñ¦æ¡z¡F­Y±z¨Ï¥Îªº¬O Basic »y¨¥¡AEmacs «h´¡¤J¡y' +ºJ¸¹¥H«áªº¬°µù¸Ñ¤å¦r¡z¡C½s¿è¾¹ªº¼u©Ê¦p¦¹¡A¹ê¦b¨S¦³¥²­n¬°¤F¤£¦Pªº»y¨¥¡B +¥Øªº©Î¥~Æ[¡A³]­p¯S®í¤Æªº½s¿è¾¹¡C¡u¨D¤j¦P¡A¦s¤p²§¡v¦b³o¸Ì¤]¬O¦¨¥ßªº¡C¡j + +­nÂsÄý±z²{¦b©Ò³Bªº¥D¼Ò¦¡ªº¤å¥ó¡AÁä¤J C-h m¡C + +>> ¨Ï¥Î C-u C-v ¤@©Î¼Æ¦¸¡A±N¥»¦æ±a¨ì¾aªñ¿Ã¹õªº¤W¤è¡C +>> Áä¤J C-h m¡A¬Ý¬Ý Text ¼Ò¦¡»P Fundamental ¼Ò¦¡¬O­þ¸Ì¤£¦P¡C +>> Áä¤J C-x 1 ±N¤å¥ó±q¿Ã¹õ²¾°£±¼¡C + +¥D¼Ò¦¡¤§©Ò¥HºÙ¬°¡u¥D­n¡] major ¡^¡vªº­ì¦]¬O¦]¬°¥¦­Ì¤]¦³¦¸¼Ò¦¡¡] minor +mode ¡^¡C¦¸­nªº¼Ò¦¡¨Ã¤£¬O¥D¼Ò¦¡ªº¨ä¥L¿ï¾Ü¡A¦Ó¥u¬O¦¸­nªº§ó§ï¡C¨C¤@­Ó¦¸ +¼Ò¦¡¥i¥H³Q¥¦¥»¨­±Ò¥Î©Î°±¤î¡A©M©Ò¦³¨ä¥Lªº¦¸¼Ò¦¡µLÃö¡A¨Ã¥B¤]©M±zªº¥D¼Ò¦¡ +µLÃö¡C©Ò¥H±z¥i¥H¤£¨Ï¥Î¦¸¼Ò¦¡¡A©Î¤@­Ó¡A©Î¥ô¦ó¼Æ¶qªº¦¸¼Ò¦¡ªº²Õ¦X¡C + +¦³¤@­Ó¥s°µ Auto Fill ¼Ò¦¡ªº¦¸¼Ò¦¡«D±`¦³¥Î¡A¯S§O¬O¦b½s¿è¤HÃþ»y¨¥ªº¤å¦r +®É¡C·í³o­Ó¼Ò¦¡±Ò¥Î®É¡A Emacs ¦b·í±z´¡¤J¤å¦r¨Ã¥B¨Ï¤@¦æ¤Ó¼e®É¡A·|±N¨º¤@ +¦æ¡A¦b¦r»P¦r¤§¶¡¦Û°Ê¦a¤À¹j¶}¡C + +±z¥i¥H M-x auto fill mode ¨Ó±N Auto Fill ¼Ò¦¡±Ò¥Î¡C·í³o­Ó¼Ò¦¡ +±Ò¥Î®É¡A±z¥i¥H¨Ï¥Î M-x auto fill mode ¨Ó±N¥¦¨ú®ø¡C·í³o­Ó¼Ò¦¡¤£ +¥Î®É¡A«h³o­Ó«ü¥O·|±N¥¦±Ò°Ê¡A¦Ó·í³o­Ó¼Ò¦¡±Ò¥Î®É¡A³o­Ó«ü¥O·|±N¥¦Ãö³¬¡C§Ú +­Ì»¡³o­Ó«ü¥O¥Î¨Ó¡u¤Á´«¡] toggle ¡^¡v¼Ò¦¡¡C + +>> ²{¦bÁä¤J M-x auto fill mode¡CµM«á¤@¦A¦a´¡¤J¦r¦ê + ¡u asdf ¡v¡Aª½¨ì±z¬Ý¨ì¥¦¤À¦¨¨â¦æ¡C±z¥²¶·¦b¥¦­Ì¤§¶¡Â\¤WªÅ¥Õ¡A + ¦]¬° Auto Fill ¥u¦bªÅ¥Õ³BÂ_¦æ¡C + +Ãä¬É³q±`³Q³]©w¬° 70 ­Ó¦r¤¸¡A¦ý¬O±z¥i¥H¥Î C-x f «ü¥O¨Ó§ïÅÜ¥¦¡C±zÀ³¸Ó¥H +¤@­Ó¼Æ¦r°Ñ¼Æªº¤è¦¡¨Óµ¹©w±z©Ò§Æ±æªºÃä¬É³]©w¡C + +>> Áä¤J C-x f ¨Ãªþ¤W¤Þ¼Æ 20¡G¡yC-u 2 0 C-x f¡z¡C + µM«áÁä¤J¤@¨Ç¤å¦r¡A¬Ý¬Ý Emacs ¥H 20 ­Ó¦r¤¸¡A + ¦b¦æ»P¦æ¤§¶¡¶i¦æ fill °Ê§@¡CµM«á¦A¥Î¤@¦¸ C-x f ±NÃä¬É³]¦^ 70¡C + +¦pªG±z¦b¤@­Ó¬q¸¨ªº¤¤¶¡°µ¥X§ïÅÜ¡AAuto Fill ¼Ò¦¡¨Ã¤£·|¬°±z­«·s¶i¦æ fill +ªº°Ê§@¡] re-fill ¡^¡C­n re-fill ³o­Ó¬q¸¨¡AÁä¤J M-q (META-q)¡A¦Ó´å¼Ð¥² +¶·³B¦b¨ä¤¤¡C + +>> ²¾°Ê´å¼Ð¨ì«e¤@¬q¤¤¡AµM«áÁä¤J M-q¡C + + +* ·j´M¡] SEARCHING ¡^ +--------------------- + +Emacs ¥i¥H·j´M¦r¦ê¡]¦r¦ê¥i¥H¬O¤@¸s³sÄòªº¦r¤¸©Î¦r¡^¡i´N¤¤¤å¨Ó»¡¡A¦r¤¸©M +¦r°ò¥»¤W·N¸q¬Û¦P¡F¦¹³B©Ò«üªº¡y¦r¡z¡A¬O­^¤å¤¤¨S¦³³QªÅ¥Õ¹j¶}ªº¦r¤¸¶° +¦X¡C¡j¡A©¹«e©Î©¹«á·j´M³£¥i¥H¡C·j´M¤@­Ó¦r¦ê¬O¤@ºØ´å¼Ð²¾°Ê«ü¥O¡A¥¦·|±N´å +¼Ð²¾°Ê¨ì¦r¦ê¥X²{ªº¤U¤@­Ó¦a¤è¡C + +Emacs ·j´M«ü¥O»P¤j³¡¤À½s¿è¾¹ªº·j´M«ü¥O¤£¦Pªº¦a¤è¦b©ó¡A¥¦¬O¡uº¥¶iªº +¡] incremental ¡^¡v¡C³oªí¥Ü·j´Mµo¥Í¦b±zÁä¤J·Q­n·j´Mªº¤å¦r¦ê«á¡C + +­n¶}©l·j´Mªº«ü¥O¬O¡GC-s ©¹«e·j´M¡AC-r ©¹«á·j´M¡C¦ý¥ýµ¥¤@¤U¡I²{¦b¥ý¤£­n +¸Õ¡C + +·í±zÁä¤J C-s ®É¡A·|µo²{¨ì¦³¤@­Ó¦r¦ê¡uI-search¡v¥X²{¦b¦^À³°Ï¤¤§@¬°´£¥Ü¡C +¥¦§i¶D±z Emacs ²{¦b¥¿³B©óºÙ¬°¡uº¥¶i¦¡·j´M¡vªºª¬ºA¤¤¡Aµ¥«Ý±zÁä¤J±z·Q­n +·j´Mªº¦r¦ê¡C ·|µ²§ô¤@­Ó·j´M¡C + +>> ²{¦bÁä¤J C-s ¶}©l¤@­Ó·j´M¡CºC¤@ÂI¡A¤@¦¸Áä¤J¤@­Ó¦r¤¸¡A + Áä¤J¡ycursor¡z³o­Ó¦r¡A¨CÁä¤J¤@­Ó¦r¤¸®É¡Aµy·L°±¤@¤U¡A + ª`·N¬Ý¬Ý´å¼Ðµo¥Í¤F¤°»ò¨Æ¡C²{¦b±z¤w´¿¸g·j´M¹L¡ucursor¡v³o­Ó¦r¤F¡C +>> ¦A¦¸Áä¤J C-s ¨Ó·j´M¡ucursor¡vªº¤U¤@­Ó¥X²{¦ì¸m¡C +>> ²{¦bÁä¤J ¥|¦¸¡A¬Ý¬Ý´å¼Ð¬O¦p¦ó²¾°Êªº¡C +>> Áä¤J µ²§ô·j´M¡C + +±z¦³¨S¦³¬Ý¨ìµo¥Í¤F¤°»ò¡H¦b¤@­Óº¥¶i¦¡·j´M¤¤¡AEmacs ¸ÕµÛ­n¨«¨ì±zÁä¤Jªº¦r +¦êªº¤U¤@­Ó¥X²{¦ì¸m¡C­n²¾°Ê¨ì´å¼Ð©Ò¦bªº¤U¤@­Ó¥X²{¦ì¸m¡A¥u­n¦AÁä¤J C-s +¤@¦¸¡C¦pªG¨Ã¨S¦³³o¼Ëªº¥X²{¦ì¸m¦s¦b¡AEmacs ·|¹Í¤@Án¡A¨Ã§i¶D±z¥Ø«eªº·j´M +¡u¥¢±Ñ¡v¡C¥t¥~ C-g ¤]¥i¥H¥Î¨Óµ²§ô·j´M¡C + +ª`·N¡G¦b¬Y¨Ç¨t²Î¤¤¡AÁä¤J C-s ±N·|§â¿Ã¹õ­áµ²¡A±z±N¬Ý¤£¨ì±q Emacs ¨Óªº¥ô +¦ó¿é¥X¡C³oªí¥Ü§@·~¨t²Î¤@­ÓºÙ¬°¡u¬yµ{±±¨î¡vªº¡u¥\¯à¡v±N C-s «ü¥OÄdºI¦í¡A +¨Ã¥B¤£Åý¥¦¶Ç¨ì Emacs¡C­n¨ú®ø¿Ã¹õªº­áµ²¡A½ÐÁä¤J C-q¡CµM«á¨ì Emacs ¨Ï¥Î +¤â¥U¤¤¬Ý¬Ý¹ï©ó¡uº¥¶i¦¡·j´Mªº¦P®É¶i¤J¡] Spontaneous Entry to +Incremental Search ¡^¡v³o­Ó¥DÃD¡A¥H¨ú±o³B²z³o­Ó¡u¥\¯à¡vªº«ØÄ³¡C + +¦pªG±z¦b¤@­Óº¥¶i¦¡·j´Mªº¤¤¶¡¡A¨Ã¥BÁä¤J ¡A±z¥i¥Hµo²{¦b·j´M¦r¦ê +¤¤ªº³Ì«á¤@­Ó¦r¤¸³Q®ø°£¤F¡A¨Ã¥B·j´M·|¦^¨ì³o­Ó·j´Mªº³Ì«á¤@­Ó¦a¤è¡CÁ|¨Ò¨Ó +»¡¡A°²³]±z¤w¸gÁä¤J¤F¡yc¡z¡A¥Î¨Ó´M§ä¡uc¡vªº²Ä¤@¦¸¥X²{¡C²{¦b¦pªG±zÁä¤J +¡yu¡z¡A´å¼Ð·|²¾°Ê¨ì¡ucu¡vªº²Ä¤@¦¸¥X²{¦ì¸m¡C²{¦bÁä¤J ¡A³o·|±N +¡uu¡v±q·j´M¦r¦ê¤¤®ø°£¡A¨Ã¥B´å¼Ð·|²¾¦^¨ì¡uc¡vªº²Ä¤@¦¸¥X²{¦ì¸m¡C + +¦pªG±z¦b¤@­Ó·j´Mªº¤¤¶¡¡A¨Ã¥BÁä¤J¤@­Ó CONTROL ©Î META ¦r¤¸ªº¸Ü¡A¡]¦ý¦³ +¤@¨Ç¨Ò¥~ -- ¹ï·j´M¦Ó¨¥¯S§Oªº¦r¤¸¡A¹³¬O C-s ©M C-r ¡^¡A·j´M·|³Qµ²§ô¡C + +C-s ·|¶}©l¤@­Ó·j´M¡A¥¦·|´M§ä·j´M¦r¦ê¦b¥Ø«e´å¼Ð¦ì¸m¡u¤§«á¡v¡Aªº¥ô¦ó¥X²{ +¦ì¸m¡C¦pªG±z·Q­n¦b¥ý«e¤å¦r¤¤·j´M¡AÁä¤J C-r §@¬°´À¥N¡C°£¤F·j´Mªº¤è¦V¬Û +¤Ï¤§¥~¡A§Ú­Ì©Ò»¡ªº¦³Ãö C-s ªº©Ò¦³¨Æ±¡¡A¦P¼Ë¦a¥i¥HÀ³¥Î¨ì C-r ¤W¡C + + +* ¦h­«µ¡®æ¡] MULTIPLE WINDOWS ¡^ +-------------------------------- + +Emacs ³\¦h¦n¥\¯àªº¨ä¤¤¤§¤@¬O¡A±z¥i¥H¦b¿Ã¹õ¤¤¦P®É®i¥Ü¶W¹L¤@­Óµ¡®æ¡C + +>> ²¾°Ê´å¼Ð¨ì³o¤@¦æ¨Ã¥BÁä¤J C-u 0 C-l¡C + +>> ²{¦bÁä¤J C-x 2¡A¥¦·|±N¿Ã¹õ¥­¤À¦¨¨â­Óµ¡®æ¡C + ³o¨â­Óµ¡®æ³£Åã¥ÜµÛ³o­Ó§Ö³t«ü«n¡C´å¼Ð«h°±¯d¦b¤W¤èªºµ¡®æ¡C + +>> Áä¤J C-M-v ¥H±²°Ê¤U¤èªºµ¡®æ¡C + ¡]¦pªG±z¨Ã¨S¦³¤@­Ó¯uªº META Áä¡A«hÁä¤J ESC C-v ¥ç¥i¡C¡^ + +>> Áä¤J C-x o¡]¡yo¡z«üªº¬O¨ä¥L¡yother¡zªº·N«ä¡^¡A + ±N´å¼Ð²¾°Ê¨ì¤U¤èªºµ¡®æ¡C + +>> ¦b¤U¤èªºµ¡®æ¤¤¡A¨Ï¥Î C-v ©M M-v ¨Ó±²°Ê¥¦¡C + Ä~Äòºû«ù¦b¤W¤èªºµ¡®æ¤¤¾\Ū³o¨Ç«ü¤Þ¡C + +>> ¦A¤@¦¸Áä¤J C-x o ±N´å¼Ð²¾¦^¨ì¤W¤èªºµ¡®æ¡C + ´å¼Ð·|¦^¨ì¥¦¦b¤W¤èµ¡®æ¤¤¡A­ì¥»©Ò¦bªº¦ì¸m¡C + +±z¥i¥H«ùÄò¨Ï¥Î C-x o ¦bµ¡®æ¤§¶¡¤Á´«¡C¨C¤@­Óµ¡®æ¦³¥¦¦Û¤vªº´å¼Ð¦ì¸m¡A¦ý +¬O¥u¦³¤@­Óµ¡®æ·|¯uªºÅã¥Ü¥X´å¼Ð¡C©Ò¦³³q±`ªº½s¿è«ü¥O¥u·|À³¥Î¨ì¨º­Ó´å¼Ð©Ò +¦bªºµ¡®æ¡C§Ú­ÌºÙ³o­Ó¬°¡u³Q¿ï¾Üªºµ¡®æ¡v¡C + +«ü¥O C-M-v ¦b·í±z©ó¤@­Óµ¡®æ¤¤½s¿è¤å¦r¡A¨Ã¨Ï¥Î¨ä¥Lªºµ¡®æ§@¬°°Ñ¦Ò¤§¥Î®É¡A +¬O«D±`¦³¥Îªº¡C±z¥i¥H±N´å¼Ð¤@ª½«O«ù¦b±z¥¿¦b½s¿èªºµ¡®æ¤¤¡A¨Ã¥H C-M-v «ü +¥O¦b¨ä¥Lªºµ¡®æ´`§Ç¦a«e¶i¡C¡iÅçÃÒ¤u§@¯S§O¾A¦X¥H³oºØ¤è¦¡¨Ó¶i¦æ¡A¦p GNU +¤¤Ä¶¤p²Õ¡G§ä¤@­Ó­ì©l­^¤åÀɮסF¦A§ä¥¦Â½Ä¶¦nªº¤¤¤åÀɮסA½s¿è³o­Ó¡u³Q¿ï¾Ü +ªºµ¡®æ¡v¡A¥H C-M-v «ü¥O¸ò¤WÅçÃÒ¤¤ªº¬q¸¨¡K¡K¡C¡j + +C-M-v ¬O CONTROL-META ¦r¤¸ªº¤@­Ó¨Ò¤l¡C¦pªG±z¦³¤@­Ó¯uªº META Áä¡A±z¥i¥H +¦P®É«ö¦í CONTROL ©M META ¦AÁä¤J v ¨ÓÁä¤J C-M-v¡CCONTROL ©Î META ¡u½Ö¥ý +³Q«ö¦í¡v¨Ã¨S¦³¼vÅT¡A¦]¬°³o¨â­ÓÁä³£¬O¥Î¨Ó­×¹¢±z©ÒÁä¤Jªº¦r¤¸¡C + +¦pªG±z¨Ã¨S¦³¤@­Ó¯uªº META Áä¡A±z¥i¥H¨Ï¥Î ESC ¨Ó§@¬°´À¥N¡A³o¼Ë¤l¶¶§Ç´N +¦³Ãö«Y¤F¡G±z¥²¶·Áä¤J ESC ¡A¸òµÛÁä¤J CONTROL-v¡ACONTROL-ESC v ¨Ã¤£·|§@ +¥Î¡C³o¬O¦]¬° ESC ¬O¤@­Ó¨ã¦³¥»¨­§@¥Îªº¦r¤¸¡A¦Ó¤£¬O¤@­Ó­×¹¢Áä¡C + +>> ¡]¦b¤W¤èµ¡®æ¡^Áä¤J C-x 1 ¥H°£¥h¤U¤èµ¡®æ¡C + +¡]¦pªG±z¤w¸g¦b©³ºÝªºµ¡®æÁä¤J C-x 1¡A¨º»ò±N·|§â¤W­±ªºµ¡®æÁôÂæí¡C±N³o­Ó +«ü¥O·Q¹³¦¨¡u¥u«O¯d¤@­Óµ¡®æ -- §Ú¥¿¦b½s¿èªº³o­Ó¡C¡v¡^ + +±z¤£»Ý­n¦b¨â­Ó¤£¦Pªºµ¡®æ¤¤Åã¥Ü¬Û¦Pªº½w½Ä°Ï¡C¦pªG±z¨Ï¥Î C-x C-f ¦b¤@­Ó +µ¡®æ¤¤§äÀɮסA¥t¤@­Óµ¡®æ¨Ã¤£¦]¦Ó§ïÅÜ¡C±z¥i¥H¦b¿W¥ßªº¥ô¤@­Óµ¡®æ¤¤§ä¡e¥¦ +¦Û¤vªº¡f¤@­ÓÀɮסC + +³o¸Ì¦³¥t¥~¤@­Ó¤è¦¡¥i¥H¥Î¨Ó¡A¨Ï¥Î¨â­Óµ¡®æÅã¥Ü¨â­Ó¤£¦PªºªF¦è¡G + +>> Áä¤J C-x 4 C-f¡A«á­±¸òµÛ±zªº¨ä¤¤¤@­ÓÀɮתº¦WºÙ¡C + ¥H §@¬°µ²§ô¡C¬Ý¬Ý«ü©wªºÀÉ®×¥X²{¦b¤U¤èªºµ¡®æ¡C + ´å¼Ð¤]¶]¨ì¨º¸Ì¡C + +>> Áä¤J C-x o ¥H¦^¨ì¤W¤èªºµ¡®æ¡AµM«á¥H C-x 1 §R°£±¼¤U¤èµ¡®æ¡C + + +* »¼°j½s¿è¶¥¼h¡] RECURSIVE EDITING LEVELS ¡^ +-------------------------------------------- + +¦³®É­Ô±z·|¶i¤J©Ò¿×ªº¡u»¼°j½s¿è¶¥¼h¡v¡C¥¦¬O¥Ñ¦ì¦bª¬ºA¦æªº¤è¬A©·©Ò«ü©ú¡A +¨Ã¥B¥]§t¦í¥H¤p¬A©·¨Ó«ü©úªº¼Ò¦¡¦WºÙ¡CÁ|¨Ò¨Ó»¡¡A±z¥i¯à·|¬Ý¨ì +[(Fundamental)]¡A¦Ó¤£¬O (Fundamental)¡C + +­nÂ÷¶}»¼°j½s¿è¶¥¼h¡A½ÐÁä¤J ESC ESC ESC¡C³o¬O­Ó¥þ¥\¯àªº¡uÂ÷¶}¡v«ü¥O¡C±z +¤]¥i¥H¨Ï¥Î¥¦¨Ó°£¥h¦h¾lªºµ¡®æ¡A¨Ã¥BÂ÷¶}¤p½w½Ä°Ï¡C + +>> Áä¤J M-x ¥H¶i¤J¤p½w½Ä°Ï¡FµM«áÁä¤J ESC ESC ESC Â÷¶}¡C + +±zµLªk¨Ï¥Î C-g ¨ÓÂ÷¶}»¼°j½s¿è¶¥¼h¡C³o¬O¦]¬° C-g ¬O¥Î¨Ó¨ú®ø«ü¥O¥H¤Î¡u¦ì +©ó¡v»¼°j½s¿è¶¥¼h¤¤ªº¡u¤Þ¼Æ¡] arguments ¡^¡v¤§¬G¡C + + +* ¨ú±o§ó¦hªºÀ°§U¡] GETTING MORE HELP ¡^ +--------------------------------------- + +¦b¥»§Ö³t«ü«n¤¤¡A§Ú­Ì¸ÕµÛ¶È´£¨Ñ­è­è¦nªº¸ê°TÅý±z¥i¥H¶}©l¨Ï¥Î Emacs¡C¦b +Emacs ¤¤¦³¤Ó¦h¥i¨ú±oªº¸ê°T¡A·Q­n¦b³o¸Ì¥þ³¡¸ÑÄÀ¬O¤£¥i¯àªº¡CµM¦Ó¡A±z¤]³\ +·|·Q­n¾Ç²ß§ó¦h Emacs ¬ÛÃöªº¸ê°T¡A¦]¬°¥¦¦³³\¦h¨ä¥L¦³¥Îªº¥\¯à¡CEmacs ´£ +¨Ñ¤F¡u¾\Ū¦³Ãö Emacs «ü¥O¡vªº«ü¥O¡C³o¨Ç¡uhelp¡v«ü¥O³£¥H CONTROL-h ³o­Ó +¦r¤¸§@¬°¶}ÀY¡AºÙ§@¬°¡uHelp ¦r¤¸¡v¡C + +­n¨Ï¥Î Help ¥\¯à¡AÁä¤J C-h ¦r¤¸¡AµM«á¦AÁä¤J¤@­Ó»¡©ú±z©Ò»Ý­nªºÀ°§Uªº¦r +¤¸¡C¦pªG±z¯uªº¤£ª¾¹D­n°Ý¤°»ò¡A¨º»ò½ÐÁä¤J¡yC-h ?¡z¡A¦¹®É Emacs ±N·|§i¶D +±z¥¦¯à°÷´£¨ÑªºÀ°§U¡C¦pªG±z¤w¸gÁä¤J C-h¡A¦ýµo²{±z¨Ã¤£»Ý­n¥ô¦óÀ°§U¡AÁä¤J +C-g ¨Ó¨ú®ø±¼¥¦´N¬O¤F¡C + +¡]¦³¨Çºô¯¸±N C-h ³o­Ó¦r¤¸ªº·N¸q§ïÅܤF¡C¥L­Ì¯uªº¤£À³¸Ó§â¥¦³]¬°¹ï©Ò¦³¨Ï +¥ÎªÌ¥þ³¡³£¾A¥Îªº¤èªk¡A©Ò¥H±z²{¦b´N¦³¤F­Ó²z¥Ñ¨Ó©ê«è¨t²ÎºÞ²zªÌ¤F¡C¦b¦¹¦P +®É¡A¦pªG C-h ¨Ã¨S¦³¦bµ¡®æªº©³³¡Åã¥Ü¥ô¦ó¦³ÃöÀ°§Uªº°T®§¡A¸ÕµÛÁä¤J F1 Áä¡A +©Î¬O M-x help ¡C¡^ + +³Ì°ò¥»ªº HELP ¥\¯à¬O C-h c¡CÁä¤J C-h¡A¦r¤¸ c¡A¥H¤Î¤@­Ó©Î¤@¦ê¦r¤¸¡FµM«á +Emacs ·|Åã¥Ü¤@­Ó«D±`²µuªº¦³Ãö³o­Ó«ü¥Oªº¸ÑÄÀ¡C + +>> Áä¤J C-h c C-p¡C + +°T®§À³¸Ó·|¹³¬O³o¼Ë¡G + + C-p runs the command previous-line + +³o§i¶D¤F±z¡u¨ç¼Æªº¦WºÙ¡v¡C¨ç¼Æ¦WºÙ¥D­n¬O¥Î¨Ó¦Û­q¥H¤ÎÂX¥R Emacs¡C¦ý¬O¥Ñ +©ó¨ç¼Æ¦WºÙ¬O¥Ñ¡u¥Î¨Ó«ü¥X³o«ü¥O¦b°µ¨Ç¤°»ò¡v¦Ó³Q¿ï©w¡A¥¦­Ì¦]¦¹¤]¥i¥H§@¬° +«D±`²µuªº¤å¥ó -- ¨¬°÷´£¿ô±z¤w¸g¾Ç¹Lªº«ü¥O¡C + +¦h¦r¤¸«ü¥O¹³¬O C-x C-s ©M ¡]¦pªG±z¨S¦³ META ©Î EDIT ©Î ALT Áä¡^v +¤]¥i¥H¦b C-h c «á­±¥X²{¡C + +­n¨ú±o§ó¦h¦³Ãö¤@­Ó«ü¥Oªº¸ê°T¡A¥Î C-h k ¨Ó¨ú¥N¨Ï¥Î C-h c ¡C + +>> Áä¤J C-h k C-p¡C + +³o·|¦b¤@­Ó Emacs µ¡®æÅã¥Ü³o­Ó¨ç¼Æªº»¡©ú¤å¥ó¥H¤Î¥¦ªº¦WºÙ¡C·í±z¾\Ū§¹«á¡A +Áä¤J C-x 1 ¥H¸õÂ÷³o¨ÇÀ°§U¤å¦r¡C±z¨Ã¤£»Ý­n°¨¤W¸òµÛ°µ¡C±z¥i¥H°µ¨Ç½s¿è¡A +·í°Ñ¦Ò¨ìÀ°§U¤å¦r®É¦AÁä¤J C-x 1¡C + +³o¸Ì¦³¤@¨Ç¨ä¥L¦³¥Îªº C-h ¿ï¶µ¡G + + C-h f ¸ÑÄÀ¤@­Ó¨ç¼Æ¡C±z­nÁä¤J¦¹¨ç¼Æªº¦WºÙ¡C + +>> ¸ÕµÛÁä¤J C-h f previous-line¡C + ³o·|¦L¥X Emacs ©Ò¦³ªº¦³Ãö¡u¹ê§@¥X C-p ³o­Ó«ü¥Oªº¨ç¼Æ¡vªº¸ê°T + +C-h v ³o­ÓÃþ¦üªº«ü¥O·|Åã¥Ü¥X¡u±z¥i¥H¥Î¨Ó¦Û­q Emacs ¦æ¬°ªºÅܼơvªº¤å¥ó¡C +·í Emacs ­n¨D®É¡A±z»Ý­nÁä¤J³oÅܼƪº¦WºÙ¡C + + C-h a «ü¥O¬ÛÃö¬d§ä¡] Command Apropos ¡^¡C + Áä¤J¤@­ÓÃöÁä¦rµM«á Emacs ·|¦C¥X©Ò¦³ + ¡u¦b¨ä¦WºÙ¤¤§t¦³¦¹ÃöÁä¦r¡vªº¥þ³¡«ü¥O¡C + ³o¨Ç«ü¥O¥þ³¡³£¥i¥H¸g¥Ñ META-x ¨Ó±Ò°Ê¡C + ¹ï©ó¤@¨Ç«ü¥O¦Ó¨¥¡A«ü¥O¬ÛÃö¬d§ä¤]·|¦C¥X + ¡u¥i¥H°õ¦æ¬Û¦P«ü¥O¡vªº¤@­Ó©Î¨â­Ó¦r¤¸ªº¦ê¦C¡C + +>> Áä¤J C-h a file¡C + +³o·|¦b¥t¤@­Óµ¡®æÅã¥Ü¤@­Ó¡u¦b¨ä¦WºÙ¤¤§t¦³¡yfile¡zªº¥þ³¡ M-x «ü¥O¡vªº¦C +ªí¡C±z±N·|¬Ý¨ì¹³¬O C-x C-f ªº¡u¦r¤¸-«ü¥O¡v¦C¦b¨ä¬Û¹ïÀ³«ü¥O¦WºÙ¡]¦p¡G +find-file ¡^ªº®ÇÃä¡C + +>> Áä¤J C-M-v ¤W¤U²¾°Ê help µ¡®æ¡C¸Õ­Ó´X¦¸¡C + +>> Áä¤J C-x 1 ¨Ó§R°£ help µ¡®æ¡C + + C-h i ¾\Ū½u¤W¨Ï¥Î¤â¥U¡] a.k.a. Info ¡^¡C + ³o­Ó«ü¥O±N±z±a¨ì¤FºÙ¬°¡u*info*¡vªº¯S®í½w½Ä°Ï¡A¦b¨º¡A + ±z¥i¥H¾\Ū¦w¸Ë¦b±zªº¨t²Î¸Ìªº³nÅé®M¥óªº½u¤W¨Ï¥Î¤â¥U¡C + Áä¤J m emacs ¥H¾\Ū Emacs ¨Ï¥Î¤â¥U¡C + ¦pªG±z¦b¦¹¤§«e¥¼´¿¨Ï¥Î¹L Info ¨t²Î¡A½ÐÁä¤J¡y?¡z¡C + Emacs ±N·|±a±z¶i¤J Info ¼Ò¦¡¥\¯àªº¾ÉÄý«ü«n¡C + ¤@¥¹§¹¦¨¤F¥»§Ö³t«ü«nªº¬ãŪ¡A±zÀ³¸Ó¬d¾\ Emacs Info + ¨Ï¥Î¤â¥U¡A¥H§@¬°¥D­nªº°Ñ¦Ò¤å¥ó¡C + + +* §ó¦h¥\¯à¯S¦â¡] MORE FEATURES ¡^ +--------------------------------- + +±z¥i¥H¸g¥Ñ¾\Ū Emacs ¨Ï¥Î¤â¥U¡q¤£½×¬O¤@¥»®Ñ©Î¬O¦b Info ¤¤ªº½u¤Wª©¥» +¡]¨Ï¥Î Help ¿ï³æ©Î¬OÁä¤J F10 h r ¡^¡r¨Ó¾Ç¨ì§ó¦h¦³Ãö¥¦ªºª¾ÃÑ¡C¦³¨â­Ó±z +¥i¯à·|¯S§O³ßÅwªº¥\¯à¯S¦â¬O¥i¥H¸`¬Ù¥´¦r¶qªº completion ÁÙ¦³Â²¤ÆÀɮ׳B²z +ªº dired ¡C + +Completion ¬O¤@ºØÁ×§K¤£¥²­nªº¥´¦rªº¤è¦¡¡CÁ|¨Ò¨Ó»¡¡A¦pªG±z·Q­n¤Á´« +*Messages* ½w½Ä°Ï¡A±z¥i¥HÁä¤J C-x b *M ¡A¥u­n¥i¥H±q±z¤w¸gÁä¤Jªº¤å +¦r¤¤½T©w¡A Emacs ´N·|±N³Ñ¤Uªº½w½Ä°Ï¦WºÙ¸É»ô¡C Completion ¬O¦b Emacs ¨Ï +¥Î¤â¥Uªº Info ¤¤¡AºÙ¬°¡uCompletion¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C + +Dired ¨Ï±z¥i¥H¦b¤@­Ó¥Ø¿ý¤¤¦C¥XÀɮס]¦¸¥Ø¿ý«h¬O¥i¿ïªº¡^¡B¦b¦Cªí¤¤¨ì³B²¾ +°Ê¡B«ô³X¡B­«·s©R¦W¡B§R°£¥H¤Î¹ïÀÉ®×§@¾Þ§@¡C Dired ¬O¦b Emacs ¨Ï¥Î¤â¥Uªº +Info ¤¤¡AºÙ¬°¡uDired¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C + +¨Ï¥Î¤â¥U¤]¸ÑÄÀ¤F³\¦h¨ä¥¦ Emacs ªº¥\¯à¯S¦â¡C + + +* µ²½×¡] CONCLUSION ¡^ +---------------------- + +°O¦í¡A­n§¹¥þÂ÷¶} Emacs ½Ð¨Ï¥Î C-x C-c ¡C­n¼È®ÉÂ÷¶}¨ì shell¡Aµy«á¦A¦^¨ì +Emacs¡A½Ð¨Ï¥Î C-z ¡C + +¥»§Ö³t«ü«n¹ï©ó©Ò¦³ªº·s¤âÀ³¸Ó³£¬O©ö©ó²z¸Ñªº¡A©Ò¥H¦pªG±zµo²{¤F¤°»ò¦a¤è¤£ +²M·¡¡A¤£­n¥u¬O§¤µÛ©Ç¦Û¤v -- ¡]¦V¥»¤å§@ªÌ©M½Ķ¡^µoÂI¨cÄ̧a¡I + + +* ½Ķ¡] TRANSLATION ¡^ +----------------------- + +¥»§Ö³t«ü«nªºÂ½Ä¶¤H­û¦Cªí¦p¤U¡A¦pªG±z¦b¾\Ū¥»¤å¤§«e¡A¡u§¹¥þ¡v¹ï Emacs +¨S¦³·§©À¡A½Ð§i¶D§Ú­Ì±zªº·N¨£¥H§@¬°¥»¤å«áÄòªº§ï¶i¨Ì¾Ú¡C½Ķ¤]´£¨Ñ¤F¤@¥÷ +¡mGNU Emacs ¤¤¤å³B²z»¡©ú¡n¦b +http://www.gnu.org/software/chinese/guide/emacs-chinese.zh.html ¡q³¡¥÷ +¤º®e¤w¸g¾ã²z¨ì¥»§Ö³t«ü«n¡r¡A¤]½Ð±z¦Û¦æ°Ñ¾\¡C + +½s¿è¾¹¬O¹q¸£¨Ï¥ÎªÌ³Ì±`±µÄ²¨ìªºÀ³¥Îµ{¦¡¡A¦]¦¹¤£À³¸ÓÅýªì¾ÇªÌ·P¨ì¹L©ó§xÃø¡A +´N¤@¯ëªºµû½×¨Ó»¡¡A Emacs ¬O¤£Ãø¾Ç·|¨Ï¥Îªº½s¿è¾¹¡A¦ý±zªº·N¨£¥i¥H¨Ï¥¦§ó +¬°¶Kªñ¤@¯ëªº¨Ï¥ÎªÌ¡A¨Ã¨Ï¹q¸£§@¬°¤u¨ãªº¨¤¦â±o¥H¥R¤Àµo´§¡C¦pªG±zÄ@·N´£¨Ñ +§ï¶iªº·N¨£¡A½Ð±H email ¨ì ¡C½Ð¤£­n®`²Û¡A +§Ú­ÌÅwªï¥ô¦ó¦³Ãöªº°Q½×¡F¦pªG±z¤£·Q±H¨ì¶l¥ó²M³æ¡A½Ðª½±µ email µ¹¥»¤å½ +Ķ ¡C½Ð¦b Title ¦æ¤¤¥]§t¦¹¦r¦ê¡uEmacs TUTORIAL: ¡v¡C + +¦pªG±z¬O Emacs ¦Ñ¤â¡AGNU Chinese Translators Team (GNU/CTT) + Åwªï±zªº¥[¤J¡A§Ú­Ì²{¦b¥¿»Ý­nÄ@ +·N§ë¤J½Ķ Emacs ¨Ï¥Î¤â¥Uªº¤H­û¡C + +¥»§Ö³t«ü«n¨Ã¨S¦³±Ä¥Î²ßºD¤W½s¿è¾¹©Ò¨Ï¥ÎªºÂ½Ä¶³N»y¡A¤@¤è­±¦]¬°¥¦ªº¹ê»Ú·N +¸q»P¤@¯ëªº½s¿è¾¹¤£¦P¡A­ì¤å¥»´N¤£¦P¡F¥t¤@¤è­±¤]¦]¬° Emacs ©Ò±Ä¥ÎªºµøÄ± +³]­p·§©À¡A¦­¦bµøµ¡¤Æ¨t²Î¤§«e´N¤w¸g¦s¦b¡A¥»½è¤]¤£¬Û¦P¡CÁ`¤§¡A½Ķ¥H¬°³o +¼Ë¥i¥HÀ°§U¹ï©ó Emacs ¾ã­Ó³]­p­õ¾Çªº²z¸Ñ¡C¦pªG¦¬¨ìªº¦^ÂФ¤¡A¤j³¡¥÷­n¨D +´£¥X­×§ï¡A§Ú­ÌÁÙ¬O±qµ½¦p¬y¡C + +(0) ¬°¤FÁ×§K¡u´å¼Ð²¾°Ê«ü¥O¡v½×­z¤Wªº²V²c¡A¥»¤å±Ä¥Îªº³N»y¬°¡G + ©¹¡u«e¡v²¾¡] move Forward ¡^¡F©¹¡u«á¡v²¾¡] move Backware ¡^ + ¡e©Î¬O©¹¡u¦^¡v²¾¡f¡F + ©¹¡u¤W¡v²¾¡] Previous line ¡^¡F©¹¡u¤U¡v²¾¡] Next line ¡^¡C +(1) ¦b¥»¤å¤¤¡A¡u¦æ¡v«üªº¬O row¡A³o¬O±Ä¥Î¤@¯ëªº²ßºD¥Îªk¡C + ¬°¤FÁ×§K»~¾É¤¤¤åŪªÌ¡A¯S§O¦b¦¹»¡©ú¡C¦b¥¿¦¡ªº¥Îªk¤¤¡G + ¡ucolumn¡v½Ķ¬°¡u¦æ¡v¡A¥H¡uÁa¡v¬°¦æ¡]ª½¦æ¡^¡A¤]ͬ°¡uÄæ¡v¡F + ¡urow¡v½Ķ¬°¡u¦C¡v¡A¥H¡u¾î¡v¬°¦C¡]¾î¦C¡^¡C + ŪªÌ«ä¯Á¤@¤U¡u¦XÁa³s¾î¡vÀ³¸Ó¥i¥H²z¸Ñ¡C + ¤j¬ù¬O¦]¬°¤¤¤å­ì¥»¬Oª½®Ñªº¡A§Ú­Ì»¡¡u¤@¦æ¦r¡v¬O¨S°ÝÃD¡F + ¦ý²{¦b¤j³¡¥÷ªº±¡§Î¤¤¤å¬O¾î®Ñªº¡A¥Ñ©ó²ßºD¨ÏµM¤]ºÙ¬°¤@¦æ¦r¤F¡C +(2) ¦³Ãö©ó¡u¤å¦r¡v¤Î¨ä¶°¦Xªº¬ÛÃöͤå¡A½Ķ©Ò±Ä¥Îªº¦³¡G + ½s¿èªº¡u¤å¦r¡v¡G¡uµM«áÁä¤J¤@¨Ç¤å¦r¡v¡F + ¥Î¨Ó§@¬°»¡©ú¥\¯àªº¡u¤å¥ó¡v¡G¡u³o­Ó¨ç¼Æªº»¡©ú¤å¥ó¡v¡F + ¯S«ü¨ä©Ò»¡©úªº¤º®eªº¡u¤å¥»¡v¡G¡u¹ê»Ú®Ä¤O¥H­^¤å¥»¬°·Ç¡v¡C + §Y¨Ï¥u¬O¡u¤@¦æ¦r¡v¡A¥u­n¥¦¬O¥Î¨Ó§@¬°»¡©ú¤§¥Î¡A + ½ĶÁÙ¬O±N¥¦µø¬°¡u¤å¥ó¡v¡C +(3) ¡ucut¡vªº°Ê§@¦b Emacs ¤¤¤À¬°¡u±þ±¼¡v©M¡u§R°£¡v¡A¤§¶¡ªº®t²§¦p¤U¡G + ¤@¯ë½s¿è¾¹¤¤ªº¡ucut¡v¡G¥u¦³³Ìªñ³Q cut ªº¤å¦rÂ\¨ì clipboard ¤¤¡F + ¡u±þ±¼¡] killing ¡^¡v¡G³Q±þ±¼ªº¤å¦r¡A¥þ³¡³Q¥[¤J¨ì kill ring ¤¤¡F + ¡u§R°£¡] deleting ¡^¡v¡G³Q§R°£ªº¤å¦r¡A´N¬O³Q§R°£¤F¡C + ¦]¦¹¦b¤@¯ë½s¿è¾¹¤¤¡A±z¥u¯à paste¡u³Ìªñ¡v³Q cut ªº¤å¦r¡F + ¦Ó¦b Emacs ¤¤¡A±z¥i¥H¡u©Ô¦^¡v¥ô¦ó¥ý«e³Q±þ±¼ªº¤å¦r¡A¦P®É¡A + ¥¦ªº§@ªk«Ü®e©ö¡C¦Ü©ó³Q§R°£ªº¡A¦]¬°¥Î¨Ó§@¬°¡u§R°£¡v¥\¯àªº«ü¥O¡A + ©Ò¯à²¾¥hªº¤å¦r¼Æ¶q³£«Ü¤Ö¡A¦]¦¹¤]¨S¤°»ò¦n©Ô¦^ªº¡F + ¦pªG¯uªº·Q¦^´_³o¨Ç¤å¦r¡Aundo ±zªº°Ê§@´N¬O¤F¡C +(4) ¡uwindow¡v¦P®É½Ķ¬°¡uµøµ¡¡v©M¡uµ¡®æ¡v¡A + «eªÌªí¥Ü²{¦b¤@¯ë·§©À¤¤ªºµøµ¡¨t²Î¡A¦p¡uX µøµ¡¡v¡F + «áªÌªí¥Ü Emacs ¤¤ªºµøµ¡¡A½Ķ¦b¦¹³qºÙ¬°¡uµ¡®æ¡v¡C + Emacs ªº¡uµ¡®æ¡v§Y¨Ï¦b©R¥O¦C´£¥Ü¤U¤]¥i¥H¥¿±`¤u§@¡A + ¦¹¤@°ò¥»¯S©ÊÅãµM­È±o§Ú­Ì¥H¥t¤@­Ó±M¥Î³N»y¨Ó´y­z¥¦¡C +(5) Ãö©óÀɮתº³N»y¡A¡u§ä¡v¤@­ÓÀɮצb Emacs ¤¤¦³¨âºØ§@¥Î¡G + §ä¤@­Ó¡u¨Ã¤£¦s¦b¡vªºÀɮסAŪªÌÀ³»{ª¾¬°¡u¶}·sÀɮסv¡F + §ä¤@­Ó¡u¤w¸g¦s¦b¡vªºÀɮסA«h¬O¡u¶}±ÒÂÂÀÉ¡v¡C + Emacs ¥u¥H¤@­Ó¡u§ä¡vªº°Ê§@¨Ó¸Ñ¨M¡A¥D­nªº­ì¦]¬O¡u¹ê»Ú¤W¡v + ªº³nÅé¤u§@¦p¦¹¡CÀb«È­ÌÀ³¸Ó·|µo²{³o¼Ë¤ñ¸û¦ÛµM¡A + ¦]¬°¥¦¤ÏÀ³¤F¹q¸£ªº¤u§@¤è¦¡¡A¦P®É¾Þ§@°_¨Ó¤]¸û¤Ö¼o¸Ü¡C +(6) ¦b¡i¡j¤¤ªº¤å¦r¬°Â½Ä¶ªºµù¸Ñ¡C +(7) Ãö©ó¨Ï¤¤¤å¤å¥óµ²ºc¤ÆªºÄ³ÃD¡A°ÝÃD¤w¸gÀò±o¸Ñ¨M¡C +(8) ¥»Â½Ä¶¤å¥»©Ò±Ä¥ÎªºÂ²Ác¥Î»y®t²§¦Cªí¦p¤U¡G + zh cn + ¤å¥ó ¤åÀÉ + ³nÅé ³n¥ó + §@·~ ¾Þ§@ + ®M¥ó ¥] + µøµ¡ µ¡¤f + »¼°j »¼Âk + Àb«È ¶Â«È + ¸ê°T «H®§ + +¥t¥~¡A§Ú­Ì¤]¤Q¤ÀÅwªïŪªÌ¥i¥Hª½±µ­×§ï¥»§Ö³t«ü«n¡A°µ¥X¦Û¤vªºª©¥»¡A¥H¦Û¤v +»{¬°³Ì¬°¦X¾Aªº¤è¦¡¨Ó¤¶²Ð Emacs ¡C¦pªG±z°µ¥X¤F³o¼Ë­Ó¤H¤Æªºª©¥»¡A¨Ã¥B»{ +¬°¨¬¨Ñ¤j®a°Ñ¦Ò¨Ï¥Î¡A½Ð±Hµ¹ ¡A§Ú­Ì·|±N±z +ªºª©¥»¤½¶}¦b GNU/CTT ªººô­¶¤¤´£¨Ñµ¹¤¤¤å¨Ï¥ÎªÌ¤U¸ü¡C + +½Ķ¡G¼B ¬L§» +ÅçÃÒ¡G°¨ ³·µÓ + + +* ½Æ»s¡] COPYING ¡^ +------------------- + +¥»§Ö³t«ü«nªuŧ¦Û¨ã¦³±y¤[¾ú¥vªº Emacs §Ö³t«ü«n¡A¥Ñ Stuart Cracraft ¬°¤F +­ì©lªº Emacs ©Ò¼¶¼gªºª©¥»¶}©l¡C + +³o­Óª©¥»ªº§Ö³t«ü«n©M GNU Emacs ¤@¼Ë³£¬Oª©Åv¤Æªº¡A¨Ã¥B¤¹³\¦b¬Y¨Ç±ø¥ó¤U +´²§G¨ä«þ¨©¡G + +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. +Chinese Translation by Chao-Hong Liu (2002, 2003) + + Permission is granted to anyone to make or distribute verbatim copies + of this document as received, in any medium, provided that the + copyright notice and permission notice are preserved, + and that the distributor grants the recipient permission + for further redistribution as permitted by this notice. + + ¥»¤å¤¹³\¦b¤£Åܧó¤å¥ó¤º®eªº«e´£¤U¥Zµn¦b¥ô¦ó§Î¦¡ªº´CÅ餤¡A + ¦ý»Ý«O¯dª©ÅvÁn©ú¥H¤Î³\¥iÁn©ú¡A + ´²§GªÌ¤]¥²¶·µ¹¤©±µ¨üªÌ¦p¦P¦¹Án©ú©Ò¤¹³\ªº¡A¶i¤@¨B´²§Gªº³\¥i¡C + ¡i¥»¬qͤ崣¨ÑŪªÌ§@¬°°Ñ¦Ò¥HÀ°§U²z¸Ñ¡A¹ê»Ú®Ä¤O¥H­^¤å¥»¬°·Ç¡C¡j + + Permission is granted to distribute modified versions + of this document, or of portions of it, + under the above conditions, provided also that they + carry prominent notices stating who last altered them. + + ¥»¤å¤¹³\¦b»P¤W­z¬Û¦Pªº±ø¥ó¤U¡A´²§G­×§ï«áªºª©¥»¡A©Î¬O¨ä¤¤ªº¤@³¡¥÷¡A + ¦ý¥¦­Ì¤]¥²¶·±a¦³ÅãµÛªº¡A»¡©ú¥Ñ½Ö³Ì«á§ó°Ê¤F¥¦ªºÁn©ú¡C + ¡iCopyleft ª©Åv°£¤F´£¨Ñ¨Ï¥ÎªÌ¦Û¥Ñ¥~¡A¤]ºûÅ@­ì©l§@ªÌ¡A + ¥H¤Î«á¨Óªº­×§ï§@ªÌªº¦WÅAÅv¡] credit ¡^¡C + ¥»¬qͤ崣¨ÑŪªÌ§@¬°°Ñ¦Ò¥HÀ°§U²z¸Ñ¡A¹ê»Ú®Ä¤O¥H­^¤å¥»¬°·Ç¡C¡j + +½Æ»s Emacs ¥»¨­ªº±ø¥ó¸û¬°½ÆÂø¡A¦ý¬O¨ã¦³¬Û¦Pªººë¯«¡C½Ð¾\Ū COPYING ³o­Ó +ÀɮסA¨Ã¥B½T¹êµ¹¤©±zªºªB¤Í GNU Emacs ªº«þ¨©¡C½Ð¸g¥Ñ¡u¨Ï¥Î¡B¼¶¼g¡B¥H¤Î +¤À¨É¦Û¥Ñ³nÅé¡v¨ÓÀ°§U®ø°£³nÅé»Ùê¥D¸q¡]¾Ö¦³Åv¡^¡I + +;;; DO NOT PUT THIS ON ZHS OR ZHT FILE... +;;; Local Variables: +;;; coding: chinese-big5 +;;; End: + +;;; arch-tag: a51dafb4-e602-432b-8020-5d5d5f150811 diff --git a/etc/Xkeymap.txt b/etc/Xkeymap.txt index 31aef8bdacb..fcdbbf43215 100644 --- a/etc/Xkeymap.txt +++ b/etc/Xkeymap.txt @@ -96,3 +96,5 @@ # local variables: # tab-width: 4 # End: + +# arch-tag: cbaa71af-719b-4647-a2c1-cd4d36a4fc64 diff --git a/etc/calccard.tex b/etc/calccard.tex index ae999c8869f..1502a3c73c2 100644 --- a/etc/calccard.tex +++ b/etc/calccard.tex @@ -13,7 +13,8 @@ % Typical command to format: tex calccard.tex % Typical command to print (3 cols): dvips -t landscape calccard.dvi -% Copyright (c) 1987, 1992, 2001 Free Software Foundation, Inc. +% Copyright (C) 1987, 1992, 2001, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -29,7 +30,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +% the Free Software Foundation, 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file is intended to be processed by plain TeX (TeX82). % @@ -57,9 +59,8 @@ % UUCP: mit-erl!gildea % Internet: gildea@stop.mail-abuse.org -\def\versionnumber{2.03} -\def\versiondate{November 2001} -\def\year{2001} +\def\versionnumber{2.1} +\def\year{2005} \def\version{v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill @@ -70,14 +71,15 @@ \vskip 1ex plus 2 fill\begingroup\small \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} \centerline{designed by Dave Gillespie and Stephen Gildea, \version} -\centerline{for GNU Emacs Calc version \versionnumber\ (\versiondate)} +\centerline{for GNU Emacs Calc version \versionnumber} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice are preserved on all copies. For copies of the GNU Emacs Calc manual, write to the Free Software -Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. \endgroup} @@ -252,7 +254,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \def\S#1{$S_{\scriptscriptstyle #1}$} \def\swap{$\leftrightarrow$} -\def\mhash{M-\#\ } +\def\calcprefix{C-x *\ } \def\,{{\rm ,\hskip.55em}\ignorespaces} \def\lesssectionskip{\vskip-1.5ex} @@ -271,18 +273,18 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \title{GNU Calc Reference Card} -\centerline{(for version \versionnumber\ of \versiondate)} +\centerline{(for version \versionnumber)} \section{Starting and Stopping} -\wkey{start/stop standard Calc}{\mhash c} -\wkey{start/stop X keypad Calc}{\mhash k} -\wkey{\quad start/stop either: \kbd{\mhash \#} or \kbd{\mhash \mhash}}{} +\wkey{start/stop standard Calc}{\calcprefix c} +\wkey{start/stop X keypad Calc}{\calcprefix k} +\wkey{\quad start/stop either: \kbd{\calcprefix *}}{} \wkey{stop standard Calc}{q} -\wkey{Calc tutorial}{\mhash t} -\wkey{run Calc in other window}{\mhash o} -\wkey{quick calculation in minibuffer}{\mhash q} +\wkey{Calc tutorial}{\calcprefix t} +\wkey{run Calc in other window}{\calcprefix o} +\wkey{quick calculation in minibuffer}{\calcprefix q} \section{Getting Help} @@ -293,8 +295,8 @@ The \kbd{h} prefix key is Calc's analogue of \kbd{C-h} in Emacs. \key{describe key briefly}{h c} \key{describe key fully}{h k} \key{describe function or command}{h f} -\key{read on-line manual}{h i{\rm\enskip or\enskip}\mhash i} -\key{read full Calc summary}{h s{\rm\enskip or\enskip}\mhash s} +\key{read on-line manual}{h i{\rm\enskip or\enskip}\calcprefix i} +\key{read full Calc summary}{h s{\rm\enskip or\enskip}\calcprefix s} \section{Error Recovery} @@ -304,16 +306,16 @@ The \kbd{h} prefix key is Calc's analogue of \kbd{C-h} in Emacs. \key{redo last operation}{D} \key{recall last arguments}{M-RET} \key{edit top of stack}{`} -\wkey{reset Calc to default state}{\mhash 0 {\rm (zero)}} +\wkey{reset Calc to initial state}{\calcprefix 0 {\rm (zero)}} \section{Transferring Data} -\wkey{grab region from a buffer}{\mhash g} -\wkey{grab rectangle from a buffer}{\mhash r} -\wkey{grab rectangle, summing columns}{\mhash :} -\wkey{grab rectangle, summing rows}{\mhash \_} +\wkey{grab region from a buffer}{\calcprefix g} +\wkey{grab rectangle from a buffer}{\calcprefix r} +\wkey{grab rectangle, summing columns}{\calcprefix :} +\wkey{grab rectangle, summing rows}{\calcprefix \_} -\wkey{yank data to a buffer}{\mhash y} +\wkey{yank data to a buffer}{\calcprefix y} Also, try \kbd{C-k}/\kbd{C-y} or X cut and paste. @@ -555,7 +557,7 @@ Variable names are single digits or whole words. \key{``Big'' display mode}{d B} \key{C, Pascal, FORTRAN modes}{d C\, d P\, d F} -\key{\TeX, eqn modes}{d T\, d E} +\key{\TeX, La\TeX, eqn modes}{d T\, d L\, d E} \key{Unformatted mode}{d U} \key{Normal language mode}{d N} @@ -643,13 +645,12 @@ Variable names are single digits or whole words. \key{begin, end recording a macro}{C-x (\, C-x )} \key{replay keyboard macro}{X} -\wkey{read region as written-out macro}{\mhash m} +\wkey{read region as written-out macro}{\calcprefix m} \key{if, else, endif}{Z [\, Z :\, Z ]} \key{equal to, less than, member of}{a =\, a <\, a \{} \key{repeat {\it n} times, break from loop}{Z <\, Z >\, Z /} \key{``for'' loop: start, end; body, step}{Z (\, Z )} \key{save, restore mode settings}{Z `\, Z '} -\key{display message during macro}{Z =} \key{query user during macro}{Z \#} \key{put finished macro on a key}{Z K} @@ -667,3 +668,5 @@ Variable names are single digits or whole words. % Local variables: % compile-command: "tex calccard" % End: + +% arch-tag: a2764f34-ec23-4083-bd5c-53f9e70a5da9 diff --git a/etc/compilation.txt b/etc/compilation.txt new file mode 100644 index 00000000000..72ff5ac5316 --- /dev/null +++ b/etc/compilation.txt @@ -0,0 +1,403 @@ +* Introduction -*-compilation-*- + +This shows the different kinds of messages compile recognizes by default and +how they are rendered. It is intended both to help you decide which matchers +you need and as a test of the matchers. Move the mouse over a colored part or +use `compilation-message-face', to see how much text was actually matched. + +The important part is the symbol(s) line at the beginning of each entry. +These are the symbols you can customize `compilation-error-regexp-alist' for, +to match the messages shown in that entry. A few complex cases have more than +one symbol, which should be selected together. + + +* Absoft FORTRAN 77 Compiler 3.1.3 + +symbol: absoft + +Error on line 3 of t.f: Execution error unclassifiable statement +Line 45 of "foo.c": bloofle undefined +error on line 19 of fplot.f: spelling error? +warning on line 17 of fplot.f: data type is undefined for variable d + + +* Ada & Mpatrol (memory leak debugger) + +symbol: ada + +This matches only the end of line, the beginning is covered by GNU style. + +foo.adb:61:11: [...] in call to size declared at foo.ads:11 + 0x8008621 main+16 at error.c:17 + + +* IBM AIX PS/2 C version 1.1 + +symbol: aix + +****** Error number 140 in line 8 of file errors.c ****** + + +* Ant Java: works at least for jikes and javac + +symbol: ant + +The regexps found on http://ant.apache.org/faq.html, and since integrated in +both Emacsen, were hairy. Why so many numbers for jikes -- is one a column +number? + + [javac] /src/DataBaseTestCase.java:27: unreported exception ... + [javac] /src/DataBaseTestCase.java:49: warning: finally clause cannot complete normally + [jikes] foo.java:3:5:7:9: blah blah + + +* Bash v2 + +symbol: bash + +a.sh: line 1: ls-l: command not found + + +* Borland C++, C++Builder + +symbol: borland + +Error ping.c 15: Unable to open include file 'sys/types.h' +Warning ping.c 68: Call to function 'func' with no prototype +Error E2010 ping.c 15: Unable to open include file 'sys/types.h' +Warning W1022 ping.c 68: Call to function 'func' with no prototype + + +* Caml & Python + +symbol: caml + +File "foobar.ml", lines 5-8, characters 20-155: blah blah +File "F:\ocaml\sorting.ml", line 65, characters 2-145: +Warning: this expression should have type unit. + File "/usr/share/gdesklets/display/TargetGauge.py", line 41, in add_children + File \lib\python\Products\PythonScripts\PythonScript.py, line 302, in _exec + File "/tmp/foo.py", line 10 + + +* Apollo cc, 4.3BSD fc & IBM RS6000/AIX xlc compiler & Microtec mcc68k & GNAT (July 94) + +symbol: comma + +"foo.f", line 3: Error: syntax error near end of statement +"vvouch.c", line 19.5: 1506-046 (S) Syntax error. +"foo.c", line 32 pos 1; (E) syntax error; unexpected symbol: "lossage" +"foo.adb", line 2(11): warning: file name does not match ... +"src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment. + + +* EDG C/C++ + +symbol: edg-1 edg-2 + +build/intel/debug/../../../struct.cpp(42): error: identifier "foo" is undefined +build/intel/debug/../../../struct.cpp(44): warning #1011: missing return statement at end of ... +build/intel/debug/../../../iptr.h(302): remark #981: operands are evaluated in unspecified order + detected during ... at line 62 of "build/intel/debug/../../../trace.h" + + +* EPC F90 compiler + +symbol: epc + +Error 24 at (2:progran.f90) : syntax error + + +* Fortran checker + +symbols: ftnchek + + Dummy arg W in module SUBA line 8 file arrayclash.f is array + L4 used at line 55 file test/assign.f; never set +Warning near line 10 file arrayclash.f: Module contains no executable +Nonportable usage near line 31 col 9 file assign.f: mixed default and explicit + + +* IAR Systems C Compiler + +symbol: iar + +"foo.c",3 Error[32]: Error message +"foo.c",3 Warning[32]: Error message + + +* IBM C/C++ Tools 2.01 + +symbol: ibm + +foo.c(2:0) : informational EDC0804: Function foo is not referenced. +foo.c(3:8) : warning EDC0833: Implicit return statement encountered. +foo.c(5:5) : error EDC0350: Syntax error. + + +* Ultrix MIPS RISC CC, DEC AXP OSF/1 cc, IRIX 5.2 & NAG Fortran + +symbol: irix + +ccom: Error: foo.c, line 2: syntax error +cc: Severe: /src/Python-2.3.3/Modules/_curses_panel.c, line 17: Cannot find file ... +cc: Info: foo.c, line 27: ... +cfe: Warning 712: foo.c, line 2: illegal combination of pointer and ... +cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ... +/usr/lib/cmplrs/cc/cfe: Error: foo.c: 1: blah blah +/usr/lib/cmplrs/cc/cfe: warning: foo.c: 1: blah blah +foo bar: baz.f, line 27: ... + + +* Java Exception & Valgrind (memory debugger for x86 GNU/Linux) + +symbol: java + +Register 6 contains wrong type + at org.foo.ComponentGateway.doGet(ComponentGateway.java:172) + at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) +==1332== Invalid write of size 1 +==1332== at 0x4040743C: System::getErrorString() (../src/Lib/System.cpp:217) +==1332== by 0x8008621: main (vtest.c:180) + + +* IBM jikes + +symbols: jikes-file jikes-line + +Jikes separates file names from the actual error messages. For visual +feedback the underline and the word "Error" on the 3rd line is fontified like +a file name would be. + +Found 2 semantic errors compiling "../javax/swing/BorderFactory.java": + + 150. case '{': + <-> +*** Error: The type of this expression, "char", is not ... + + 312. return new CompoundBorder(outside, inside); + <---------------------------------> +*** Error: No match was found for constructor ... + +Issued 1 semantic warning compiling "java/awt/Toolkit.java": + + 504. void imgProduceImage( ImageNativeProducer prod, Ptr imgData); + <-----------------> +*** Warning: The type "ImageNativeProducer" is defined ... + + +* GCC include message + +symbol: gcc-include + +The last file, i.e. the one you are compiling, is the interesting one. + +In file included from /usr/include/c++/3.3/backward/warn.h:4, + from /usr/include/c++/3.3/backward/iostream.h:31, + from test_clt.cc:1: + + +* GNU style + +symbol: gnu + +foo.c:8: message +../foo.c:8: W: message +/tmp/foo.c:8:warning message +foo/bar.py:8: FutureWarning message +foo.py:8: RuntimeWarning message +foo.c:8:I: message +foo.c:8.23: info: message +foo.c:8:23:information: message +foo.c:8.23-45: Informational: message +foo.c:8-23: message +foo.c:8-45.3: message +foo.c:8.23-9.1: message +jade:dbcommon.dsl:133:17:E: missing argument for function call +G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. +file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. +{standard input}:27041: Warning: end of file not at end of a line; newline inserted + + +* Lucid Compiler, lcc 3.x + +symbol: lcc + +E, file.cc(35,52) Illegal operation on pointers +W, file.cc(36,52) blah blah + + +* makepp 1.20 + +symbol: makepp + +makepp: Scanning `/foo/bar.c' +makepp: warning: bla bla `/foo/bar.c' and `/foo/bar.h' +makepp: bla bla `/foo/Makeppfile:12' bla +makepp: bla bla `/foo/bar.c' and `/foo/bar.h' + + +* MIPS lint; looks good for SunPro lint also + +symbols: mips-1 mips-2 + +This can match multiple times on a line. + +TrimMask (255) in solomon.c may be indistinguishable from TrimMasks (93) in solomon.c due to truncation +name defined but never used: LinInt in cmap_calc.c(199) + + +* Microsoft C/C++ + +symbol: msft + +This used to be less selective and allowed characters other than parens around +the line number, but that caused confusion for GNU-style error messages. This +used to reject spaces and dashes in file names, but they are valid now; so I +made it more strict about the error message that follows. + +keyboard handler.c(537) : warning C4005: 'min' : macro redefinition +d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if' + + +* Oracle pro*c + +symbol: oracle + +This stupid precompiler wraps lines at column 80 in the middle of a file name. +There is no obvious way of detecting this or turning it off. But if you +delete the newline (probably needs M-x toggle-read-only), the file name will +automatically be reparsed, so that you can then go there. + +Semantic error at line 528, column 5, file erosacqdb.pc: +Error at line 41, column 10 in file /usr/src/sb/ODBI_BHP.hpp +PCC-02150: error at line 49, column 27 in file /usr/src/sb/ODBI_dxfgh.pc +PCC-00003: invalid SQL Identifier at column name in line 12 of file /usr/src/sb/ODBI_BHP.hpp +PCC-00004: mismatched IF/ELSE/ENDIF block at line 27 in file /usr/src/sb/ODBI_BHP.hpp +PCC-02151: line 21 column 40 file /usr/src/sb/ODBI_BHP.hpp: + + +* Perl + +symbol: perl + +syntax error at automake line 922, near "':'" +Died at test.pl line 27. +store::odrecall('File_A', 'x2') called at store.pm line 90 + + +* RXP + +symbol: rxp + +GPL XML validator at http://www.cogsci.ed.ac.uk/~richard/rxp.html + +Error: Mismatched end tag: expected , got +in unnamed entity at line 71 char 8 of file:///home/reto/test/group.xml +Warning: Start tag for undeclared element geroup +in unnamed entity at line 4 char 8 of file:///home/reto/test/group.xml + + +* Sparc Pascal + +symbols: sparc-pascal-file sparc-pascal-line sparc-pascal-example + +These messages don't contain a file name. Instead the compiler gives a +message whenever the file being compiled is changed. For visual feedback the +error code is fontified like a file name would be. + +Thu May 14 10:46:12 1992 mom3.p: + 20 linjer : array[1..4] of linje; +w 18480-----------^--- Inserted ';' + 20 linjer : array[1..4] of linje; +e 18480-----------^--- Inserted ';' +w 18520 line 61 - 0 is undefined +E 18520 line 61 - 0 is undefined + + +* SGI IRIX MipsPro 7.3 & Sun F90 & Cray C + +symbol: sun + +cc-1020 CC: REMARK File = CUI_App.h, Line = 735 +cc-1070 cc: WARNING File = linkl.c, Line = 38 +cf90-113 f90comp: ERROR NSE, File = Hoved.f90, Line = 16, Column = 3 + + +* Sun Ada (VADS, Solaris) + +symbol: sun-ada + +/home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted + + +* 4.3BSD grep, cc, lint + +symbol: 4bsd + +/usr/src/foo/foo.c(8): warning: w may be used before set +/usr/src/foo/foo.c(9): error: w is used before set +strcmp: variable # of args. llib-lc(359) :: /usr/src/foo/foo.c(8) +bloofle defined( /users/wolfgang/foo.c(4) ), but never used + + +* GCOV (test coverage program) + +symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line + + -: 0:Source:foo.c + -: 0:Object:foo.bb + -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c + -: 2: $ ./a.out + -: 3: $ gcov foo.c + -: 4: LANG=C gcov foo.c + -: 5: 62.50% of 8 lines executed in file foo.c + -: 6: Creating foo.c.gcov.*/ + -: 7:int + -: 8:main(int argc, char ** argv) + 1: 9:{ + 1: 10: int r; + 1: 11: if (argc == 1) + 1: 12: r = 1; + #####: 13: else if (argc == 2) + #####: 14: r = 2; + -: 15: else + #####: 16: r = 0; + 1: 17: return r; + -: 18:} + + +* Directory tracking + +Directories are matched via `compilation-directory-matcher'. Files which are +not shown as full paths are searched for relative to the directory where the +message was issued. + +Entering directory `/a/b/c' +Leaving directory `/a/b/c' +gmake[2]: Entering directory `/a/b/c' +makepp: Leaving directory `/a/b/c' + + +* Miscellaneous + +These are not messages that can be gone to. They are only highlighted via +`compilation-mode-font-lock-keywords' to recognize some useful information at +a glance. + +checking dynamic linker characteristics... GNU/Linux ld.so +checking if libtool supports shared libraries... yes +checking whether to build shared libraries... yes +checking whether -lc should be explicitly linked in... (cached) no +checking For GLIB - version >= 2.0.0... yes (version 2.1.0) +checking FONTCONFIG_CFLAGS... +g++ -o foo.o foo.cc +tool1 -output=foo foo.x +tool2 --outfile foo foo.y + +Compilation started at Wed Jul 20 12:20:10 +Compilation interrupt at Wed Jul 20 12:20:10 +Compilation killed at Wed Jul 20 12:20:10 +Compilation terminated at Wed Jul 20 12:20:10 +Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12 +Compilation finished at Thu Jul 21 15:02:15 diff --git a/etc/cs-dired-ref.tex b/etc/cs-dired-ref.tex index 103752fdb60..12e3c01c871 100644 --- a/etc/cs-dired-ref.tex +++ b/etc/cs-dired-ref.tex @@ -1,5 +1,5 @@ % Reference Card for Dired -% Copyright (C) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % Czech hyphenation rules applied \chyph @@ -18,8 +18,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file can be printed with 1, 2, or 3 columns per page (see below). % Specify how many you want here. Nothing else needs to be changed. @@ -47,7 +47,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{0.1} -\def\year{2000} +\def\year{2005} \def\version{May \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill @@ -66,7 +66,8 @@ this card provided the copyright notice and this permission notice are preserved on all copies. For copies of the GNU Emacs manual, write to the Free Software -Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. \endgroup} @@ -400,3 +401,5 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. %\copyrightnotice \bye + +% arch-tag: dd78e947-5b89-4e5b-8bab-b6003719dce5 diff --git a/etc/cs-refcard.tex b/etc/cs-refcard.tex index 893557c4689..1164817a14d 100644 --- a/etc/cs-refcard.tex +++ b/etc/cs-refcard.tex @@ -11,7 +11,8 @@ \columnsperpage=1 -% Copyright (c) 1987, 1993, 1996, 1997, 2001 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -27,8 +28,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file is intended to be processed by plain TeX (TeX82). % @@ -65,7 +66,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{2.2} -\def\year{1997} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. @@ -82,7 +83,7 @@ this card provided the copyright notice and this permission notice are preserved on all copies. For copies of the GNU Emacs manual, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \endgroup} @@ -664,3 +665,5 @@ V % Local variables: % compile-command: "csplain cs-refcard" % End: + +% arch-tag: 24ab5519-539c-4941-9a95-4ed9d819030f diff --git a/etc/cs-survival.tex b/etc/cs-survival.tex index 6a170e06aa0..4140f2a858e 100644 --- a/etc/cs-survival.tex +++ b/etc/cs-survival.tex @@ -2,9 +2,6 @@ % Title: GNU Emacs Survival Card % Author: Wlodek Bzyl % -% $Revision: 1.1 $ -% $Date: 2001/04/18 13:59:16 $ -% %**start of header % User interface is `plain.tex' and macros described below @@ -24,7 +21,7 @@ \endinput \fi -% Copyright (c) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -40,8 +37,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % Czech hyphenation rules applied \chyph @@ -52,7 +49,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{1.0} -\def\year{2000} +\def\year{2005} \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter @@ -411,3 +408,5 @@ m % Local variables: % compile-command: "csplain survival" % End: + +% arch-tag: 86b21d3f-d8b6-412d-8d77-e6e8728f590e diff --git a/etc/ctags.1 b/etc/ctags.1 index 1eab02f2145..9a6505b020e 100644 --- a/etc/ctags.1 +++ b/etc/ctags.1 @@ -1 +1,3 @@ .so man1/etags.1 + +.\" arch-tag: 54d4579b-9d66-4ba5-9fda-f01ec83612ad diff --git a/etc/de-refcard.tex b/etc/de-refcard.tex index 5931436933e..bb0ce3c978d 100644 --- a/etc/de-refcard.tex +++ b/etc/de-refcard.tex @@ -7,7 +7,8 @@ \columnsperpage=2 -% Copyright (c) 1987, 1993, 1996, 2000 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 2000, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -23,8 +24,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file is intended to be processed by plain TeX (TeX82). % @@ -52,7 +53,7 @@ % If there were room, it would be nice to see a section on Dired. \def\versionnumber{2.1} -\def\year{1996} +\def\year{2005} \def\version{March \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill @@ -639,3 +640,5 @@ Ar\-gu\-men\-te be\-reit\-ge\-stellt wer\-den, wenn die Funktion inter\-aktiv au % Local variables: % compile-command: "tex refcard" % End: + +% arch-tag: af0a2666-f289-49f1-a9cc-cedab9783314 diff --git a/etc/dired-ref.tex b/etc/dired-ref.tex index ec01c40fb1e..62038525a21 100644 --- a/etc/dired-ref.tex +++ b/etc/dired-ref.tex @@ -1,5 +1,6 @@ % Reference Card for Dired -% Copyright (C) 2000. 2001 Free Software Foundation, Inc. +% Copyright (C) 2000, 2001, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -15,8 +16,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file can be printed with 1, 2, or 3 columns per page (see below). % Specify how many you want here. Nothing else needs to be changed. @@ -40,7 +41,7 @@ \def\versionnumber{0.1} -\def\year{2000} +\def\year{2005} \def\version{May \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill @@ -59,7 +60,8 @@ this card provided the copyright notice and this permission notice are preserved on all copies. For copies of the GNU Emacs manual, write to the Free Software -Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. \endgroup} @@ -394,3 +396,4 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \bye +% arch-tag: 483e7bb4-4576-4733-9fca-0eae1c861484 diff --git a/etc/e/eterm b/etc/e/eterm deleted file mode 100644 index f75543ddb6bf6620720231d72f0bb192f51c8b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmdTSB_BA&ou7KK2>&IKr{=3Qia=aD{8- zt*_m5WNtfntF~Ib)9O9_10L~I*FN{{sZDsnE8g%<!(?5qV{D5V3sw2 zXs9HCA^g##W&d;QF-*bs&7mndCKofMu*sE~NZNjiVTUHMt)9e$C=jIIpe1NoTAJn* zVSBc}=6VNYuDB>uzW3)`L1N*Q>I!z0#4XgbQrU%_S!Z<42{s8<2>ggJzL$~rbX|E= tLAn8?OEd8X;H+9k=4eS)R*>L7#z|b6?#NdqeY(7KWizs&+{1-$vKpOx6 diff --git a/etc/e/eterm-color b/etc/e/eterm-color new file mode 100644 index 0000000000000000000000000000000000000000..5a208473e3e869e5ca870d3d606801fe1c9e5525 GIT binary patch literal 1163 zcmcgoJxE(&6g^KYNu{+o2*u}+!G}eOm_L&c1hth~HAK2Nq)SMiH1s7eyrdmkZ5_nL zp-UGBmo6PTbai#@+SS$7RS+bed-LK?0}|5W$Gi8Qd+xd4z26%#USbeWP&U$r-LSn% zxac~rx4Bp;6zd@&rff%Jxms{ScICZOXt0!gBbX0!D3v_-tqT<*#G=rz`f-k^XDW!|ZG(ZEMv zaXodL%#P3QGVXOKuC>kPSA1iApLT%n_~C1R-r3XY|Aj*w;Ww3kaEuei)4#gT{QR8p zg8!<|XmvjDK^s@qM;u9{>SS^j0q!v$1w9&*{VgXQpT!9t&&G# z$;>Y^tk5LhsxM(c6bRBkr_IyWXjxjMLKlBamlBk`a&bXgbO@qah$^{?FJxk$VdfSH zA_V!UWG@J2BuhxfNjaIMi^@0!**1_?W#-yowGHGREy=P9cux^#3T9HClEp(7;xZ{B b500fX@wBWe+E20REo;&$we#_3 Maintainer: Kevin Gallagher @@ -20,7 +21,7 @@ PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ============================================================================ @@ -840,8 +841,8 @@ G-C-\: Split Window | FNDNXT | Yank | CUT | ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: diff --git a/etc/emacs-buffer.gdb b/etc/emacs-buffer.gdb new file mode 100644 index 00000000000..c4f8eef481d --- /dev/null +++ b/etc/emacs-buffer.gdb @@ -0,0 +1,270 @@ +# emacs-buffer.gdb --- gdb macros for recovering buffers from emacs coredumps + +# Copyright (C) 2005 Free Software Foundation, Inc. + +# Maintainer: Noah Friedman +# Status: tested with Emacs 22 +# Created: 2005-04-28 + +# This file is part of GNU Emacs. +# +# GNU Emacs is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Emacs; see the file COPYING. If not, write to the +# Free Software Foundation, Inc.; 51 Franklin Street, Fifth Floor; +# Boston, MA 02110-1301, USA. + +# Commentary: + +# This is a set of gdb macros for recovering the contents of buffers from +# an Emacs coredump; they may not always be file-backed or have a recent +# autosave. +# +# The Emacs executable must have debugging symbols for this to work. But +# you never strip Emacs, right? Right! +# +# The main commands of interest are `ybuffer-list', `yfile-buffers', +# `ysave-buffer', and `ybuffer-contents'. The `y' prefix avoids any +# namespace collisions with emacs/src/.gdbinit. + +# Example usage: +# +# $ gdb /export/src/emacs/2005-05-02--03-17/src/emacs core.emacs.6.9845 +# Current directory is /u/noah/ +# GNU gdb (6.1post-1.20040607.43rh) +# ... +# #0 0x400007a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 +# (gdb) source emacs-buffer.gdb +# (gdb) ybuffer-list +# B# M Size Name Mode File +# -- - ---- ---- ---- ---- +# 0 * 556 mail to emacs-devel@gnu.org Mail +# 1 * 0 *Minibuf-1* Fundamental +# 2 145769 ChangeLog Change Log /u/noah/lib/elisp/noahf/ChangeLog +# 3 6619 ascii-table.el Elisp /u/noah/lib/elisp/noahf/ascii-table.el +# 4 * 48396 *Messages* Fundamental +# 5 3191 *Apropos* Apropos +# 6 17642 init-21.el Elisp /u/noah/etc/init/emacs/init-21.el +# 7 333 cpuid.c C /u/noah/cpuid.c +# 8 230 src Dired +# 9 218 noah Dired +# 10 * 21 *Echo Area 0* Fundamental +# 11 * 0 *Echo Area 1* Fundamental +# 12 319952 *bbdb data* Text /u/noah/.bbdb +# (gdb) ysave-buffer 0 mail.save +# [Wrote buffer "mail to emacs-devel@gnu.org" to file mail.save] +# (gdb) quit +# $ ls -l mail.save +# -rw-rw-rw- 1 noah user 556 May 2 04:05 mail.save +# $ + +# Code: + +# Force loading of symbols, enough to give us gdb_valbits etc. +set main + +# When nonzero, display some extra diagnostics in various commands +set $yverbose = 1 +set $yfile_buffers_only = 0 + +set $tagmask = (((long)1 << gdb_gctypebits) - 1) +set $valmask = gdb_use_lsb ? ~($tagmask) : ((long)1 << gdb_valbits) - 1 + +define ygetptr + set $ptr = $arg0 + set $ptr = (gdb_use_union ? $ptr.u.val : $ptr & $valmask) | gdb_data_seg_bits +end + +define ybuffer-list + set $files_only = $yfile_buffers_only + set $yfile_buffers_only = 0 + + if $yverbose + printf "B# M Size Name Mode File\n" + printf "-- - ---- ---- ---- ----\n" + end + + set $i = 0 + set $alist = Vbuffer_alist + while $alist != Qnil + ygetptr $alist + set $this = ((struct Lisp_Cons *) $ptr)->car + set $alist = ((struct Lisp_Cons *) $ptr)->cdr + + # Vbuffer_alist elts are pairs of the form (name . buffer) + ygetptr $this + set $buf = ((struct Lisp_Cons *) $ptr)->cdr + ygetptr $buf + set $buf = (struct buffer *) $ptr + + if ! ($files_only && $buf->filename == Qnil) + ygetptr $buf->name + set $name = ((struct Lisp_String *) $ptr)->data + set $modp = ($buf->text->modiff > $buf->text->save_modiff) ? '*' : ' ' + + ygetptr $buf->mode_name + set $mode = ((struct Lisp_String *) $ptr)->data + + if $buf->filename != Qnil + ygetptr $buf->filename + printf "%2d %c %9d %-20s %-10s %s\n", \ + $i, $modp, ($buf->text->z_byte - 1), $name, $mode, \ + ((struct Lisp_String *) $ptr)->data + else + printf "%2d %c %9d %-20s %-10s\n", \ + $i, $modp, ($buf->text->z_byte - 1), $name, $mode + end + end + + set $i++ + end +end +document ybuffer-list + Display a list of buffer names, sizes, and other attributes. + The buffer number in the first column is used as an argument + to some other emacs-buffer recovery commands, e.g. `ysave-buffer'. +end + +define yfile-buffers + set $yfile_buffers_only = 1 + ybuffer-list +end +document yfile-buffers + Display a list of buffers which are associated with files. + This is like `ybuffer-list', but only buffers that were visiting files + are displayed. +end + +define yset-buffer + set $i = $arg0 + + set $alist = Vbuffer_alist + while ($alist != Qnil && $i > 0) + ygetptr $alist + set $alist = ((struct Lisp_Cons *) $ptr)->cdr + set $i-- + end + + # Get car of alist; this is a pair (name . buffer) + ygetptr $alist + set $this = ((struct Lisp_Cons *) $ptr)->car + + # Get the buffer object + ygetptr $this + set $this = ((struct Lisp_Cons *) $ptr)->cdr + + ygetptr $this + set $ycurrent_buffer = (struct buffer *) $ptr +end +document yset-buffer + Set current buffer (for other emacs-buffer recovery commands) to the ARG'th + buffer as displayed by `ybuffer-list'. +end + +define yget-buffer-pointers + yset-buffer $arg0 + set $buf = $ycurrent_buffer->text + + set $beg = $buf->beg + set $gap = $beg + $buf->gpt_byte + set $gap_end = $gap + $buf->gap_size - 1 + set $end = $gap_end + ($buf->z_byte - $buf->gpt_byte) + + set $modp = $buf->modiff > $buf->save_modiff + + #print *$beg@($gap - $beg) + #print *$gap_end@($end - $gap_end) +end +document yget-buffer-pointers + Update convenience variables with address pointers for the ARG'th buffer + as displayed by `ybuffer-list'. + + This also sets the current buffer using `yset-buffer' (which see). +end + +define yget-current-buffer-name + set $this = $ycurrent_buffer->name + ygetptr $this + set $ycurrent_buffer_name = ((struct Lisp_String *) $ptr)->data +end +document yget-current-buffer-name + Set $ycurrent_buffer_name to the name of the currently selected buffer. +end + +define ycurrent-buffer + yget-current-buffer-name + printf "%s\n", $ycurrent_buffer_name +end +document ycurrent-buffer + Display the currently selected buffer. +end + +define ydump-buffer + yget-buffer-pointers $arg0 + if $buf->z_byte > 1 + if $buf->z_byte <= $buf->gpt_byte + set $endptr = $beg + $buf->gpt_byte - 1 + dump binary memory $arg1 $beg $endptr + else + dump binary memory $arg1 $beg $gap-1 + append binary memory $arg1 $gap_end $end + set $endptr = $end + end + end +end +document ydump-buffer + Write contents of buffer N (as numbered according to `ybuffer-list') to + file FILE. + + This is mainly used as an internal subroutine for `ysave-buffer' and + `ybuffer-contents', which see. +end + +define ysave-buffer + ydump-buffer $arg0 $arg1 + if $yverbose + yget-current-buffer-name + if $buf->z_byte <= 1 + printf "[Buffer \"%s\" is empty.]\n", $ycurrent_buffer_name + else + # Output string broken into separate calls as necessary to avoid + # requiring a running process for evaluation. + printf "[Wrote buffer \"%s\" to file ", $ycurrent_buffer_name + echo $arg1]\n + end + end +end +document ysave-buffer + Save contents of buffer N (as numbered according to `ybuffer-list') to + file FILE. +end + +define ybuffer-contents + ydump-buffer $arg0 /dev/stdout + if $yverbose && $buf->z_byte <= 1 + yget-current-buffer-name + printf "[Buffer \"%s\" is empty.]\n", $ycurrent_buffer_name + else + if *($endptr-1) != '\n' + echo \n + end + end +end +document ybuffer-contents + Write contents of buffer N (numbered according to `ybuffer-list') to stdout. +end + +# local variables: +# mode: gdb-script +# end: + +# arch-tag: 02087f62-2663-4868-977a-1fbb2fc2e7ef diff --git a/etc/emacs.1 b/etc/emacs.1 index 37d0c4b6480..1c9707243d9 100644 --- a/etc/emacs.1 +++ b/etc/emacs.1 @@ -1,4 +1,5 @@ -.\" Copyright (C) 1995, 1999, 2000, 2001 Free Software Foundation, Inc. +.\" Copyright (C) 1995, 1999, 2000, 2001, 2002, 2003, 2004, +.\" 2005 Free Software Foundation, Inc. .\" .\" This file is part of GNU Emacs. .\" @@ -14,8 +15,8 @@ .\" .\" You should have received a copy of the GNU General Public License .\" along with GNU Emacs; see the file COPYING. If not, write to the -.\" Free Software Foundation, Inc., 59 Temple Place - Suite 330, -.\" Boston, MA 02111-1307, USA. +.\" Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +.\" Boston, MA 02110-1301, USA. .\" '\" t .TH EMACS 1 "2001 November 23" @@ -99,7 +100,7 @@ Edit Go to the line specified by .I number (do not insert a space between the "+" sign and -the number). +the number). This applies only to the next file specified. .TP .BI \+ line:column Go to the specified @@ -535,7 +536,7 @@ Joachim Martillo and Robert Krawitz added the X features. Copyright .if t \(co .if n (c) -1995, 1999, 2000, 2001 Free Software Foundation, Inc. +1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are @@ -550,3 +551,5 @@ Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. + +.\" arch-tag: 04dfd376-b46e-4924-919a-cecc3b257eaa diff --git a/etc/emacs.bash b/etc/emacs.bash index 5648a0b1952..c482e82b361 100644 --- a/etc/emacs.bash +++ b/etc/emacs.bash @@ -22,7 +22,7 @@ function edit () if [ -n "${windowsys:+set}" ]; then # Do not just test if these files are sockets. On some systems # ordinary files or fifos are used instead. Just see if they exist. - if [ -e "${HOME}/.emacs_server" -o -e "/tmp/esrv${UID}-"* ]; then + if [ -e "${HOME}/.emacs_server" -o -e "/tmp/emacs${UID}/server" ]; then emacsclient "$@" return $? else @@ -43,3 +43,4 @@ function edit () } +# arch-tag: 1e1b74b9-bf2c-4b23-870f-9eebff7515cb diff --git a/etc/emacs.csh b/etc/emacs.csh index f25404ef86b..411feedaef5 100644 --- a/etc/emacs.csh +++ b/etc/emacs.csh @@ -23,3 +23,5 @@ alias edit 'set emacs_command=("emacs -nw \!*" "fg %emacs" "emacs -i \!* &"\ @ whichjob = 1 + $isjob + $?DISPLAY * 2 + $?WINDOW_PARENT * 4; \ test -S ~/.emacs_server && emacsclient \!* \ || echo `pwd` \!* >! ~/.emacs_args && eval $emacs_command[$whichjob]' + +# arch-tag: 433d58df-15b9-446f-ad37-f0393e3a23d4 diff --git a/etc/emacs.py b/etc/emacs.py new file mode 100644 index 00000000000..fcb55a0a205 --- /dev/null +++ b/etc/emacs.py @@ -0,0 +1,112 @@ +"""Definitions used by commands sent to inferior Python in python.el.""" + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# Author: Dave Love + +# This file is part of GNU Emacs. + +# GNU Emacs is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GNU Emacs; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +import os, sys, traceback, inspect, rlcompleter, __main__ + +__all__ = ["eexecfile", "args", "complete", "ehelp", "eimport"] + +def eexecfile (file): + """Execute FILE and then remove it. + If we get an exception, print a traceback with the top frame + (oursleves) excluded.""" + try: + try: execfile (file, globals (), globals ()) + except: + (type, value, tb) = sys.exc_info () + # Lose the stack frame for this location. + tb = tb.tb_next + if tb is None: # print_exception won't do it + print "Traceback (most recent call last):" + traceback.print_exception (type, value, tb) + finally: + os.remove (file) + +def eargs (name): + "Get arglist of NAME for Eldoc &c." + try: + parts = name.split ('.') + if len (parts) > 1: + exec 'import ' + parts[0] # might fail + func = eval (name) + if inspect.isbuiltin (func): + doc = func.__doc__ + if doc.find (' ->') != -1: + print '_emacs_out', doc.split (' ->')[0] + elif doc.find ('\n') != -1: + print '_emacs_out', doc.split ('\n')[0] + return + if inspect.ismethod (func): + func = func.im_func + if not inspect.isfunction (func): + return + (args, varargs, varkw, defaults) = inspect.getargspec (func) + # No space between name and arglist for consistency with builtins. + print '_emacs_out', \ + func.__name__ + inspect.formatargspec (args, varargs, varkw, + defaults) + except: pass + +def complete (text, namespace = None): + """Complete TEXT in NAMESPACE and print a Lisp list of completions. + NAMESPACE is currently not used.""" + if namespace is None: namespace = __main__.__dict__ + c = rlcompleter.Completer (namespace) + try: + if '.' in text: + matches = c.attr_matches (text) + else: + matches = c.global_matches (text) + print '_emacs_out (', + for elt in matches: + print '"%s"' % elt, + print ')' + except: + print '_emacs_out ()' + +def ehelp (name, g, l): + """Get help on string NAME using globals G and locals L. + First try to eval name for, e.g. user definitions where we need + the object. Otherwise try the string form.""" + try: help (eval (name, g, l)) + except: help (name) + +def eimport (mod, dir): + """Import module MOD with directory DIR at the head of the search path. + NB doesn't load from DIR if MOD shadows a system module.""" + path0 = sys.path[0] + sys.path[0] = dir + try: + try: + if globals().has_key(mod) and inspect.ismodule (eval (mod)): + reload(eval (mod)) + else: + globals ()[mod] = __import__ (mod) + except: + (type, value, tb) = sys.exc_info () + print "Traceback (most recent call last):" + traceback.print_exception (type, value, tb.tb_next) + finally: + sys.path[0] = path0 + +print '_emacs_ok' # ready for input and can call continuation + +# arch-tag: d90408f3-90e2-4de4-99c2-6eb9c7b9ca46 diff --git a/etc/emacsclient.1 b/etc/emacsclient.1 index 5f52846b2f2..bd641c9fc68 100644 --- a/etc/emacsclient.1 +++ b/etc/emacsclient.1 @@ -9,28 +9,30 @@ emacsclient \- tells a running Emacs to visit a file .SH "DESCRIPTION" This manual page documents briefly the .BR emacsclient -command. -This manual page was written for the Debian GNU/Linux distribution -because the original program does not have a manual page. -Instead, it has documentation in the GNU Info format; see below. +command. Full documentation is available in the GNU Info format; see +below. +This manual page was originally written for the Debian GNU/Linux +distribution, but is not specific to that system. .PP -.B emacsclient -works in conjunction with the built-in server of Emacs. -.PP -You typically do not call .B emacsclient -directly. Instead, you set the environment variable EDITOR -to +works in conjunction with the built-in Emacs server. +.PP +You can either call .B emacsclient -and let programs like 'vipw' or 'bug' or anything run -it for you, which will use an existing Emacs to visit the file. +directly or let other programs run it for you when necessary. On +GNU and Unix systems many programs consult the environment +variable EDITOR (sometimes also VISUAL) to obtain the command used for +editing. Thus, setting this environment variable to 'emacsclient' +will allow these programs to use an already running Emacs for editing. +Other operating systems might have their own methods for defining the +default editor. For -.B emacsclient -to work, you need an already running Emacs with a server. Within Emacs, call +.B emacsclient +to work, you need an already running Emacs with a server. Within Emacs, call the function `server-start'. (Your `.emacs' file can do this automatically if you -add the expression `(server-start)' to it.) +add the expression `(server-start)' to it.) When you've finished editing the buffer, type `C-x #' (`server-edit'). This saves the file and sends a message back to the @@ -54,25 +56,29 @@ immediately without waiting for you to "finish" the buffer in Emacs. do not visit files but instead evaluate the arguments as Emacs Lisp expressions. .TP +.B \-s, \-\-socket-name=FILENAME +Use socket named FILENAME for communication. +.TP .B \-a, \-\-alternate-editor=EDITOR if the Emacs server is not running, run the specified editor instead. This can also be specified via the `ALTERNATE_EDITOR' environment variable. .TP .B \-d, \-\-display=DISPLAY tell the server to display the files on the given display. +.TP +.B \-V, \-\-version +print version information and exit +.TP +.B \-h, \-\-help +print this usage information message and exit .SH "SEE ALSO" The program is documented fully in .IR "Using Emacs as a Server" available via the Info system. -.SH BUGS -If there is no running Emacs server, -.B emacsclient -cannot launch one. I use a small Perl script instead of raw -.B emacsclient -to do it (it works only with systems which have BSD sockets, which is fine -for Debian GNU/Linux). .SH AUTHOR This manual page was written by Stephane Bortzmeyer , for the Debian GNU/Linux system (but may be used by others). .SH COPYING This manual page is in the public domain. + +.\" arch-tag: 2b35e723-b197-4073-8752-231bc8b3d3f3 diff --git a/etc/emacstool.1 b/etc/emacstool.1 index b302fc703af..7f3200a0700 100644 --- a/etc/emacstool.1 +++ b/etc/emacstool.1 @@ -136,7 +136,7 @@ emacs(1) Copyright .if t \(co .if n (c) -2001 Free Software Foundation, Inc. +2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are @@ -151,3 +151,5 @@ Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. + +.\" arch-tag: a1f44815-5163-4026-89c1-4404e4b81d37 diff --git a/etc/enriched.doc b/etc/enriched.doc index ff57087c989..122652f005a 100644 --- a/etc/enriched.doc +++ b/etc/enriched.doc @@ -98,8 +98,8 @@ direct request, such as using the return key or the C-o The fill functions also understand margins, which can be set for any region of a document. In addition to the menu items, which increase or decrease the margins, there are two commands for -setting the margins absolutely: C-c C-l (set-left-margin) and C-c -C-r (set-right-margin). +setting the margins absolutely: C-c [ (set-left-margin) and C-c +] (set-right-margin). You can change indentation at any point in a paragraph, which @@ -196,11 +196,11 @@ FTP or email may be obtained by sending an email message to enriched-verbose. - You can add annotations for your own text properties by making -additions to enriched-annotation-alist. Note that the -standard requires you to name your annotation starting "x-" -(as in "x-read-only"). Please send me any such additions that -you think might be of general interest so that I can include -them in the distribution. +additions to enriched-translations. Note that the standard +requires you to name your annotation starting "x-" (as in +"x-read-only"). Please send me any such additions that you +think might be of general interest so that I can include them +in the distribution. diff --git a/etc/etags.1 b/etc/etags.1 index 0d08f8df956..ad049066577 100644 --- a/etc/etags.1 +++ b/etc/etags.1 @@ -1,4 +1,5 @@ -.\" Copyright (c) 1992, 2001 Free Software Foundation +.\" Copyright (C) 1992, 2001, 2002, 2003, 2004, +.\" 2005 Free Software Foundation, Inc. .\" See section COPYING for conditions for redistribution .TH etags 1 "23nov2001" "GNU Tools" "GNU Tools" .de BP @@ -50,7 +51,7 @@ format understood by .BR vi ( 1 )\c \&. Both forms of the program understand the syntax of C, Objective C, C++, Java, Fortran, Ada, Cobol, Erlang, HTML, -LaTeX, Emacs Lisp/Common Lisp, makefiles, Pascal, Perl, PHP, Postscript, +LaTeX, Emacs Lisp/Common Lisp, Lua, makefile, Pascal, Perl, PHP, Postscript, Python, Prolog, Scheme and most assembler\-like syntaxes. Both forms read the files specified on the command line, and write a tag @@ -58,7 +59,9 @@ table (defaults: \fBTAGS\fP for \fBetags\fP, \fBtags\fP for \fBctags\fP) in the current working directory. Files specified with relative file names will be recorded in the tag table with file names relative to the directory where the tag table -resides. Files specified with absolute file names will be recorded +resides. If the tag table is in /dev, however, the file names are made +relative to the working directory. Files specified with absolute file +names will be recorded with absolute file names. Files generated from a source file\-\-like a C file generated from a source Cweb file\-\-will be recorded with the name of the source file. @@ -90,28 +93,31 @@ and create tags for extern variables unless \-\-no\-globals is used. .TP .B \-d, \-\-defines Create tag entries for C preprocessor constant definitions -and enum constants, too. This is the -default behavior for \fBetags\fP. +and enum constants, too. Since this is the default behavior of +\fBetags\fP, only \fBctags\fP accepts this option. .TP .B \-D, \-\-no\-defines Do not create tag entries for C preprocessor constant definitions and enum constants. This may make the tags file much smaller if many header files are tagged. -This is the default behavior for \fBctags\fP. +Since this is the default behavior of \fBctags\fP, only \fBetags\fP +accepts this option. .TP -.B \-g, \-\-globals +.B \-\-globals Create tag entries for global variables in C, C++, Objective C, Java, and Perl. -This is the default behavior for \fBetags\fP. +Since this is the default behavior of \fBetags\fP, only \fBctags\fP +accepts this option. .TP -.B \-G, \-\-no\-globals +.B \-\-no\-globals Do not tag global variables. Typically this reduces the file size by -one fourth. This is the default behavior for \fBctags\fP. +one fourth. Since this is the default behavior of \fBctags\fP, only +\fBetags\fP accepts this option. .TP \fB\-i\fP \fIfile\fP, \fB\-\-include=\fIfile\fP Include a note in the tag file indicating that, when searching for a tag, one should also consult the tags file \fIfile\fP after checking the -current file. This options is only accepted by \fBetags\fP. +current file. Only \fBetags\fP accepts this option. .TP .B \-I, \-\-ignore\-indentation Don't rely on indentation as much as we normally do. Currently, this @@ -266,7 +272,8 @@ Instead of generating a tag file, write a cross reference (in \fBcxref\fP format) to standard output. Only \fBctags\fP accepts this option. .TP .B \-h, \-H, \-\-help -Print usage information. +Print usage information. Followed by one or more \-\-language=LANG +prints detailed information about how tags are created for LANG. .TP .B \-V, \-\-version Print the current version of the program (same as the version of the @@ -285,7 +292,7 @@ Stallman. Copyright .if t \(co .if n (c) -1999, 2001 Free Software Foundation, Inc. +1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are @@ -300,3 +307,5 @@ Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. + +.\" arch-tag: 9534977f-af78-42f0-991d-1df6b6c05573 diff --git a/etc/fr-drdref.tex b/etc/fr-drdref.tex index 2a5e549eb84..e64fe9574a5 100644 --- a/etc/fr-drdref.tex +++ b/etc/fr-drdref.tex @@ -1,6 +1,6 @@ % Reference Card for Dired -% Copyright (C) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -16,8 +16,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file can be printed with 1, 2, or 3 columns per page (see below). % Specify how many you want here. Nothing else needs to be changed. @@ -41,7 +41,7 @@ \def\versionnumber{0.1} -\def\year{2000} +\def\year{2005} \def\version{Mai \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill @@ -61,7 +61,7 @@ la notice de copyright et cette note de permission soient pr\'eserv\'ees sur toutes les copies. Pour obtenir des copies du manuel de GNU Emacs, \'ecrivez \`a la Free Software -Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. \endgroup} @@ -409,3 +409,4 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \bye +% arch-tag: ffe6a489-24a2-4083-b8c3-5d03b621689d diff --git a/etc/fr-refcard.tex b/etc/fr-refcard.tex index d4b4fdf372a..bff17c6d625 100644 --- a/etc/fr-refcard.tex +++ b/etc/fr-refcard.tex @@ -8,7 +8,8 @@ \columnsperpage=1 -% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -24,8 +25,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file is intended to be processed by plain TeX (TeX82). % @@ -53,7 +54,7 @@ % If there were room, it would be nice to see a section on Dired. \def\versionnumber{2.2} -\def\year{1997} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. @@ -64,14 +65,14 @@ \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} \centerline{v\versionnumber{} pour GNU Emacs version 21, Juin \year} \centerline{conception de Stephen Gildea} -\centerline{traduction francaise d'\'Eric Jacoboni} +\centerline{traduction fran\c{c}aise d'\'Eric Jacoboni} Vous pouvez faire et distribuer des copies de cette carte, pourvu que la note de copyright et cette note de permission soient conserv\'ees sur toutes les copies. -Pour les copies du manuel GNU Emacs, \'ecrivez À la Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +Pour les copies du manuel GNU Emacs, \'ecrivez \`a la Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \endgroup} @@ -260,9 +261,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \section{Lancement d'Emacs} -Pour lancer GNU Emacs 20, il suffit de taper son nom : \kbd{emacs} +Pour lancer GNU Emacs 21, il suffit de taper son nom : \kbd{emacs} -Pour charger un fichier À \'editer, voir Fichiers, ci-dessous. +Pour charger un fichier \`a \'editer, voir Fichiers, ci-dessous. \section{Quitter Emacs} @@ -277,7 +278,7 @@ Pour charger un fichier \key{{\bf ins\'erer} le contenu d'un autre fichier dans ce tampon}{C-x i} \key{remplacer ce fichier par le fichier voulu}{C-x C-v} \key{\'ecrire le tampon dans un fichier donn\'e}{C-x C-w} -\key{contrÔle de version}{C-x C-q} +\key{contr\^ole de version}{C-x C-q} \section{Obtenir de l'aide} @@ -324,21 +325,21 @@ qui n'a pas \'et\'e fait. \section{D\'eplacements} \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{{\bf entity to move over}}{{\bf backward}}{{\bf forward}} +\threecol{{\bf entit\'e sur laquelle se d\'eplacer}}{{\bf en arri\`ere}}{{\bf en avant}} \threecol{caract\`ere}{C-b}{C-f} \threecol{mot}{M-b}{M-f} \threecol{ligne}{C-p}{C-n} -\threecol{aller au d\'ebut (ou À la fin) de la ligne}{C-a}{C-e} +\threecol{aller au d\'ebut (ou \`a la fin) de la ligne}{C-a}{C-e} \threecol{phrase}{M-a}{M-e} \threecol{paragraphe}{M-\{}{M-\}} \threecol{page}{C-x [}{C-x ]} \threecol{s-expression}{C-M-b}{C-M-f} \threecol{fonction}{C-M-a}{C-M-e} -\threecol{aller au d\'ebut (ou À la fin) du tampon}{M-<}{M->} +\threecol{aller au d\'ebut (ou \`a la fin) du tampon}{M-<}{M->} } -\key{passer À l'\'ecran suivant}{C-v} -\key{passer À l'\'ecran pr\'ec\'edent}{M-v} +\key{passer \`a l'\'ecran suivant}{C-v} +\key{passer \`a l'\'ecran pr\'ec\'edent}{M-v} \key{d\'efiler l'\'ecran vers la droite}{C-x <} \key{d\'efiler l'\'ecran vers la gauche}{C-x >} \key{placer la ligne courante au centre de l'\'ecran}{C-u C-l} @@ -346,17 +347,17 @@ qui n'a pas \'et\'e fait. \section{D\'etruire et supprimer} \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{{\bf entity to kill}}{{\bf backward}}{{\bf forward}} +\threecol{{\bf entit\'e \`a supprimer}}{{\bf en arri\`ere}}{{\bf en avant}} \threecol{caract\`ere (suppression, pas destruction)}{DEL}{C-d} \threecol{mot}{M-DEL}{M-d} -\threecol{ligne (jusqu'À la fin)}{M-0 C-k}{C-k} +\threecol{ligne (jusqu'\`a la fin)}{M-0 C-k}{C-k} \threecol{phrase}{C-x DEL}{M-k} \threecol{s-expression}{M-- C-M-k}{C-M-k} } \key{d\'etruire une {\bf r\'egion}}{C-w} \key{copier une r\'egion dans le kill ring}{M-w} -\key{d\'etruire jusqu'À l'occurrence suivante de {\it car}}{M-z {\it car}} +\key{d\'etruire jusqu'\`a l'occurrence suivante de {\it car}}{M-z {\it car}} \key{r\'ecup\'erer la derni\`ere chose d\'etruite}{C-y} \key{remplacer la derni\`ere r\'ecup\'eration par ce qui a \'et\'e d\'etruit avant}{M-y} @@ -380,11 +381,11 @@ qui n'a pas \'et\'e fait. Les r\'eponses admises dans le mode de remplacement interactif sont : -\key{{\bf remplacer} celle-lÀ, passer À la suivante}{SPC} -\key{remplacer celle-lÀ, rester lÀ}{,} -\key{{\bf passer} À la suivante sans remplacer}{DEL} +\key{{\bf remplacer} celle-l\`a, passer \`a la suivante}{SPC} +\key{remplacer celle-l\`a, rester l\`a}{,} +\key{{\bf passer} \`a la suivante sans remplacer}{DEL} \key{remplacer toutes les correspondances suivantes}{!} -\key{{\bf revenir} À la correspondance pr\'ec\'edente}{^} +\key{{\bf revenir} \`a la correspondance pr\'ec\'edente}{^} \key{{\bf sortir} du remplacement interactif}{RET} \key{entrer dans l'\'edition r\'ecursive (\kbd{C-M-c} pour sortir)}{C-r} @@ -405,7 +406,7 @@ Lorsqu'il y a deux commandes, la seconde est pour l'"autre cadre". {\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr -\threecol{switch cursor to another window}{C-x o}{C-x 5 o} +\threecol{placer le curseur dans une autre fen\^etre}{C-x o}{C-x 5 o} \threecol{s\'electionner le tampon dans l'autre fen\^etre}{C-x 4 b}{C-x 5 b} \threecol{afficher le tampon dans l'autre fen\^etre}{C-x 4 C-o}{C-x 5 C-o} @@ -429,9 +430,9 @@ Lorsqu'il y a deux commandes, la seconde est pour l'"autre cadre". \key{ins\'erer un newline apr\`es le point}{C-o} \key{d\'eplacer le reste de la ligne vers le bas}{C-M-o} \key{supprimer les lignes blanches autour du point}{C-x C-o} -\key{joindre la ligne À la pr\'ec\'edente (À la suivant avec arg)}{M-^} +\key{joindre la ligne \`a la pr\'ec\'edente (\`a la suivante avec arg)}{M-^} \key{supprimer tous les espaces autour du point}{M-\\} -\key{mettre exactement un espace À l'emplacement du point}{M-SPC} +\key{mettre exactement un espace \`a l'emplacement du point}{M-SPC} \key{remplir le paragraphe}{M-q} \key{placer la marge droite}{C-x f} @@ -454,11 +455,11 @@ Les touches suivantes sont utilisables dans le mini-tampon : \key{compl\'eter autant que possible}{TAB} \key{compl\'eter un mot}{SPC} -\key{completer et ex\'ecuter}{RET} +\key{compl\'eter et ex\'ecuter}{RET} \key{montrer les compl\'etions possibles}{?} \key{rechercher l'entr\'ee pr\'ec\'edente du mini-tampon}{M-p} \key{rechercher l'entr\'ee suivante du mini-tampon ou le d\'efaut}{M-n} -\key{rechercher À rebours par expr. rationnelle dans l'historique}{M-r} +\key{rechercher \`a rebours par expr. rationnelle dans l'historique}{M-r} \key{rechercher vers l'avant par expr. rationnelle dans l'historique}{M-s} \key{annuler la commande}{C-g} @@ -511,7 +512,7 @@ menu utilisant le minitampon. \key{copier le rectangle dans le registre}{C-x r r} \key{d\'etruire le rectangle}{C-x r k} \key{r\'ecup\'erer le rectangle}{C-x r y} -\key{ouvrir le rectangle, en d\'ecalant le texte À droite}{C-x r o} +\key{ouvrir le rectangle, en d\'ecalant le texte \`a droite}{C-x r o} \key{vider le rectangle}{C-x r c} \key{pr\'efixer chaque ligne avec une cha\^\i{}ne}{C-x r t} @@ -545,7 +546,7 @@ menu utilisant le minitampon. \threecol{tampon}{\\`}{\\'} \threecol{{\bf classe de caract\`ere}}{{\bf correspond}}{{\bf correspond - À d'autres}} + \`a d'autres}} \threecol{ensemble explicite}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]} \threecol{caract\`ere de mot}{\\w}{\\W} \threecol{caract\`ere avec la syntaxe {\it c}}{\\s{\it c}}{\\S{\it c}} @@ -605,8 +606,8 @@ Autres : \key{{\bf lancer} la d\'efinition d'une macro clavier}{C-x (} \key{{\bf terminer} la d\'efinition d'une macro clavier}{C-x )} \key{{\bf ex\'ecuter} la derni\`ere macro clavier d\'efinie}{C-x e} -\key{ajouter À la derni\`ere macro clavier}{C-u C-x (} -\metax{donner un nom À la derni\`ere macro clavier}{M-x name-last-kbd-macro} +\key{ajouter \`a la derni\`ere macro clavier}{C-u C-x (} +\metax{donner un nom \`a la derni\`ere macro clavier}{M-x name-last-kbd-macro} \metax{ins\'erer une d\'efinition Lisp dans le tampon}{M-x insert-kbd-macro} \section{Commandes de gestion d'Emacs Lisp} @@ -615,7 +616,7 @@ Autres : \key{\'evaluer la {\bf defun} courante}{C-M-x} \metax{\'evaluer la {\bf r\'egion}}{M-x eval-region} \key{lire et \'evaluer le mini-tampon}{M-:} -\metax{charger À partir du r\'epertoire syst\`eme standard}{M-x load-library} +\metax{charger \`a partir du r\'epertoire syst\`eme standard}{M-x load-library} \section{Personnalisation simple} @@ -662,3 +663,5 @@ plus de pr\'ecisions. % Local variables: % compile-command: "tex fr-refcard" % End: + +% arch-tag: 39d6dc6e-1a4a-4071-84db-4719d4e9e40d diff --git a/etc/fr-survival.tex b/etc/fr-survival.tex index a53f06b6a85..e73db5352a5 100644 --- a/etc/fr-survival.tex +++ b/etc/fr-survival.tex @@ -3,9 +3,6 @@ % Title: GNU Emacs Survival Card % Author: Wlodek Bzyl % -% $Revision: 1.1 $ -% $Date: 2001/11/18 18:33:57 $ -% %**start of header % User interface is `plain.tex' and macros described below @@ -25,7 +22,7 @@ \endinput \fi -% Copyright (c) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -41,13 +38,13 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % Translated to french by \'Eric Jacoboni in November 2001 \def\versionnumber{1.0} -\def\year{2000} +\def\year{2005} \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter @@ -415,3 +412,5 @@ contient entre parenth\`eses le nom des modes en cours. % Local variables: % compile-command: "tex survival" % End: + +% arch-tag: 2fb4e93f-8bfa-4ab4-bc6d-b475131d766a diff --git a/etc/gfdl.1 b/etc/gfdl.1 index 68aa0715f3a..af660f67787 100644 --- a/etc/gfdl.1 +++ b/etc/gfdl.1 @@ -1,18 +1,17 @@ -.TH GFDL 1 "2001 April 23" -.UC 4 +.TH GFDL 1 "2005 September 17" .SH NAME GFDL \- The GNU Free Documentation License .ce -Version 1.1, March 2000 +Version 1.2, November 2002 .hy 0 .na Copyright .if t \(co .if n (c) -2000 Free Software Foundation, Inc. -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -23,12 +22,12 @@ of this license document, but changing it is not allowed. .SH 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone -the effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get -credit for their work, while not being considered responsible for -modifications made by others. +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It @@ -45,11 +44,15 @@ principally for works whose purpose is instruction or reference. .SH 1. APPLICABILITY AND DEFINITIONS -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you." +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with @@ -59,7 +62,7 @@ A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a +within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, @@ -68,33 +71,40 @@ them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the -general public, whose contents can be viewed and edited directly and +general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file -format whose markup has been designed to thwart or discourage -subsequent modification by readers is not Transparent. A copy that is -not "Transparent" is called "Opaque." +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple -HTML designed for human modification. Opaque formats include -PostScript, PDF, proprietary formats that can be read and edited only -by proprietary word processors, SGML or XML for which the DTD and/or +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the -machine-generated HTML produced by some word processors for output -purposes only. +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material @@ -103,6 +113,21 @@ formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + .SH 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either @@ -120,9 +145,10 @@ you may publicly display copies. .SH 3. COPYING IN QUANTITY -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must enclose -the copies in covers that carry, clearly and legibly, all these Cover +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present @@ -140,16 +166,15 @@ pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give @@ -165,17 +190,18 @@ and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: .TP A. -Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. +Use in the Title Page (and on the covers, if any) a title distinct from +that of the Document, and from those of previous versions (which should, +if there were any, be listed in the History section of the Document). +You may use the same title as a previous version if the original +publisher of that version gives permission. .TP B. List on the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has less than five). +responsible for authorship of the modifications in the Modified Version, +together with at least five of the principal authors of the Document +(all of its principal authors, if it has fewer than five), unless they +release you from this requirement. .TP C. State on the Title page the name of the publisher of the @@ -190,8 +216,8 @@ adjacent to the other copyright notices. .TP F. Include, immediately after the copyright notices, a license notice -giving the public permission to use the Modified Version under the -terms of this License, in the form shown in the Addendum below. +giving the public permission to use the Modified Version under the terms +of this License, in the form shown in the Addendum below. .TP G. Preserve in that license notice the full lists of Invariant Sections @@ -201,41 +227,44 @@ H. Include an unaltered copy of this License. .TP I. -Preserve the section entitled "History", and its title, and add to -it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If -there is no section entitled "History" in the Document, create one -stating the title, year, authors, and publisher of the Document as -given on its Title Page, then add an item describing the Modified -Version as stated in the previous sentence. +Preserve the section Entitled "History", Preserve its Title, and add to +it an item stating at least the title, year, new authors, and publisher +of the Modified Version as given on the Title Page. If there is no +section Entitled "History" in the Document, create one stating the +title, year, authors, and publisher of the Document as given on its +Title Page, then add an item describing the Modified Version as stated +in the previous sentence. .TP J. -Preserve the network location, if any, given in the Document for -public access to a Transparent copy of the Document, and likewise -the network locations given in the Document for previous versions -it was based on. These may be placed in the "History" section. -You may omit a network location for a work that was published at -least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. +Preserve the network location, if any, given in the Document for public +access to a Transparent copy of the Document, and likewise the network +locations given in the Document for previous versions it was based on. +These may be placed in the "History" section. You may omit a network +location for a work that was published at least four years before the +Document itself, or if the original publisher of the version it refers +to gives permission. .TP K. -In any section entitled "Acknowledgements" or "Dedications", -preserve the section's title, and preserve in the section all the -substance and tone of each of the contributor acknowledgements -and/or dedications given therein. +For any section Entitled "Acknowledgements" or "Dedications", Preserve +the Title of the section, and preserve in the section all the substance +and tone of each of the contributor acknowledgements and/or dedications +given therein. .TP L. -Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers -or the equivalent are not considered part of the section titles. +Preserve all the Invariant Sections of the Document, unaltered in their +text and in their titles. Section numbers or the equivalent are not +considered part of the section titles. .TP M. -Delete any section entitled "Endorsements." Such a section -may not be included in the Modified Version. +Delete any section Entitled "Endorsements". Such a section may not be +included in the Modified Version. .TP N. -Do not retitle any existing section as "Endorsements" -or to conflict in title with any Invariant Section. +Do not retitle any existing section to be Entitled "Endorsements" or to +conflict in title with any Invariant Section. +.TP +O. +Preserve any Warranty Disclaimers. .PP If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material @@ -244,7 +273,7 @@ of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. -You may add a section entitled "Endorsements", provided it contains +You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a @@ -271,7 +300,7 @@ License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its -license notice. +license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single @@ -282,11 +311,11 @@ author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. -In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications." You must delete all sections -entitled "Endorsements." +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". .SH 6. COLLECTIONS OF DOCUMENTS @@ -305,18 +334,20 @@ other respects regarding verbatim copying of that document. A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version -of the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they -are not themselves derivative works of the Document. +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. -Otherwise they must appear on covers around the whole aggregate. +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. .SH 8. TRANSLATION @@ -326,10 +357,17 @@ Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the -original English version of this License. In case of a disagreement -between the translation and the original English version of this -License, the original English version will prevail. +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. .SH 9. TERMINATION @@ -358,7 +396,6 @@ Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. - .SH ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of @@ -372,22 +409,32 @@ Copyright .if n (c) [\fIyear\fP] [\fIyour name\fP]. Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 +under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; -with the Invariant Sections being [\fIlist their titles\fP], with the -Front-Cover Texts being [\fIlist\fP], and with the Back-Cover Texts -being [\fIlist\fP]. +with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License." .ad .hy 1 -If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no -Front-Cover Texts, write "no Front-Cover Texts" instead of -"Front-Cover Texts being [\fIlist\fP]"; likewise for Back-Cover Texts. +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + +.hy 0 +.na + with the Invariant Sections being [\fILIST THEIR TITLES\fP], with the + Front-Cover Texts being [\fILIST\fP], and with the Back-Cover Texts being + [\fILIST\fP]. +.ad +.hy 1 + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. + +.\" arch-tag: 3a15de89-40c2-46b8-a9a2-0710357a9baa diff --git a/etc/gnus-logo.eps b/etc/gnus-logo.eps new file mode 100644 index 00000000000..95408ba9af6 --- /dev/null +++ b/etc/gnus-logo.eps @@ -0,0 +1,1055 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: gnuslogo1.ps +%%Creator: XV Version 3.00 Rev: 3/30/93 - by John Bradley +%%BoundingBox: 0 0 493 505 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define string to hold a scanline's worth of data +/pix 62 string def + +% lower left corner +0 0 translate + +% size of image (on paper, in 1/72inch coords) +493.0 505.0 scale + +% dimensions of data +493 505 1 + +% mapping matrix +[493 0 0 -505 0 505] + +{currentfile pix readhexstring pop} +image +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff01fffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff8003ffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff0000ffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff8000007ffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff0000003ffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffe0000000ffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff000000003fff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff000000000fff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffc0000000007ff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff80000000003ff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff00000000001ff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffe00000000000ff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffc00000000000ff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff8000000000007f8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff0000000000003f8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff0000000000003f8 +fffffffffffffffffffffffffff800ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffe0000000000001f8 +fffffffffffffffffffffffffff0001fffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0000000000000f8 +ffffffffffffffffffffffffffc00007ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0000000000000f8 +ffffffffffffffffffffffffff000001ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff8000000000000078 +fffffffffffffffffffffffffe0000003ffffffffffff0001fffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff0000000000000038 +fffffffffffffffffffffffffc0000001fffffffffffe00007ffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffe0000000000000038 +fffffffffffffffffffffffff800000007ffffffffff800001ffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffe0000000000000038 +fffffffffffffffffffffffff000000003fffffffffe0000003fffffffffffffffffffff +fffffffffffffffffffffffffffffffffffc0000000000000018 +ffffffffffffffffffffffffe000000001fffffffff80000000fffffffffffffffffffff +fffffffffffffffffffffffffffffffffffc0000000000000018 +ffffffffffffffffffffffffc000000000ffffffffe000000003ffffffffffffffffffff +fffffffffffffffffffffffffffffffffff80000000000000018 +ffffffffffffffffffffffff80000000007fffffff8000000000ffffffffffffffffffff +fffffffffffffffffffffffffffffffffff80000000000000008 +ffffffffffffffffffffffff00000000003fffffff00000000007fffffffffffffffffff +fffffffffffffffffffffffffffffffffff00000000000000008 +fffffffffffffffffffffffe00000000001ffffffe00000000001fffffffffffffffffff +fffffffffffffffffffffffffffffffffff00000000000000008 +fffffffffffffffffffffffc00000000000ffffff8000000000007ffffffffffffffffff +ffffffffffffffffffffffffffffffffffe00000000000000008 +fffffffffffffffffffffff8000000000007fffff0000000000007ffffffffffffffffff +ffffffffffffffffffffffffffffffffffe00000000000000008 +fffffffffffffffffffffff0000000000001ffffe0000000000000ffffffffffffffffff +ffffffffffffffffffffffffffffffffffc00000000000000000 +ffffffffffffffffffffffe0000000000000ffffc00000000000007fffffffffffffffff +ffffffffffffffffffffffffffffffffffc00000000000000000 +ffffffffffffffffffffffc00000000000007fff800000000000001fffffffffffffffff +ffffffffffffffffffffffffffffffffff800000000000000000 +ffffffffffffffffffffff800000000000003fff000000000000000fffffffffffffffff +ffffffffffffffffffffffffffffffffff800000000000000000 +ffffffffffffffffffffff000000000000003fff0000000000000007ffffffffffffffff +ffffffffffffffffffffffffffffffffff000040000000000000 +fffffffffffffffffffffe000000000000000ffe0000000000000001ffffffffffffffff +ffffffffffffffffffffffffffffffffff0007ffc00000000000 +fffffffffffffffffffffc000000000000000ffc0000000000000000ffffffffffffffff +fffffffffffffffffffffffffffffffffe001ffffc0000000000 +fffffffffffffffffffffc0000000000000007fc00000000000000007fffffffffffffff +fffffffffffffffffffffffffffffffffc003ffffe0000000000 +fffffffffffffffffffff80000000000000007f800000000000000003fffffffffffffff +fffffffffffffffffffffffffffffffffc007fffffc000000000 +fffffffffffffffffffff00000000000000001f000000000000000001fffffffffffffff +fffffffffffffffffffffffffffffffff800fffffff000000000 +ffffffffffffffffffffe00000000000000001f000000000000000000fffffffffffffff +fffffffffffffffffffffffffffffffff801fffffff800000000 +ffffffffffffffffffffc00000000000000000e0000000000000000007ffffffffffffff +fffffffffffffffffffffffffffffffff003ffffffff00000000 +ffffffffffffffffffff800000000000000000c0000000000000000003ffffffffffffff +fffffffffffffffffffffffffffffffff007ffffffff00000000 +ffffffffffffffffffff00000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffe00fffffffff80000000 +fffffffffffffffffffe00000000000000000000000000000000000000ffffffffffffff +ffffffffffffffffffffffffffffffffe01fffffffffc0000008 +fffffffffffffffffffc000000000000000000000000000000000000007fffffffffffff +ffffffffffffffffffffffffffffffffc03fffffffffc0000008 +fffffffffffffffffff8000000000000000000000000000000000000001fffffffffffff +ffffffffffffffffffffffffffffffffc07ffffffffff0000000 +fff9fffffffffffffff800000fe00000000000000000000000000000001fffffffffffff +ffffffffffffffffffffffffffffffff807ffffffffff0000000 +fff9fffffffffffffff000001ff80000000000000000000000000000000fffffffffffff +ffffffffffffffffffffffffffffffff80fffffffffff0000008 +fff0ffffffffffffffc000007ffc00000000000000000000000000000007ffffffffffff +ffffffffffffffffffffffffffffffff81fffffffffff8000008 +fff0ffffffffffffffc00000fffc00000000000000000000000000000003ffffffffffff +ffffffffffffffffffffffffffffffff01fffffffffff8000008 +ffe07fffffffffffff800001ffff00000000000000000000000000000001ffffffffffff +ffffffffffffffffffffffffffffffff03fffffffffffc000008 +ffe07fffffffffffff00000fffffc0000000000000000000000000000000ffffffffffff +fffffffffffffffffffffffffffffffe03fffffffffffc000008 +ffe03ffffffffffffc00001fffffe00000000000000000000000000000007fffffffffff +fffffffffffffffffffffffffffffffe07fffffffffffe000008 +ffe03ffffffffffff800003ffffff00000000000000000000000000000003fffffffffff +fffffffffffffffffffffffffffffffe07fffffffffffe000008 +ffc03ffffffffffff000007ffffff80000000000000f80000000000000003fffffffffff +fffffffffffffffffffffffffffffffe0ffffffffffffe000008 +ffc01fffffffffffe00001fffffffe000000000000fffe000000000000001fffffffffff +fffffffffffffffffffffffffffffffc0ffffffffffffe000008 +ffc00fffffffffffc00003ffffffff000000000001ffff800000000000000fffffffffff +fffffffffffffffffffffffffffffffc1fffffffffffff000008 +ff800fffffffffff800003ffffffff800000000007ffffc000000000000007ffffffffff +fffffffffffffffffffffffffffffffc3fffffffffffff000008 +ff8007fffffffffe00000fffffffffc0000000001ffffffc00000000000003ffffffffff +fffffffffffffffffffffffffffffff87fffffffffffff000008 +ff8007fffffffffc00000fffffffffe0000000005ffffffe00000000000001ffffffffff +fffffffffffffffffffffffffffffff87fffffffffffff000008 +ff8003fffffffff800001ffffffffff000000000ffffffffc0000000000000ffffffffff +fffffffffffffffffffffffffffffff87fffffffffffff000008 +ff0001fffffffff000003ffffffffffc00000007fffffffff80000000000007fffffffff +fffffffffffffffffffffffffffffff8ffffffffffffff000008 +ff0000ffffffffe000003ffffffffffc0000000ffffffffffc0000000000007fffffffff +fffffffffffffffffffffffffffffffcffffffffffffff000008 +fe00007fffffff800000ffffffffffff0000001ffffffffffe0000000000001fffffffff +ffffffffffffffffffffffffffffe7fdffffffffffffff000008 +fe00007fffffff000001ffffffffffff8000003fffffffffff0000000000001fffffffff +ffffffffffffffffffffffffffffe7fdffffffffffffff000008 +fc00001ffffffc000003ffffffffffffc000007fffffffffffe0000000000007ffffffff +ffffffffffffffffffffffffffffc7ffffffffffffffff000008 +fc00001ffffff0000003ffffffffffffe00000fffffffffffff0000000000007ffffffff +fffffffffeffffffffffffffffff87ffffffffffffffff000008 +f800000fffffe0000007fffffffffffff00000fffffffffffff8000000000003ffffffff +fffffffffcffffffffffffffffff87ffffffffffffffff000008 +f8000003ffff0000000ffffffffffffff80001fffffffffffffc000000000001ffffffff +fffffffff8ffffffffffffffffff07ffffffffffffffff000008 +f8000001fffe0000001ffffffffffffff80001ffffffffffffff000000000000ffffffff +fffffffff8fffffffffffffffffe0fffffffffffffffff000008 +f0000000fff00000003ffffffffffffffc0001ffffffffffffff8000000000007fffffff +fffffffff0fffffffffffffffffe0fffffffffffffffff000018 +e00000001a000000007ffffffffffffffe0003ffffffffffffffc000000000003fffffff +fffffffff0fffffffffffffffffc0fffffffffffffffff000018 +e000000000000000007fffffffffffffff0003ffffffffffffffc000000000003fffffff +ffffffffe0fffffffffffffffffc1fffffffffffffffff000018 +c00000000000000000ffffffffffffffff0007ffffffffffffffe000000000001fffffff +ffffffffe0fffffffffffffffff81fffffffffffffffff000018 +c00000000000000001ffffffffffffffff0007fffffffffffffff0000000000007ffffff +ffffffffc0fffffffffffffffff83fffffffffffffffff000018 +800000000000000007ffffffffffffffff800ffffffffffffffffc000000000003ffffff +ffffffff01fffffffffffffffff03fffffffffffffffff000038 +800000000000000007ffffffffffffffff800ffffffffffffffffe000000000001ffffff +ffffffff01fffffffffffffffff03fffffffffffffffff800038 +00000000000000000fffffffffffffffffc00fffffffffffffffff000000000000ffffff +fffffffe03ffffffffffffffffe07fffffffffffffffff800038 +00000000000000001fffffffffffffffffc01fffffffffffffffff8000000000007fffff +fffffffc03ffffffffffffffffe07fffffffffffffffff800038 +00000000000000003fffffffffffffffffe03fffffffffffffffffc000000000003fffff +fffffff803ffffffffffffffffc07fffffffffffffffff800038 +00000000000000007ffffffffffffffffff03fffffffffffffffffe000000000000fffff +fffffff007ffffffffffffffffc0ffffffffffffffffff800038 +0000000000000000fffffffffffffffffff07ffffffffffffffffff000000000000fffff +fffffff007ffffffffffffffff80ffffffffffffffffff800078 +0000000000000003ffffffffffffffff8ff87ffffffffffffffffff8000000000001ffff +ffffffc00fffffffffffffffff81ffffffffffffffffff800078 +8000000000000007ffffffffffffffff0ff8fffffffffffffffffffc000000000000ffff +ffffffc00fffffffffffffffff01ffffffffffffffffff8000f8 +8000000000000007fffffffffffffffe0ffffffffffffffffffffffe0000000000007fff +ffffff801fffffffffffffffff03ffffffffffffffffff8000f8 +c00000000000001ffffffffffffffffc0fffffffffffffffffffffff0000000000001fff +fffffe001ffffffffffffffffe07ffffffffffffffffff8000f8 +e00000000000007ffffffffffffffff83fffffffffffffffffffffffc0000000000007ff +fffff8003ffffffffffffffffc07ffffffffffffffffff8000f8 +f00000000000007ffffffffffffffff03fffffffffffffffffffffffc0000000000001ff +fffff0003ffffffffffffffff80fffffffffffffffffff8000f8 +f0000000000000fffffffffffffffff07fffffffffffffffffffffffe0000000000000ff +ffffe0003ffffffffffffffff00fffffffffffffffffff8001f8 +f8000000000003ffffffffffffffffe07ffffffffffffffffffffffff00000000000000f +ffff00007fffffffffffffffe01fffffffffffffffffff0001f8 +fc000000000007ffffffffffffffffc07ffffffffffffffffffffffff800000000000007 +fffc00007fffffffffffffffc01fffffffffffffffffff0001f8 +fc000000000007ffffffffffffffffc0fffffffffffffffffffffffff800000000000000 +ffe000007ffffbffffffffff801fffffffffffffffffff0001f8 +fe00000000001fffffffffffffffff03fffffffffffffffffffffffffe00000000000000 +00000000fffff3ffffffffff003fffffffffffffffffff0001f8 +fe00000000003fffffffffffffffff03ffffffffffffffffffffffffff00000000000000 +00000001fffff1fffffffffe003fffffffffffffffffff0003f8 +ff00000000007ffffffffffffffffe03ffffffffffffffffffffffffff00000000000000 +00000001ffffe1fffffffffc007fffffffffffffffffff0003f8 +ff8000000001fffffffffffffffffc07ffffffffffffffffffffffffff80000000000000 +00000003ffffe0fffffffff0007fffffffffffffffffff0003f8 +ffc000000003fffffffffffffffffc0fffffffffffffffffffffffffffc0000000000000 +00000003ffffc0ffffffffe0007fffffffffffffffffff0003f8 +ffe00000000ffffffffffffffffff81fffffffffffffffffffffffffffe0000000000000 +00000007ffffc07fffffff8000ffffffffffffffffffff0003f8 +fff00000003ffffffffffffffffff01ffffffffffffffffffffffffffff0000000000000 +00000007ffff803fffffff0000fffffffffffffffffffe0007f8 +fff8000000ffffffffffffffffffe03ffffffffffffffffffffffffffff8000000000000 +00000007ffff801ffffffc0001fffffffffffffffffffe0007f8 +fffc000001ffffffffffffffffffe07ffffffffffffffffffffffffffffc000000000000 +0000000fffff000ffffff80003fffffffffffffffffffe0007f8 +fffe00000fffffffffffffffffffc07ffffffffffffffffffffffffffffc000000000000 +0000000fffff0007ffffe00003fffffffffffffffffffe0007f8 +ffff80007fffffffffffffffffff80fffffffffffffffffffffffffffffe000000000000 +0000001ffffe0001ffff800007fffffffffffffffffffe000ff8 +ffffe007ffffffffffffffffffff80ffffffffffffffffffffffffffffff000000000000 +0000001ffffe0000fffc000007fffffffffffffffffffe000ff8 +ffffffffffffffffffffffffffff01ffffffffffffffffffffffffffffff800000000000 +0000003ffffe0000000000000ffffffffffffffffffffe000ff8 +fffffffffffffffffffffffffffe03ffffffffffffffffffffffffffffffc00000000000 +0000003ffffc0000000000000ffffffffffffffffffffe000ff8 +fffffffffffffffffffffffffffe03ffffffffffffffffffffffffffffffe00000000000 +0000007ffff80000000000001ffffffffffffffffffffe001ff8 +fffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffff00000000000 +0000007ffff80000000000001ffffffffffffffffffffe001ff8 +fffffffffffffffffffffffffff807fffffffffffffffffffffffffffffff80000000000 +000000fffff80000000000003ffffffffffffffffffffc001ff8 +fffffffffffffffffffffffffff80ffffffffffffffffffffffffffffffffc0000000000 +000003fffff00000000000007ffffffffffffffffffffc001ff8 +fffffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffe0000000000 +000007ffffe00000000000007ffffffffffffffffffffe003ff8 +fffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffff0000000000 +000007ffffe0000000000000fffffffffffffffffffffc003ff8 +ffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffffff8000000000 +00001fffffc0000000000001fffffffffffffffffffffc003ff8 +ffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffffffe000000000 +00001fffffc0000000000003fffffffffffffffffffffc003ff8 +ffffffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffff000000000 +00003fffff80000000000003fffffffffffffffffffffc007ff8 +ffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffffff800000000 +00007fffff80000000000007fffffffffffffffffffffc007ff8 +ffffffffffffffffffffffffff03fffffffffffffffffffffffffffffffffffc00000000 +0000ffffff0000000000000ffffffffffffffffffffffc007ff8 +fffffffffffffffffffffffffe03fffffffffffffffffffffffffffffffffffc00000000 +0001ffffff0000000000001ffffffffffffffffffffffc007ff8 +fffffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffffff00000000 +0003fffffe0000000000001ffffffffffffffffffffff800fff8 +fffffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffff80000000 +0007fffffe0000000000003ffffffffffffffffffffff800fff8 +fffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffff0000000 +001ffffffc0000000000007ffffffffffffffffffffff800fff8 +fffffffffffffffffffffffff03ffffffffffffffffffffffffffffffffffffff8000000 +003ffffffc000000000000fffffffffffffffffffffff800fff8 +ffffffffffffffffffffffffe07ffffffffffffffffffffffffffffffffffffffe000000 +00fffffff8000000000003fffffffffffffffffffffff001fff8 +ffffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffff800000 +03fffffff8000000000003fffffffffffffffffffffff001fff8 +ffffffffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffc00000 +07fffffff0000000000007fffffffffffffffffffffff001fff8 +ffffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffffffffc0000 +3ffffffff000000000000ffffffffffffffffffffffff003fff8 +ffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffe03f +fffffffff000000000003ffffffffffffffffffffffff003fff8 +ffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffffff +fffffffff800000000007ffffffffffffffffffffffff003fff8 +fffffffffffffffffffffffe03ffffffffffffffffffffffffffffffffffffffffffffff +fffffffff80000000000ffffffffffffffffffffffffe003fff8 +fffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffc0000000003ffffffffffffffffffffffffe007fff8 +fffffffffffffffffffffffc0fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffe0000000007ffffffffffffffffffffffffe007fff8 +fffffffffffffffffffffff81fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffe000000000fffffffffffffffffffffffffe00ffff8 +fffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff000000001fffffffffffffffffffffffffe00ffff8 +ffffffffffffffffffffffe03ffffffffffffffffffffffffbffffffffffffffffffffff +ffffffffff800000007fffffffffffffffffffffffffc00ffff8 +ffffffffffffffffffffffe07ffffffffffffffffffdfffff1ffffffffffffffffffffff +ffffffffffc0000000ffffffffffffffffffffffffffc00ffff8 +ffffffffffffffffffffffe07ffffffffffffffffff9fffff07fffffffffffffffffffff +ffffffffffe0000001ffffffffffffffffffffffffffc00ffff8 +ffffffffffffffffffffffc0ffffffffffffffffffe3ffffe03fffffffffffffffffffff +fffffffffff800001fffffffffffffffffffffffffffc01ffff8 +ffffffffffffffffffffff81ffffffffffffffffffc7ffffc00fffffffffffffffffffff +fffffffffffe00007fffffffffffffffffffffffffffc01ffff8 +ffffffffffffffffffffff81ffffffffffffffffff87ffffc007ffffffffffffffffffff +ffffffffffff8003ffffffffffffffffffffffffffff801ffff8 +ffffffffffffffffffffff03ffffffffffffffffff0fffff8007ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff803ffff8 +fffffffffffffffffffffe07fffffffffffffffffe0fffff8001ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff803ffff8 +fffffffffffffffffffffe07fffffffffffffffffc1fffff0000ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff803ffff8 +fffffffffffffffffffffc0ffffffffffffffffff83ffffe00007fffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff007ffff8 +fffffffffffffffffffff81fffffffffffffffffe03ffffe00007fffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff007ffff8 +fffffffffffffffffffff83fffffffffffffffffc07ffffc00003fffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffff007ffff8 +fffffffffffffffffffff03fffffffffffffffff80fffff800001fffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffe00fffff8 +ffffffffffffffffffffe07fffffffffffffffff00fffff800000fffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffe00fffff8 +ffffffffffffffffffffe0fffffffffffffffffe01fffff0000007ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffe00fffff8 +ffffffffffffffffffffc0fffffffffffffffffc01ffffe0000003ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffe00fffff8 +ffffffffffffffffffff81fffffffffffffffff803ffffe0000003ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffe01fffff8 +ffffffffffffffffffff81ffffffffffffffffe007ffffc0000003ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffc01fffff8 +ffffffffffffffffffff83ffffffffffffffffe007ffffc0000001ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffc01fffff8 +ffffffffffffffffffff07ffffffffffffffff800fffff80000000ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffc01fffff8 +fffffffffffffffffffe07ffffffffffffffff800fffff00000000ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffc03fffff8 +fffffffffffffffffffc0ffffffffffffffffe001fffff00000000ffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff803fffff8 +fffffffffffffffffffc0ffffffffffffffffc003ffffe000000007fffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff803fffff8 +fffffffffffffffffff81ffffffffffffffff0003ffffc000000007fffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff007fffff8 +fffffffffffffffffff01fffffffffffffffe0007ffffc000000003fffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff007fffff8 +fffffffffffffffffff03fffffffffffffffe000fffff8000000001fffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff007fffff8 +ffffffffffffffffffe07fffffffffffffff8000fffff0000000001fffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe00ffffff8 +ffffffffffffffffffc07fffffffffffffff0001fffff0000000001fffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe00ffffff8 +ffffffffffffffffffc0fffffffffffffffe0001ffffe0000000000fffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe00ffffff8 +ffffffffffffffffff80fffffffffffffff80003ffffe0000000000fffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe01ffffff8 +ffffffffffffffffff81fffffffffffffff00007ffffc0000000000fffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc01ffffff8 +ffffffffffffffffff81ffffffffffffffe00007ffffc00000000007ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc01ffffff8 +ffffffffffffffffff03ffffffffffffffc0000fffffc00000000007ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc03ffffff8 +fffffffffffffffffe03ffffffffffffff00000fffffe00000000007ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff803ffffff8 +fffffffffffffffffc07fffffffffffffe00001ffffff00000000007ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff803ffffff8 +fffffffffffffffffc07fffffffffffffc00007ffffffc0000000007ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff807ffffff8 +fffffffffffffffff807fffffffffffff00001fffffffe0000000003ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff807ffffff8 +fffffffffffffffff807ffffffffffffe00003ffffffff0000000003ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff007ffffff8 +fffffffffffffffff00fffffffffffff800007ffffffff8000000003ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff00fffffff8 +fffffffffffffffff00fffffffffffff00000fffffffffc000000001ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff00fffffff8 +ffffffffffffffffe00ffffffffffffc00003fffffffffe000000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffe01fffffff8 +ffffffffffffffffe00ffffffffffff800007ffffffffff000000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffe01fffffff8 +ffffffffffffffffc00ffffffffffff00000fffffffffff800000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffe01fffffff8 +ffffffffffffffff800fffffffffffc00001fffffffffffc00000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffe03fffffff8 +ffffffffffffffff800fffffffffff000007fffffffffffe00000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffe03fffffff8 +ffffffffffffffff001ffffffffffe00000fffffffffffff00000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffc07fffffff8 +ffffffffffffffff001ffffffffffc00001fffffffffffff80000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffc07fffffff8 +fffffffffffffffe000fffffffffe000003fffffffffffff80000001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff807fffffff8 +fffffffffffffffe000fffffffffc000007fffffffffffffc0000000ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff807fffffff8 +fffffffffffffffc000fffffffff800000ffffffffffffffe0000000ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff80ffffffff8 +fffffffffffffffc0007fffffffe000001fffffffffffffff0000000ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff80ffffffff8 +fffffffffffffffc0003fffffffc000003fffffffffffffff0000000ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff01ffffffff8 +fffffffffffffff80001fffffff8000007fffffffffffffff8000000ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff01ffffffff8 +fffffffffffffff80000ffffffc000001ffffffffffffffff8000000ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff01ffffffff8 +fffffffffffffff800003fffff0000003ffffffffffffffffc000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe01ffffffff8 +fffffffffffffff000000000000000007ffffffffffffffffc000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe03ffffffff8 +ffffffffffffffe00000000000000000fffffffffffffffffe000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe03ffffffff8 +ffffffffffffffe00000000000000001fffffffffffffffffe000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffc07ffffffff8 +ffffffffffffffc00000000000000003fffffffffffffffffe000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffc07ffffffff8 +ffffffffffffffc00000000000000007ffffffffffffffffff000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffc07ffffffff8 +ffffffffffffffc0000000000000000fffffffffffffffffff000000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffc0fffffffff8 +ffffffffffffff80000000000000003fffffffffffffffffff800000ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffc0fffffffff8 +ffffffffffffff80000000000000007fffffffffffffffffff800001ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff80fffffffff8 +ffffffffffffff8000000000000001ffffffffffffffffffff800001ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff81fffffffff8 +ffffffffffffff8000000000000001ffffffffffffffffffffc00001ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff81fffffffff8 +ffffffffffffff8000000000000003ffffffffffffffffffffe00001ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff01fffffffff8 +ffffffffffffff000000000000000fffffffffffffffffffffe00001ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff03fffffffff8 +ffffffffffffff000000000000001ffffffffffffffffffffff00001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffe03fffffffff8 +fffffffffffffe000000000000003ffffffffffffffffffffff00001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffe03fffffffff8 +fffffffffffffe000000000000007ffffffffffffffffffffff00001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffe03fffffffff8 +fffffffffffffc00000000000001fffffffffffffffffffffff00001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffe07fffffffff8 +fffffffffffffc00000000000007fffffffffffffffffffffff00001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffc07fffffffff8 +fffffffffffffc00000000000007fffffffffffffffffffffff00001ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffc07fffffffff8 +fffffffffffffc0000000000003ffffffffffffffffffffffff80003ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffc0ffffffffff8 +fffffffffffffc0000000000007ffffffffffffffffffffffff80003ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffc0ffffffffff8 +fffffffffffffc000000000000fffffffffffffffffffffffff80003ffffffffffffffff +fffffffffffffffffffffffffffffffffffffff80ffffffffff8 +fffffffffffffc000000000003fffffffffffffffffffffffff80003ffffffffffffffff +fffffffffffffffffffffffffffffffffffffff80ffffffffff8 +fffffffffffffc000000000007fffffffffffffffffffffffff80003ffffffffffffffff +fffffffffffffffffffffffffffffffffffffff00ffffffffff8 +fffffffffffffc00000000001ffffffffffffffffffffffffff80007ffffffffffffffff +fffffffffffffffffffffffffffffffffffffff01ffffffffff8 +fffffffffffffe00000000001ffffffffffffffffffffffffff80007ffffffffffffffff +fffffffffffffffffffffffffffffffffffffff01ffffffffff8 +fffffffffffffe0000000000fffffffffffffffffffffffffff80007ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe01ffffffffff8 +ffffffffffffff0000000001fffffffffffffffffffffffffff80007ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe03ffffffffff8 +ffffffffffffff000000000ffffffffffffffffffffffffffff80007ffffffffffffffff +fffffffffffffffffffdffffffffffffffffffe03ffffffffff8 +ffffffffffffff800000003ffffffffffffffffffffffffffff80007ffffffffffffffff +fffffffffffffffffff9ffffffffffffffffffc03ffffffffff8 +ffffffffffffffe0000001fffffffffffffffffffffffffffff80007ffffffffffffffff +fffffffffffffffffff1ffffffffffffffffff807ffffffffff8 +fffffffffffffff0000001fffffffffffffffffffffffffffff8000fffffffffffffffff +fffffffffffffffffff1ffffffffffffffffff807ffffffffff8 +fffffffffffffff800000ffffffffffffffffffffffffffffffc000fffffffffffffffff +fffffffffffffffffff1ffffffffffffffffff807ffffffffff8 +fffffffffffffffe0003fffffffffffffffffffffffffffffffc000fffffffffffffffff +ffffffffffffffffffe1ffffffffffffffffff807ffffffffff8 +ffffffffffffffff4007fffffffffffffffffffffffffffffffc001fffffffffffffffff +ffffffffffffffffffc1ffffffffffffffffff00fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff +ffffffffffffffffff83ffffffffffffffffff00fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff +ffffffffffffffffff83ffffffffffffffffff00fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff +ffffffffffffffffff03ffffffffffffffffff00fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff +ffffffffffffffffff03ffffffffffffffffff01fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff +ffffffffffffffffff07ffffffffffffffffff01fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff +fffffffffffffffffe07fffffffffffffffffe01fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff +fffffffffffffffffc07fffffffffffffffffe03fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffffff +fffffffffffffffffc07fffffffffffffffffc03fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffffff +fffffffffffffffff80ffffffffffffffffffc03fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffff +fffffffffffffffff80ffffffffffffffffffc03fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffff +fffffffffffffffff80ffffffffffffffffffc03fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe00ffffffffffffffffff +fffffffffffffffff03ffffffffffffffffff807fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe00ffffffffffffffffff +ffffffffffffffffe01ffffffffffffffffff807fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffff +ffffffffffffffffe03ffffffffffffffffff807fffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffff +ffffffffffffffffc07ffffffffffffffffff00ffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe03ffffffffffffffffff +ffffffffffffffffc07ffffffffffffffffff00ffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe03ffffffffffffffffff +ffffffffffffffff80fffffffffffffffffff00ffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe07ffffffffffffffffff +ffffffffffffffff80fffffffffffffffffff00ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffffffffff +ffffffffffffffff00ffffffffffffffffffe01ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffffffffff +fffffffffffffffe00ffffffffffffffffffe01ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffffffff +fffffffffffffffe00ffffffffffffffffffe01ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffffffff +fffffffffffffffc01ffffffffffffffffffc01ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffffffffff +fffffffffffffffc03ffffffffffffffffffc01ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff3fffffffffffffffffff +fffffffffffffffc03ffffffffffffffffffc03ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffff +fffffffffffffff807ffffffffffffffffffc03ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff807ffffffffffffffffff803ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff00fffffffffffffffffff803ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff00fffffffffffffffffff807ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe01fffffffffffffffffff807ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe03fffffffffffffffffff807ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffc03fffffffffffffffffff807ffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff807fffffffffffffffffff00fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff807fffffffffffffffffff00fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00ffffffffffffffffffff00fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff00fffffffffffffffffffe00fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffe01fffffffffffffffffffe01fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffe03fffffffffffffffffffe01fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffc03fffffffffffffffffffc01fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffc07fffffffffffffffffffc01fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff807fffffffffffffffffffc03fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff00ffffffffffffffffffffc03fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff00ffffffffffffffffffff803fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe01ffffffffffffffffffff803fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe01ffffffffffffffffffff803fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc03ffffffffffffffffffff807fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc03ffffffffffffffffffff007fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff807ffffffffffffffffffff007fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff807ffffffffffffffffffff007fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff00fffffffffffffffffffff007fffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffe00ffffffffffffffffffffe00ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffe01ffffffffffffffffffffe00ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffffffffff +fffffffffffc01ffffffffffffffffffffe00ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffff +fffffffffffc03ffffffffffffffffffffe00ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffff +fffffffffff803ffffffffffffffffffffc00ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffff +fffffffffff807ffffffffffffffffffffc00ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1fffffffffffff +fffffffffff00fffffffffffffffffffffc01ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffff +fffffffffff00fffffffffffffffffffffc01ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff83fffffffffffff +ffffffffffc01fffffffffffffffffffffc01ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff +ffffffffffc01fffffffffffffffffffffc01ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff +ffffffffff801fffffffffffffffffffff801ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff +ffffffffff803fffffffffffffffffffff801ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffff +ffffffffff003fffffffffffffffffffff803ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0ffffffffffffff +fffffffffe007fffffffffffffffffffff803ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1ffffffffffffff +fffffffffc007fffffffffffffffffffff003ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff81ffffffffffffff +fffffffffc00ffffffffffffffffffffff003ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffff +fffffffff800ffffffffffffffffffffff003ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffff +fffffffff801ffffffffffffffffffffff003ffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ffffffffffffff +fffffffff803ffffffffffffffffffffff007ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffe07ffffffffffffff +fffffffff003fffffffffffffffffffffe007ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffc07ffffffffffffff +ffffffffe007fffffffffffffffffffffe007ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffff807ffffffffffffff +ffffffffc007fffffffffffffffffffffe007ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffff007ffffffffffffff +ffffffffc007fffffffffffffffffffffe007ffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffff +ffffffff800ffffffffffffffffffffffe00fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffff +ffffffff000ffffffffffffffffffffffe00fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe00fffffffffffffff +fffffffe001ffffffffffffffffffffffe00fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc01fffffffffffffff +fffffffc003ffffffffffffffffffffffe00fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc01fffffffffffffff +9ffffffc003ffffffffffffffffffffffe00fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffff803fffffffffffffff +0ffffff8003ffffffffffffffffffffffc01fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffff003ffffffffffffffe +07fffff0007ffffffffffffffffffffffc01fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffff003ffffffffffffffe +07ffffe000fffffffffffffffffffffffc01fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffe007ffffffffffffff8 +03ffffc000fffffffffffffffffffffffc01fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffe007ffffffffffffff0 +03ffff8001fffffffffffffffffffffff801fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffffc007ffffffffffffff0 +01ffff0003fffffffffffffffffffffff803fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffe0 +00fffe0003fffffffffffffffffffffff803fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffe0 +00fffe0003fffffffffffffffffffffff803fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffff001ffffffffffffffc0 +003ffc0007fffffffffffffffffffffff003fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffe003ffffffffffffff80 +001fe0001ffffffffffffffffffffffff003fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffe003ffffffffffffff00 +000fc0001ffffffffffffffffffffffff007fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffe00 +000000001ffffffffffffffffffffffff007fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff8007fffffffffffffe00 +000000003ffffffffffffffffffffffff007fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffc00 +000000003ffffffffffffffffffffffff007fffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffff000ffffffffffffff800 +000000007fffffffffffffffffffffffe007fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe001ffffffffffffff800 +000000007fffffffffffffffffffffffe007fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffe001ffffffffffffff000 +00000001ffffffffffffffffffffffffe007fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc003ffffffffffffff000 +00000001ffffffffffffffffffffffffe007fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffe000 +00000001ffffffffffffffffffffffffe007fffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffff0007fffffffffffffc000 +00000003ffffffffffffffffffffffffc00ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffff000ffffffffffffffc000 +00000003ffffffffffffffffffffffffc00ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffff8000 +00000007ffffffffffffffffffffffffc00ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffc001ffffffffffffff0000 +0000000fffffffffffffffffffffffffc01ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffffc003ffffffffffffff0000 +0000001fffffffffffffffffffffffffc01ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffff8003fffffffffffffe0000 +0000001fffffffffffffffffffffffffc01ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffff0007fffffffffffffe0000 +0000003fffffffffffffffffffffffffc01ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffffc0000 +0000007fffffffffffffffffffffffff801ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffff80000 +0000007fffffffffffffffffffffffff801ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffffc001ffffffffffffff80000 +000000ffffffffffffffffffffffffff801ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffff8001ffffffffffffff00000 +000001ffffffffffffffffffffffffff801ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff00000 +000001ffffffffffffffffffffffffff801ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff00000 +000003ffffffffffffffffffffffffff801ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffe0007fffffffffffffe00000 +000003ffffffffffffffffffffffffff801ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffffe00000 +000007ffffffffffffffffffffffffff803ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffc00000 +00000fffffffffffffffffffffffffff003ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffff8001ffffffffffffff800000 +00000fffffffffffffffffffffffffff803ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff800000 +00001fffffffffffffffffffffffffff803ffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffff0007ffffffffffffff000200 +00003fffffffffffffffffffffffffff007ffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffe0007fffffffffffffe000700 +00007fffffffffffffffffffffffffff00fffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffe001f80 +0000ffffffffffffffffffffffffffff00fffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe001f80 +0001ffffffffffffffffffffffffffff00fffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffc003fc0 +0001ffffffffffffffffffffffffffff00fffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffff0001ffffffffffffff8007fe0 +0003ffffffffffffffffffffffffffff01fffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffff0007fe0 +0007ffffffffffffffffffffffffffff01fffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffe0007ffffffffffffff000fff0 +0007ffffffffffffffffffffffffffff01fffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffe003fff8 +001fffffffffffffffffffffffffffff07fffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe003fffc +007fffffffffffffffffffffffffffff07fffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe003fffe +00ffffffffffffffffffffffffffffff07fffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffff0001ffffffffffffffc007ffff +dfffffffffffffffffffffffffffffff0ffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffff800fffff +fffffffffffffffffffffffffffffffe1ffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffff800fffff +fffffffffffffffffffffffffffffffe1ffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffff001fffff +fffffffffffffffffffffffffffffffe1ffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff003fffff +fffffffffffffffffffffffffffffffe3ffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffe003fffff +ffffffffffffffffffffffffffffffff3ffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffe0001ffffffffffffffc007fffff +ffffffffffffffffffffffffffffffff3ffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffffc007fffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffffc00ffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff800ffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff801ffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffe0000fffffffffffffff001ffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffff003ffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffffc0003ffffffffffffffe007ffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffff80007ffffffffffffffe007ffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffff0000fffffffffffffffc00fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffff0000fffffffffffffffc00fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffe0001fffffffffffffffc00fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffff801fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffffc0003fffffffffffffff801fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffff80003fffffffffffffff003fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff007fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffff007fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffffc007fffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffffc00ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffff80003fffffffffffffffc01ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff801ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffe0001ffffffffffffffff801ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffff803ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffffc0003ffffffffffffffff803ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffff80003fffffffffffffffe007ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffff80007fffffffffffffffe007ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffe00fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffc00fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffff801fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffff80003ffffffffffffffff803fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffff80003ffffffffffffffff003fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff003fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffffe007fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffffc007fffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffffc00ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffff80007ffffffffffffffffc00ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff801ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff801ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffe0000fffffffffffffffff003ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffffc0001fffffffffffffffff003ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffff80003ffffffffffffffffe007ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffff80003ffffffffffffffffe007ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffe00007ffffffffffffffffc00fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffe0000fffffffffffffffffc00fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffffe0000fffffffffffffffffc00fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffff80001fffffffffffffffff801fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffff00003fffffffffffffffff801fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffff00007fffffffffffffffff003fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffe00007fffffffffffffffff007fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffc0000ffffffffffffffffff007fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffffc0001fffffffffffffffffc007fffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffff80003fffffffffffffffffc00ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffff80007fffffffffffffffffc01ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffff00007fffffffffffffffff801ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffff0000ffffffffffffffffff801ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffffc0001ffffffffffffffffff803ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffff80003ffffffffffffffffff803ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffff00007ffffffffffffffffff007ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffff00007ffffffffffffffffff007ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffe0000ffffffffffffffffffe00fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffc0000ffffffffffffffffffe00fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffffc0001ffffffffffffffffffe01fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffff80003ffffffffffffffffffc03fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffff00007ffffffffffffffffffc03fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffe00007ffffffffffffffffffc03fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffe00007ffffffffffffffffffc07fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffffc0001fffffffffffffffffff807fffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffff80003fffffffffffffffffff80ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffff80003fffffffffffffffffff80ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffff00007fffffffffffffffffff81ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffe0000ffffffffffffffffffff01ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffe0001ffffffffffffffffffff03ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffffc0003ffffffffffffffffffff03ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffff80003fffffffffffffffffffe07ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffff00007fffffffffffffffffffe07ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffe00007fffffffffffffffffffe0fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffe0000ffffffffffffffffffffc0fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffe0000ffffffffffffffffffffc1fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffffc0001ffffffffffffffffffffc1fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffff80007ffffffffffffffffffff83fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffff00007ffffffffffffffffffff83fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffe00007ffffffffffffffffffff83fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffe0000fffffffffffffffffffff87fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffc0001fffffffffffffffffffff87fffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffffc0001fffffffffffffffffffff0ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffff80003fffffffffffffffffffff0ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffff00007fffffffffffffffffffff0ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffff0000ffffffffffffffffffffff1ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffe0000fffffffffffffffffffffe1ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffffc0001fffffffffffffffffffffe3ffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffff80003fffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffff00007fffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffe0001ffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffe0001ffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffc0003ffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffffc0007ffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffff0000fffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffff0000fffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffe0001fffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffc0003fffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffc0003fffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffffc0007fffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffff8000ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffff8001ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffff0001ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffff0003ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffff0003ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffe0007ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffffc000fffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffff8001fffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffff8001fffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffff8003fffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffff8007fffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffff8007fffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffff0007fffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffe000ffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffe001ffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffc001ffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffc007ffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffc00fffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffffc01fffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffff801fffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffff003fffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffff003fffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffe01ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffc03ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffffc03ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffff807ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffff807ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffff00fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +fffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffe03fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffff83ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 +ffffffffffffffffffffff3fffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8 + + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer diff --git a/etc/gnus-refcard.tex b/etc/gnus-refcard.tex new file mode 100644 index 00000000000..87c02032424 --- /dev/null +++ b/etc/gnus-refcard.tex @@ -0,0 +1,1428 @@ +\documentclass{article} + +% Previously we had five input LaTeX files (booklet.tex bk-lt.tex bk-a4.tex +% refcard.tex gnusref.tex) and two logo files (gnuslogo-refcard.eps and +% gnuslogo-booklet.eps). +% +% From this LaTeX file (gnus-refcard.tex) plus a single logo (gnus-logo.eps), +% we can generate the refcard and the booklet version. Appropriate Makefile +% rules were added. This simplifies to distribute the refcard with Emacs. +% +% (Reiner Steib, March 2005) + +\usepackage{ifthen} +\ifthenelse{\isundefined{\booklettrue}}{ + \typeout{Creating reference card...} +}{ + \typeout{Creating reference booklet...}} + +\usepackage{supertabular} + +\newlength{\logowidth} \setlength{\logowidth} {6.861in} +\newlength{\logoheight} \setlength{\logoheight}{7.013in} + +\usepackage{graphicx} + +\usepackage{geometry} + +\ifthenelse{\isundefined{\booklettrue}}{% ifcard %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Reference Card + + \def\Guide{Card}\def\guide{card} + \def\logoscale{0.25} + + % Page setup for the refcard: + + % \setlength{\textwidth}{7.26in} \setlength{\textheight}{10in} + % \setlength{\topmargin}{-1.0in} + % % the same settings work for A4, although there is a bit of space at the + % % top and bottom of the page. + % \setlength{\oddsidemargin}{-0.5in} \setlength{\evensidemargin}{-0.5in} + + \ifthenelse{\isundefined{\letterpapertrue}}{ + \geometry{a4paper,hmargin=10mm,tmargin=10mm,bmargin=35mm} + }{ + \geometry{hmargin=20mm,tmargin=10mm,bmargin=12mm} + } + +}{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Reference Booklet + + \def\Guide{Booklet}\def\guide{booklet} + \def\logoscale{0.5}% FIXME: too large for 2up printing? --rsteib + + % FIXME: Use geometry package. --rsteib +% \ifthenelse{\isundefined{\letterpapertrue}}{ +% \textwidth 4.9in \textheight 7.35in \topmargin -1.0in +% }{ +% \textwidth 4.5in \textheight 7.5in \topmargin -1.0in +% } +% \oddsidemargin -0.5in \evensidemargin -0.5in + \ifthenelse{\isundefined{\letterpapertrue}}{ + \geometry{a5paper,hmargin=10mm,tmargin=10mm,bmargin=4mm} + }{ + % FIXME: Use geometry package. --rsteib + \geometry{a5paper,hmargin=20mm,tmargin=10mm,bmargin=4mm} + } + + \def\sec{\section} + \def\subsec{\subsection} + \def\subsubsec{\subsubsection} + \def\blankpage{\vspace*{\fill}\par + %\centerline{(This page intentionally left blank.)} + \par\vspace*{\fill}\pagebreak} +}%ifbooklet% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \input{gnusref} % % % % % % % % % % % % % % % % % % % % % % % % % % +%% include file for the Gnus refcard and booklet + +\def\progver{5.10}\def\refver{5.10-2} % program and refcard versions +\def\date{Mar, 2005} +\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$} + +%% +\newlength{\keycolwidth} +\newenvironment{keys}[1]% #1 is the widest key +{\nopagebreak%\noindent% + \settowidth{\keycolwidth}{#1}% + \addtolength{\keycolwidth}{\tabcolsep}% + \addtolength{\keycolwidth}{-\columnwidth}% + \begin{supertabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}% + {\end{supertabular}\\} + +%% uncomment the first definition if you do not want pagebreaks in maps +%%\newcommand{\esamepage}{\samepage} +\newcommand{\esamepage}{} + +\newcommand*{\B}[1]{{\bf#1})} % bold l)etter + +\newcommand{\Title}{% + \begin{center} + {\bf\LARGE Gnus \progver\ Reference \Guide\\} + %{\normalsize \Guide\ version \refver} + \end{center} + } + +% \newcommand*{\LogoOLD}[1]{\centerline{% +% \makebox[\logoscale\logowidth][l]{\vbox to \logoscale\logoheight +% {\vfill\epsfig{figure=gnuslogo-#1}}\vspace{-\baselineskip}}}} + +\newcommand*{\Logo}[1]{\centerline{% + \includegraphics[width=\logoscale\logowidth]{gnus-logo}}} + +\newcommand{\Copyright}{% + \begin{center} + Copyright \copyright\ 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc.\\* + Copyright \copyright\ 1995 Vladimir Alexiev + $<$vladimir@cs.ualberta.ca$>$.\\* + Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\* + Copyright \copyright\ 2001, 2002, 2003, 2005 \author.\\* + Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne + Ingebrigtsen.\\* + and the Emacs Help Bindings feature (C-h b).\\* + Gnus logo copyright \copyright\ 1995 Luis Fernandes.\\* + \end{center} + + Permission is granted to make and distribute copies of this reference + \guide{} provided the copyright notice and this permission are preserved on + all copies. Please send corrections, additions and suggestions to the + current maintainer's email address. \Guide{} last edited on \date. + } + +\newcommand{\Notes}{% + \subsection*{Notes} + {\esamepage + Gnus is complex. Currently it has some 876 interactive (user-callable) + functions. Of these 618 are in the two major modes (Group and + Summary/Article). Many of these functions have more than one binding, some + have 3 or even 4 bindings. The total number of keybindings is 677. So in + order to save 40\% space, every function is listed only once on this + \guide, under the ``more logical'' binding. Alternative bindings are given + in parentheses in the beginning of the description. + + Many Gnus commands are affected by the numeric prefix. Normally you enter a + prefix by holding the Meta key and typing a number, but in most Gnus modes + you don't need to use Meta since the digits are not self-inserting. The + prefixed behavior of commands is given in [brackets]. Often the prefix is + used to specify: + + \quad [distance] How many objects to move the point over. + + \quad [scope] How many objects to operate on (including the current one). + + \quad [p/p] The ``Process/Prefix Convention'': If a prefix is given then it + determines how many objects to operate on. Else if there are some objects + marked with the process mark \#, these are operated on. Else only the + current object is affected. + + \quad [level] A group subscribedness level. Only groups with a lower or + equal level will be affected by the operation. If no prefix is given, + `gnus-group-default-list-level' is used. If + `gnus-group-use-permanent-levels', then a prefix to the `g' and `l' + commands will also set the default level. + + \quad [score] An article score. If no prefix is given, + `gnus-summary-default-score' is used. \\*[\baselineskip] + % some keys + Gnus startup-commands:\\* + \begin{keys}{M-x gnus-unplugged} + M-x gnus & start Gnus. \\ + M-x gnus-no-server & start Gnus without connecting to server + (i.e. to read mail). \\ + \end{keys} + Additionally, there are the two commands \texttt{gnus-plugged} and + \texttt{gnus-unplugged}, which are only used if you want to download + news and/or read previously downloaded news offline (see C-c C-i g Gnus + Unplugged RET). Note: \texttt{gnus-no-server} ignores the stuff in + \texttt{gnus-agent-directory}, and thus does not allow you to use Gnus + Unplugged. + % + \begin{keys}{C-c C-i} + C-c C-i & Go to the Gnus online {\bf info}.\\ + C-c C-b & Send a Gnus {\bf bug} report.\\ + \end{keys} + }} + +\newcommand{\GroupLevels}{% + The table below assumes that you use the default Gnus levels. + Fill your user-specific levels in the blank cells.\\[1\baselineskip] + \begin{tabular}{|c|l|l|} + \hline + Level & Groups & Status \\ + \hline + 1 & draft/mail groups & \\ + 2 & mail groups & \\ + 3 & & subscribed \\ + 4 & & \\ + 5 & default list level & \\ + \hline + 6 & & unsubscribed \\ + 7 & & \\ + \hline + 8 & & zombies \\ + \hline + 9 & & killed \\ + \hline + \end{tabular}} + +\newcommand{\MarkCharacters}{% + {\esamepage If a command directly sets a mark, it is shown in parentheses.\\* + \newlength{\markcolwidth} + \settowidth{\markcolwidth}{` '}% widest character + \addtolength{\markcolwidth}{4\tabcolsep} + \addtolength{\markcolwidth}{-\columnwidth} + \newlength{\markdblcolwidth} + \setlength{\markdblcolwidth}{\columnwidth} + \addtolength{\markdblcolwidth}{-2\tabcolsep} + \begin{tabular}{|c|p{-\markcolwidth}|} + \hline + \multicolumn{2}{|p{\markdblcolwidth}|}{{\bf ``Read'' Marks.} + All these marks appear in the first column of the summary line, and so + are mutually exclusive.}\\ + \hline + ` ' & (M-u, M SPC, M c) Not read.\\ + ! & (!, M !, M t) Ticked (interesting).\\ + ? & (?, M ?) Dormant (only followups are interesting).\\ + E & (E, M e, M x) {\bf Expirable}. Only has effect in mail groups.\\ + G & (C, B DEL) Canceled article (or deleted in mailgroups).\\ + \$ & (M-d, M s x, S x). Marked as spam.\\ + \hline\hline + \multicolumn{2}{|p{\markdblcolwidth}|} + {The marks below mean that the article + is read (killed, uninteresting), and have more or less the same effect. + Some commands however explicitly differentiate between them (e.g.\ M + M-C-r, adaptive scoring).}\\ + \hline + r & (d, M d, M r) Deleted (marked as {\bf read}).\\ + C & (M C; M C-c; M H; c, Z c; Z n; Z C) Killed by {\bf catch-up}.\\ + F & SOUPed article. See the manual.\\ + O & {\bf Old} (read in a previous session).\\ + K & (k, M k; C-k, M K) {\bf Killed}.\\ + M & Article marked as read by duplicate suppression.\\ + Q & Article is part of a sparse thread (see ``Threading'' + in the manual).\\ + R & {\bf Read} (viewed in actuality).\\ + X & Killed by a kill file.\\ + Y & Killed due to low score.\\ + \hline\multicolumn{2}{c}{\vspace{1ex}}\\\hline + \multicolumn{2}{|p{\markdblcolwidth}|} + {{\bf Marks not affecting visibility}}\\ + \hline + \# & (\#, M \#, M P p) Processable (will be affected by the next operation). + [2]\\ + A & {\bf Answered} (followed-up or replied). [2]\\ + F & Forwarded. [2]\\ + $\ast$ & Cached. [2]\\ + S & Saved. [2]\\ + N & Recently arrived. [2]\\ + . & Unseen. [2]\\ + + & Over default score. [3]\\ + $-$ & Under default score. [3]\\ + $=$ & Has children (thread underneath it). Add `\%e' to + `gnus-summary-line-format'. [3]\\ + \hline + \end{tabular} + }} + +\newcommand{\GroupModeGeneral}{% + \begin{keys}{C-c M-C-x} + RET & (=) Enter this group. [Prefix: how many (read) articles to fetch. + Positive: newest articles, negative: oldest ones; non-numerical: + view all articles, not just unread]\\ + M-RET & Enter group quickly.\\ + M-SPC & Same as RET but does not expunge and hide dormants.\\ + M-C-RET & Enter group without any processing, changes will not be permanent.\\ + SPC & Select this group and display the first (unread) article. [Same + prefix as above.]\\ + ? & Give a very short help message.\\ + $<$ & Go to the beginning of the Group buffer.\\ + $>$ & Go to the end of the Group buffer.\\ + , & Jump to the lowest-level group with unread articles.\\ + . & Jump to the first group with unread articles.\\ + \^{} & Enter the Server buffer mode.\\ + a & Post an {\bf article} to a group + [Prefix: use group under point to find posting-style].\\ + b & Find {\bf bogus} groups and delete them.\\ + c & Mark all unticked articles in this group as read ({\bf catch-up}). + [p/p]\\ + g & Check the server for new articles ({\bf get}). [level]\\ + M-g & Check the server for new articles in this group ({\bf get}). [p/p]\\ + j & {\bf Jump} to a group.\\ + m & {\bf Mail} a message to someone + [Prefix: use group under point to find posting-style].\\ + n & Go to the {\bf next} group with unread articles. [distance]\\ + M-n & Go to the {\bf next} group on the same or lower level. + [distance]\\ + p & (DEL) Go to the {\bf previous} group with unread articles. + [distance]\\ + M-p & Go to the {\bf previous} group on the same or lower level. [distance]\\ + q & {\bf Quit} Gnus.\\ + r & Re-read the init file ({\bf reset}).\\ + s & {\bf Save} the `.newsrc.eld' file (and `.newsrc' if + `gnus-save-newsrc-file').\\ + z & Suspend (kill all buffers of) Gnus.\\ + B & {\bf Browse} a foreign server.\\ + C & Mark all articles in this group as read ({\bf Catch-up}). [p/p]\\ + F & {\bf Find} new groups and process them.\\ + N & Go to the {\bf next} group. [distance]\\ + P & Go to the {\bf previous} group. [distance]\\ + Q & {\bf Quit} Gnus without saving any startup (.newsrc) files.\\ + R & {\bf Restart} Gnus.\\ + Z & Clear the dribble buffer.\\ + M-c & Clear data from group (marks and list of read articles). \\ + C-c C-s & {\bf Sort} the groups by name, number of unread articles, or level + (depending on `gnus-group-sort-function').\\ + C-c C-x & Run all expirable articles in this group through the {\bf expiry} + process.\\ + C-c M-C-x & Run all articles in all groups through the {\bf expiry} process.\\ + C-c M-g & Activate all {\bf groups}.\\ + C-c C-i & Gnus online-manual ({\bf info}).\\ + C-x C-t & {\bf Transpose} two groups.\\ + H f & Fetch this group's {\bf FAQ} (using ange-ftp).\\ + H c & Display this group's {\bf charter}. [Prefix: query for group]\\ + H C & Display this group's {\bf control message} (using + ange-ftp). [Prefix: query for group]\\ + H v & (V) Display the Gnus {\bf version} number.\\ + H d & (C-c C-d) Show the {\bf description} of this group + [Prefix: re-read from server].\\ + M-d & {\bf Describe} all groups. [Prefix: re-read from server]\\ + D g & Regenerate a Sieve script from group parameters.\\ + D u & Regenerate Sieve script and {\bf upload} to server.\\ + \end{keys} + } + +\newcommand{\ListGroups}{% + {\esamepage + \begin{keys}{A M} + A d & (C-c C-M-a) List all groups whose names or {\bf descriptions} match a regexp.\\ + A k & (C-c C-l) List all {\bf killed} groups. + [Prefix: look at active-file from server]\\ + A l & List all groups on a specific level. + [Prefix: also list groups with no unread articles]\\ + A a & (C-c C-a) List all groups whose names match a regexp + ({\bf apropos}).\\ + A A & List the server's active-file.\\ + A M & List groups that {\bf match} a regexp.\\ + A m & List groups that {\bf match} a regexp and have unread articles. + [level]\\ + A s & (l) List all {\bf subscribed} groups with unread articles. + [level; 5 and lower is the default]\\ + A u & (L) List all groups (including read and {\bf unsubscribed}). + [level; 7 and lower is the default]\\ + A z & List all {\bf zombie} groups.\\ + A c & List all groups with cached articles. [level]\\ + A ? & List all groups with dormant articles. [level]\\ + \end{keys} + } + + \newcommand{\CreateEditGroups}{% + {\esamepage + The select methods are indicated in parentheses.\\* + \begin{keys}{G DEL} + G a & Make the Gnus list {\bf archive} group. (nndir over ange-ftp)\\ + G c & {\bf Customize} this group's parameters.\\ + G d & Make a {\bf directory} group (every file must be a posting and files + must have numeric names). (nndir)\\ + G D & Enter a {\bf directory} as a (temporary) group. + (nneething without recording articles read)\\ + G e & (M-e) {\bf Edit} this group's select method.\\ + G E & {\bf Edit} this group's info (select method, articles read, etc).\\ + G f & Make a group based on a {\bf file}. (nndoc)\\ + G h & Make the Gnus {\bf help} (documentation) group. (nndoc)\\ + G k & Make a {\bf kiboze} group. (nnkiboze)\\ + G m & {\bf Make} a new group.\\ + G p & Edit this group's {\bf parameters}.\\ + G r & Rename this group (does not work with read-only groups!).\\ + G u & Create one of the groups mentioned in gnus-{\bf useful}-groups.\\ + G v & Add this group to a {\bf virtual} group. [p/p]\\ + G V & Make a new empty {\bf virtual} group. (nnvirtual)\\ + G w & Create ephemeral group based on web-search. [Prefix: make solid group + instead]\\ + G R & Make an {\bf RSS} group.\\ + G DEL & {\bf Delete} group [Prefix: delete all articles as well].\\ + G x & Expunge all deleted articles in an nnimap mailbox.\\ + G l & Edit ACL (Access Control {\bf List}) for an nnimap mailbox.\\ + \end{keys} + You can also create mail-groups and read your mail with Gnus (very useful + if you are subscribed to mailing lists), using one of the methods + nnmbox, nnbabyl, nnml, nnmh, or nnfolder. Read about it in the online info + (C-c C-i g Reading Mail RET). + }} + + % TODO: + \newcommand{\SoupCommands}{% + \begin{keys}{G s w} + G s b & gnus-group-brew-soup: not documented.\\ + G s p & gnus-soup-pack-packet: not documented.\\ + G s r & nnsoup-pack-replies: not documented.\\ + G s s & gnus-soup-send-replies: not documented.\\ + G s w & gnus-soup-save-areas: not documented.\\ + \end{keys}} + + \newcommand{\MarkGroups}{% + \begin{keys}{M m} + M m & (\#) Set the process {\bf mark} on this group. [scope]\\ + M r & Mark all groups matching regular expression.\\ + M u & (M-\#) Remove the process mark from this group ({\bf unmark}). + [scope]\\ + M U & Remove the process mark from all groups (\textbf{umark all}).\\ + M w & Mark all groups in the current region. [prefix: unmark]\\ + M b & Mark all groups in the {\bf buffer}. [prefix: unmark]\\ + \end{keys}} + + \newcommand{\GroupTopicsGeneral}{% + {\esamepage + Topics are ``categories'' for groups. Press t in the group-buffer to + toggle gnus-topic-mode (C-c C-i g Group Topics RET).\\* + \begin{keys}{C-c C-x} + T n & Prompt for topic {\bf name} and create it.\\ + T m & {\bf Move} the current group to some other topic [p/p].\\ + T j & {\bf Jump} to a topic.\\ + T c & {\bf Copy} the current group to some other topic [p/p].\\ + T D & Remove (not delete) the current group [p/p].\\ + T M & {\bf Move} all groups matching a regexp to a topic.\\ + T C & {\bf Copy} all groups matching a regexp to a topic.\\ + T H & Toggle {\bf hiding} of empty topics.\\ + T r & {\bf Rename} a topic.\\ + T DEL & Delete an empty topic.\\ + T \# & Mark all groups in the current topic with the process-mark.\\ + T M-\# & Remove the process-mark from all groups in the current topic.\\ + T TAB & (TAB) Indent current topic [Prefix: unindent].\\ + M-TAB & Unindent the current topic.\\ + RET & (SPC) Either unfold topic or enter group [level].\\ + T s & {\bf Show} the current topic. [Prefix: show permanently]\\ + T h & {\bf Hide} the current topic. [Prefix: hide permanently]\\ + C-c C-x & Expire all articles in current group or topic.\\ + C-k & {\bf Kill} a group or topic.\\ + C-y & {\bf Yank} a group or topic.\\ + A T & List active-file using {\bf topics}.\\ + G p & Edit topic-{\bf parameters}.\\ + T M-n & Go to {\bf next} topic. [distance]\\ + T M-p & Go to {\bf previous} topic. [distance]\\ + \end{keys} + } + } + + \newcommand{\TopicSorting}{% + {\esamepage + \begin{keys}{T S m} + T S a & Sort {\bf alphabetically}.\\ + T S u & Sort by number of {\bf unread} articles.\\ + T S l & Sort by group {\bf level}.\\ + T S v & Sort by group score ({\bf value}).\\ + T S r & Sort by group {\bf rank}.\\ + T S m & Sort by {\bf method}.\\ + T S e & Sort by {\bf server} name.\\ + T S s & Sort according to `gnus-group-sort-function'.\\ + \end{keys} + With a prefix these commands will sort in reverse order. + } + } + + \newcommand{\SubscribeKillYankGroups}{% + {\esamepage + \begin{keys}{S C-k} + S k & (C-k) {\bf Kill} this group.\\ + S l & Set the {\bf level} of this group. [p/p]\\ + S s & (U) Prompt for a group and toggle its {\bf subscription}.\\ + S t & (u) {\bf Toggle} subscription to this group. [p/p]\\ + S w & (C-w) Kill all groups in the region.\\ + S y & (C-y) {\bf Yank} the last killed group.\\ + S z & Kill all {\bf zombie} groups.\\ + S C-k & Kill all groups on a certain level.\\ + \end{keys} + } + } + + \newcommand{\SummaryModeGeneral}{% + {\esamepage + \begin{keys}{M-RET} + SPC & (A SPC, A n) Select an article, scroll it one page, move to the + next one.\\ + DEL & (A DEL, A p, b) Scroll this article one page back. [distance]\\ + RET & (A RET) Scroll this article one line forward. [distance]\\ + M-RET & (A M-RET) Scroll this article one line backward. [distance]\\ + = & Expand the Summary window (fullsize). + [Prefix: shrink to display article window]\\ + % + \& & Execute a command on all articles whose header matches a regexp. + [Prefix: move backwards]\\ + M-\& & Execute a command on all articles having the process mark.\\ + % + M-n & (G M-n) Go to the {\bf next} summary line of an unread article. + [distance]\\ + M-p & (G M-p) Go to the {\bf previous} summary line of an unread article. + [distance]\\ + M-s & {\bf Search} through all subsequent articles for a regexp.\\ + M-r & Search through all previous articles for a regexp.\\ + % + A P & {\bf Postscript}-print current buffer.\\ + % + M-k & Edit this group's {\bf kill} file.\\ + M-K & Edit the general {\bf kill} file.\\ + % + C-t & Toggle {\bf truncation} of summary lines.\\ + Y g & Regenerate the summary-buffer.\\ + Y c & Insert all cached articles into the summary-buffer.\\ + % + M-C-e & {\bf Edit} the group-parameters.\\ + M-C-a & Customize the group-parameters.\\ + % + % article handling + % + A $<$ & ($<$, A b) Scroll to the beginning of this article.\\ + A $>$ & ($>$, A e) Scroll to the end of this article.\\ + A s & (s) Perform an i{\bf search} in the article buffer.\\ + % + A D & (C-d) Un{\bf digestify} this article into a separate group. + [Prefix: force digest]\\ + M-C-d & Like C-d, but open several documents in nndoc-groups, wrapped + in an nnvirtual group [p/p]\\ + % + A g & (g) (Re)fetch this article ({\bf get}). [Prefix: get raw version]\\ + A r & (\^{}, A \^{}) Fetch the parent(s) of this article. + [Prefix: if positive fetch \textit{n} ancestors; + negative: fetch only the \textit{n}th ancestor]\\ + A t & {\bf Translate} this article.\\ + A R & Fetch all articles mentioned in the {\bf References}-header.\\ + A T & Fetch full \textbf{thread} in which the current article appears.\\ + M-\^{} & Fetch the article with a given Message-ID.\\ + S y & {\bf Yank} the current article into an existing message-buffer. + [p/p]\\ + A M & Setup group parameters for {\bf mailing} lists from + headers. [Prefix: replace old settings]\\ + \end{keys} + } + } + + \newcommand{\MIMESummary}{% + {\esamepage + For the commands operating on one MIME part (a subset of gnus-article-*), a + prefix selects which part to operate on. If the point is placed over a + MIME button in the article buffer, use the corresponding bindings for the + article buffer instead. + + \begin{keys}{W M w} + K v & (b, W M b) {\bf View} the MIME-part.\\ + K o & {\bf Save} the MIME part.\\ + K c & {\bf Copy} the MIME part.\\ + K e & View the MIME part {\bf externally}.\\ + K i & View the MIME part {\bf internally}.\\ + K $\mid$ & Pipe the MIME part to an external command.\\ + K b & Make all the MIME parts have buttons in front of them.\\ + K m & Try to repair {\bf multipart-headers}.\\ + K C & View the MIME part using a different {\bf charset}.\\ + X m & Save all parts matching a MIME type to a directory. [p/p]\\ + M-t & Toggle the buttonized display of the article buffer.\\ + W M w & Decode RFC2047-encoded words in the article headers.\\ + W M c & Decode encoded article bodies. [Prefix: prompt for charset]\\ + W M v & View all MIME parts in the current article.\\ + \end{keys} + } + } + + \newcommand{\SortSummary}{% + {\esamepage + \begin{keys}{C-c C-s C-a} + C-c C-s C-a & Sort the summary-buffer by {\bf author}.\\ + % C-c C-s C-t & Sort the summary-buffer by {\bf recipient}.\\ % No Gnus + C-c C-s C-d & Sort the summary-buffer by {\bf date}.\\ + C-c C-s C-i & Sort the summary-buffer by article score.\\ + C-c C-s C-l & Sort the summary-buffer by amount of {\bf lines}.\\ + C-c C-s C-c & Sort the summary-buffer by length.\\ + C-c C-s C-n & Sort the summary-buffer by article {\bf number}.\\ + C-c C-s C-s & Sort the summary-buffer by {\bf subject}.\\ + C-c C-s C-r & Sort the summary-buffer {\bf randomly}.\\ + C-c C-s C-o & Sort the summary-buffer using the default method.\\ + \end{keys} + With a prefix these functions sort in reverse order. + } + } + + \newcommand{\MailGroups}{% formerly \Bsubmap + {\esamepage + These commands (except `B c') are only valid in a mail group.\\* + \begin{keys}{B M-C-e} + B DEL & (B backspace, B delete) {\bf Delete} the mail article from disk (!). + [p/p]\\ + B B & Crosspost this article to another group.\\ + B c & {\bf Copy} this article from any group to a mail group. [p/p]\\ + B e & {\bf Expire} all expirable articles in this group. [p/p]\\ + B i & {\bf Import} a random file into this group.\\ + B I & Create an empty article in this group.\\ + B m & {\bf Move} the article from one mail group to another. [p/p]\\ + B p & Query whether the article was {\bf posted} as well.\\ + B q & {\bf Query} where the article will end up after fancy splitting\\ + B r & {\bf Respool} this mail article. [p/p]\\ + B t & {\bf Trace} the fancy splitting patterns applied to this article.\\ + B w & (e) Edit this article.\\ + B M-C-e & {\bf Expunge} (delete from disk) all expirable articles in this group + (!). [p/p]\\ + K E & {\bf Encrypt} article body. [p/p]\\ + \end{keys} + } + } + + \newcommand{\DraftGroup}{% formerly \Dsubmap + {\esamepage + The ``drafts''-group contains messages that have been saved but not sent + and rejected articles. \\* + \begin{keys}{B DEL} + D e & \textbf{edit} message.\\ + D s & \textbf{Send} message. [p/p]\\ + D S & \textbf{Send} all messages.\\ + D t & \textbf{Toggle} sending (mark as unsendable).\\ + B DEL & \textbf{Delete} message (like in mailgroup).\\ + \end{keys} + } + } + + \newcommand{\SelectArticles}{% formerly \Gsubmap + {\esamepage + These commands select the target article. They do not understand the prefix.\\* + \begin{keys}{G C-n} + h & Enter article-buffer.\\ + G b & (,) Go to the {\bf best} article (the one with highest score).\\ + G f & (.) Go to the {\bf first} unread article.\\ + G n & (n) Go to the {\bf next} unread article.\\ + G p & (p) Go to the {\bf previous} unread article.\\ + % + G N & (N) Go to {\bf the} next article.\\ + G P & (P) Go to the {\bf previous} article.\\ + % + G C-n & (M-C-n) Go to the {\bf next} article with the same subject.\\ + G C-p & (M-C-p) Go to the {\bf previous} article with the same subject.\\ + % + G l & (l) Go to the previously read article ({\bf last-read-article}).\\ + G o & Pop an article off the summary history and go to it.\\ + % + G g & Search an article via subject.\\ + G j & (j) Search an article via Message-Id or subject.\\ + \end{keys} + } + } + + \newcommand{\ArticleModeGeneral}{% + {\esamepage + The normal navigation keys work in Article mode. Some additional keys are:\\ + \begin{keys}{C-c RET} + C-c \^{} & Get the article with the Message-ID near point.\\ + C-c RET & Send reply to address near point.\\ + h & Go to the \textbf{header}-line of the article in the + summary-buffer.\\ + s & Go to \textbf{summary}-buffer.\\ + RET & (middle mouse button) Activate the button at point to follow + an URL or Message-ID.\\ + TAB & Move the point to the next button.\\ + M-TAB & Move point to previous button.\\ + \end{keys} + } + } + + \newcommand{\WashArticle}{% formerly \Wsubmap + {\esamepage + \begin{keys}{W W H} + W 6 & Translate a base64 article.\\ + W a & Strip certain {\bf headers} from body.\\ + W b & Make Message-IDs and URLs in the article mouse-clickable + {\bf buttons}.\\ + W c & Translate CRLF-pairs to LF and then the remaining CR's to LF's.\\ + W d & Treat {\bf dumbquotes}.\\ + W e & Treat {\bf emphasized} text.\\ + W h & Treat {\bf HTML}.\\ + W l & (w) Remove page breaks ({\bf\^{}L}) from the article.\\ + W m & {\bf Morse} decode article.\\ + W o & Treat {\bf overstrike} or underline (\^{}H\_) in the article.\\ + W p & Verify X-{\bf PGP}-Sig header.\\ + W q & Treat {\bf quoted}-printable in the article.\\ + W r & (C-c C-r) Do a Caesar {\bf rotate} (rot13) on the article.\\ + W s & Verify (and decrypt) a {\bf signed} message.\\ + W t & (t) {\bf Toggle} display of all headers.\\ + W u & {\bf Unsplit} broken URLs.\\ + W v & (v) Toggle permanent {\bf verbose} displaying of all headers.\\ + W w & Do word {\bf wrap} in the article.\\ + W B & Add clickable {\bf buttons} to the article headers.\\ + W C & {\bf Capitalize} first word in each sentence.\\ + W Q & Fill long lines.\\ + W Z & Translate a HZ-encoded article.\\ + % + W G u & {\bf Unfold} folded header lines.\\ + W G f & {\bf Fold} all header lines.\\ + W G n & Unfold {\bf Newsgroups:} and Follow-Up-To:.\\ + % + W Y c & Repair broken {\bf citations}.\\ + W Y a & Repair broken {\bf attribution} lines.\\ + W Y u & {\bf Unwrap} broken citation lines.\\ + W Y f & Do a {\bf full} deuglification (W Y c, W Y a, W Y u).\\ + \end{keys} + } + } + + \newcommand{\BlankAndWhitespace}{% + {\esamepage + \begin{keys}{W E w} + W E l & Strip blank {\bf lines} from the beginning of the article.\\ + W E m & Replace blank lines with empty lines and remove {\bf multiple} + blank lines.\\ + W E t & Remove {\bf trailing} blank lines.\\ + W E a & Strip blank lines at the beginning and the end + (W E l, W E m and W E t).\\ + W E A & Strip {\bf all} blank lines.\\ + W E s & Strip leading blank lines from the article body.\\ + W E e & Strip trailing blank lines from the article body.\\ + W E w & Remove leading {\bf whitespace} from all headers.\\ + \end{keys} + } + } + + \newcommand{\Picons}{% + {\esamepage + \begin{keys}{W D D} + W D s & (W g) Display {\bf smilies}.\\ + W D x & (W f) Look for and display any X-{\bf Face} headers.\\ + W D d & Display any Face headers.\\ + W D n & Toggle picons in {\bf Newsgroups} and Followup-To.\\ + W D m & Toggle picons in {\bf mail} headers (To and Cc).\\ + W D f & Toggle picons in {\bf From}.\\ + W D D & Remove all images from the article buffer.\\ + \end{keys} + } + } + + \newcommand{\TimeAndDate}{% + {\esamepage + \begin{keys}{W T u} + W T u & (W T z) Display the article timestamp in GMT ({\bf UT, ZULU}).\\ + W T i & Display the article timestamp in {\bf ISO} 8601.\\ + W T l & Display the article timestamp in the {\bf local} timezone.\\ + W T s & Display according to `gnus-article-time-format'.\\ + W T e & Display the time {\bf elapsed} since it was sent.\\ + W T o & Display the {\bf original} timestamp.\\ + W T p & Display the date in format that's {\bf + pronounceable} in English.\\ + \end{keys} + } + } + + \newcommand{\HideHighlightArticle}{% + {\esamepage + \begin{keys}{W W C-c} + W W a & Hide {\bf all} unwanted parts. Calls W W h, W W s, W W C-c.\\ + W W h & Hide article {\bf headers}.\\ + W W b & Hide {\bf boring} headers.\\ + W W s & Hide {\bf signature}.\\ + W W l & Hide {\bf list} identifiers in subject-header.\\ + W W P & Hide {\bf PEM} (privacy enhanced messages).\\ + W W B & Hide banner specified by group parameter.\\ + W W c & Hide {\bf citation}.\\ + W W C-c & Hide {\bf citation} using a more intelligent algorithm.\\ + W W C & Hide cited text in articles that aren't roots.\\ + W H a & Highlight {\bf all} parts. Calls W b, W H c, W H h, W H s.\\ + W H c & Highlight article {\bf citations}.\\ + W H h & Highlight article {\bf headers}.\\ + W H s & Highlight article {\bf signature}.\\ + \end{keys} + For all hiding-commands: A positive prefix always hides, and a negative + prefix will show what was previously hidden. + }} + + \newcommand{\MIMEArticleMode}{% + {\esamepage + \begin{keys}{RET} + RET & (BUTTON-2) Toggle display of the MIME object.\\ + v & Prompt for a method and then view object using this method.\\ + o & Prompt for a filename and save the MIME object.\\ + C-o & Prompt for a filename to save the MIME object to and remove it.\\ + d & {\bf Delete} the MIME object.\\ + c & {\bf Copy} the MIME object to a new buffer and display this buffer.\\ + i & Display the MIME object in this buffer.\\ + C & Copy the MIME object to a new buffer and display this buffer using {\bf Charset} \\ + E & View internally. \\ + e & View {\bf externally}. \\ + t & View the MIME object as a different {\bf type}.\\ + p & {\bf Print} the MIME object.\\ + $\mid$ & Pipe the MIME object to a process.\\ + . & Take action on the MIME object.\\ + \end{keys} + } + } + + %% end of article mode for reading .......................................... + + \newcommand{\MarkArticlesGeneral}{% formerly \Msubmap + {\esamepage + \begin{keys}{M M-C-r} + d & (M d, M r) Mark this article as read and move to the next one. + [scope]\\ + D & Mark this article as read and move to the previous one. [scope]\\ + ! & (u, M !, M t) Tick this article (mark it as interesting) and move + to the next one. [scope]\\ + U & Tick this article and move to the previous one. [scope]\\ + M ? & (?) Mark this article as dormant (only followups are + interesting). [scope]\\ + M D & Show all {\bf dormant} articles (normally they are hidden unless they + have any followups).\\ + M M-D & Hide all {\bf dormant} articles.\\ + C-w & Mark all articles between point and mark as read.\\ + M-u & (M SPC, M c) Clear all marks from this article and move to the next + one. [scope]\\ + M-U & Clear all marks from this article and move to the previous one. + [scope]\\ + % + M e & (E, M x) Mark this article as {\bf expirable}. [scope]\\ + % + M k & (k) {\bf Kill} all articles with the same subject then select the + next unread one.\\ + M K & (C-k) {\bf Kill} all articles with the same subject as this one.\\ + % + M C & {\bf Catch-up} the articles that are not ticked and not dormant.\\ + M C-c & {\bf Catch-up} all articles in this group.\\ + M H & {\bf Catch-up} (mark read) this group to point (to-{\bf here}).\\ + % + M b & Set a {\bf bookmark} in this article.\\ + M B & Remove the {\bf bookmark} from this article.\\ + % + M M-r & (x) Expunge all {\bf read} articles from this group.\\ + M M-C-r & Expunge all articles having a given mark.\\ + M S & (C-c M-C-s) {\bf Show} all expunged articles.\\ + M M C-h & Displays some more keys doing ticking slightly differently.\\ + \end{keys} + The variable `gnus-summary-goto-unread' controls what happens after a mark + has been set (C-x C-i g Setting Marks RET) + }} + + \newcommand{\MarkByScore}{% + \begin{keys}{M V m} + M V c & {\bf Clear} all marks from all high-scored articles. [score]\\ + M V k & {\bf Kill} all low-scored articles. [score]\\ + M V m & Mark all high-scored articles with a given {\bf mark}. [score]\\ + M V u & Mark all high-scored articles as interesting (tick them). [score]\\ + \end{keys} + } + } + +\newcommand{\ProcessMark}{% + {\esamepage + These commands set and remove the process mark (\#). You only need to use + it if the set of articles you want to operate on is non-contiguous. Else + use a numeric prefix.\\* + \begin{keys}{M P R} + M P p & (\#, M \#) Mark this article.\\ + M P u & (M-\#, M M-\#) \textbf{unmark} this article.\\ + M P b & Mark all articles in {\bf buffer}.\\ + M P r & Mark all articles in the {\bf region}.\\ + M P g & Unmark all articles in the region.\\ + M P R & Mark all articles matching a {\bf regexp}.\\ + M P G & Unmark all articles matching a regexp.\\ + M P t & Mark all articles in this (sub){\bf thread}.\\ + M P T & Unmark all articles in this (sub){\bf thread}.\\ + M P s & Mark all articles in the current {\bf series}.\\ + M P S & Mark all {\bf series} that already contain a marked article.\\ + M P a & Mark {\bf all} articles (in series order).\\ + M P U & \textbf{unmark} all articles.\\ + M P i & {\bf Invert} the list of process-marked articles.\\ + M P k & Push the current process-mark set onto stack and unmark + all articles.\\ + M P y & Pop process-mark set from stack and restore it.\\ + M P w & Push process-mark set on the stack.\\ + M P v & Mark all articles with score over the default score. [Prefix: score]\\ + \end{keys} + } + } + +\newcommand{\Limiting}{% + {\esamepage + \begin{keys}{/M} + // & (/s) Limit the summary-buffer to articles matching {\bf subject}.\\ + /a & Limit the summary-buffer to articles matching {\bf author}.\\ + /x & Limit depending on ``extra'' headers.\\ + /u & (x) Limit to {\bf unread} articles. + [Prefix: also exclude ticked and dormant articles]\\ + /. & Limit to unseen articles.\\ + /m & Limit to articles marked with specified {\bf mark}.\\ + /t & Ask for a number and exclude articles younger than that many days. + [Prefix: exclude older articles]\\ + /n & Limit to current article. [p/p]\\ + /w & Pop the previous limit off the stack and restore it. + [Prefix: pop all limits]\\ + /v & Limit to score. [score]\\ + /E & (M S) Include all expunged articles in the limit.\\ + /D & Include all dormant articles in the limit.\\ + /* & Limit to cached articles.\\ + Y C & Include all cached articles in the limit.\\ + /d & Exclude all dormant articles from the limit.\\ + /M & Exclude all marked articles.\\ + /T & Include all articles from the current thread in the limit.\\ + /c & Exclude all dormant articles that have no children from the limit.\\ + /C & Mark all excluded unread articles as read. + [Prefix: also mark ticked and dormant articles]\\ + /o & Insert all {\bf old} articles. [Prefix: how many]\\ + /N & Insert all {\bf new} articles.\\ + /p & Limit to articles {\bf predicated} in the `display' group parameter.\\ + % /r & Limit to {\bf replied} articles. [Prefix: unreplied]\\ % No Gnus + \end{keys} + } + } + +\newcommand{\OutputArticles}{% formerly \Osubmap + {\esamepage + \begin{keys}{O m} + O o & (o, C-o) Save this article using the default article saver. [p/p]\\ + O b & Save this article's {\bf body} in plain file format [p/p]\\ + O f & Save this article in plain {\bf file} format. [p/p]\\ + O F & like O f, but overwrite file's contents. [p/p]\\ + O h & Save this article in {\bf mh} folder format. [p/p]\\ + O m & Save this article in {\bf mail} format. [p/p]\\ + O r & Save this article in {\bf rmail} format. [p/p]\\ + O v & Save this article in {\bf vm} format. [p/p]\\ + O p & ($\mid$) {\bf Pipe} this article to a shell command. [p/p]\\ + O P & \textbf{Print} this article using Muttprint. [p/p]\\ + \end{keys} + } + } + +\newcommand{\PostReplyetc}{% formerly \Ssubmap + {\esamepage + These commands put you in a separate news or mail buffer. See the section + about composing messages for more information.\\* + %After + %editing the article, send it by pressing C-c C-c. If you are in a + %foreign group and want to post the article using the foreign server, give + %a prefix to C-c C-c.\\* + \begin{keys}{S O m} + S p & (a) {\bf Post} an article to this group.\\ + S f & (f) Post a {\bf followup} to this article.\\ + S F & (F) Post a {\bf followup} and include the original. [p/p]\\ + S o p & Forward this article as a {\bf post} to a newsgroup.\\ + S M-c & Send a complaint about excessive crossposting to the author of this + article. [p/p]\\ + % + S m & (m) Send a {\bf mail} to some other person.\\ + S r & (r) Mail a {\bf reply} to the author of this article.\\ + S R & (R) Mail a {\bf reply} and include the original. [p/p]\\ + S B r & Like S r but ignore the Reply-To: header.\\ + S B R & Like S R but ignore the Reply-To: header.\\ + S w & Mail a {\bf wide} reply to this article.\\ + S W & Mail a {\bf wide} reply to this article and include + the original.\\ + S v & Mail a {\bf very} wide reply to this article.\\ + S V & Mail a {\bf very} wide reply to this article and include the original.\\ + S o m & (C-c C-f) Forward this article by {\bf mail} to a person.\\ + S D b & Resend {\bf bounced} mail.\\ + S D r & {\bf Resend} mail to a different person.\\ + S D e & {\bf Edit} and resend.\\ + % + S n & Post a followup via {\bf news} even if you got the message + through mail.\\ + S N & Post a followup via {\bf news} and include the original mail. + [p/p]\\ + % + S c & (C) {\bf Cancel} this article (only works if it is + your own). [p/p]\\ + S s & {\bf Supersede} this article with a new one (only for own + articles).\\ + % + S O m & Digest these series and forward by {\bf mail}. [p/p]\\ + S O p & Digest these series and forward as a {\bf post} to a newsgroup. + [p/p]\\ + % + S u & {\bf Uuencode} a file and post it as a series.\\ + \end{keys} + If you want to cancel or supersede an article you just posted (before it + has appeared on the server), go to the *post-news* buffer, change + `Message-ID' to `Cancel' or `Supersedes' and send it again with C-c C-c. + }} + +\newcommand{\Threading}{% formerly \Tsubmap + {\esamepage + \begin{keys}{T M-\#} + T \# & Mark this thread with the process mark.\\ + T M-\# & Remove process-marks from this thread.\\ + % + T t & Re-{\bf thread} the current article's thread.\\ + T \^{} & Make the current article child of the marked (or previous) article.\\ + % movement + T n & (M-C-f, M-down) Go to the {\bf next} thread. [distance]\\ + T p & (M-C-b, M-up) Go to the {\bf previous} thread. [distance]\\ + T d & {\bf Descend} this thread. [distance]\\ + T u & Ascend this thread ({\bf up}-thread). [distance]\\ + T o & Go to the top of this thread.\\ + % + T s & {\bf Show} the thread hidden under this article.\\ + T h & {\bf Hide} this (sub)thread.\\ + % + T i & {\bf Increase} the score of this thread.\\ + T l & (M-C-l) {\bf Lower} the score of this thread.\\ + % + T k & (M-C-k) {\bf Kill} the current (sub)thread. [Negative prefix: + tick it, positive prefix: unmark it.]\\ + % + T H & {\bf Hide} all threads.\\ + T S & {\bf Show} all hidden threads.\\ + T T & (M-C-t) {\bf Toggle} threading.\\ + \end{keys} + } + } + +\newcommand{\Scoring}{% formerly \Vsubmap + {\esamepage + Read about Adaptive Scoring in the online info.\\* + \begin{keys}{\bf A p m l} + V a & {\bf Add} a new score entry, specifying all elements.\\ + V c & Specify a new score file as {\bf current}.\\ + V e & {\bf Edit} the current score alist.\\ + V f & Edit a score {\bf file} and make it the current one.\\ + V m & {\bf Mark} all articles below a given score as read.\\ + V s & Set the {\bf score} of this article.\\ + V t & Display all score rules applied to this article ({\bf track}).\\ + W w & List {\bf words} used in scoring.\\ + V x & {\bf Expunge} all low-scored articles. [score]\\ + V C & {\bf Customize} the current score file through a user-friendly + interface.\\ + V F & {\bf Flush} the cache of score files.\\ + V R & {\bf Re-score} the summary buffer.\\ + V S & Display the {\bf score} of this article.\\ + \bf A p m l& Make a scoring entry based on this article.\\ + \end{keys} + The four letters stand for:\\* + \quad \B{A}ction: I)ncrease, L)ower;\\* + \quad \B{p}art: a)uthor (from), s)ubject, x)refs (cross-posting), d)ate, l)ines, + message-i)d, t)references (parent), f)ollowup, b)ody, h)ead (all headers);\\* + \quad \B{m}atch type:\\* + \qquad string: s)ubstring, e)xact, r)egexp, f)uzzy,\\* + \qquad date: b)efore, a)t, n)this,\\* + \qquad number: $<$, =, $>$;\\* + \quad \B{l}ifetime: t)emporary, p)ermanent, i)mmediate. + + If you type the second letter in uppercase, the remaining two are assumed + to be s)ubstring and t)emporary. + If you type the third letter in uppercase, the last one is assumed to be + t)emporary. + + \quad Extra keys for manual editing of a score file:\\* + \begin{keys}{C-c C-c} + C-c C-c & Finish editing the score file.\\ + C-c C-d & Insert the current {\bf date} as number of days.\\ + \end{keys} + } + } + +\newcommand{\ExtractSeries}{% formerly \Xsubmap + {\esamepage + Gnus recognizes if the current article is part of a series (multipart + posting whose parts are identified by numbers in their subjects, e.g.{} + 1/10\dots10/10) and processes the series accordingly. You can mark and + process more than one series at a time. If the posting contains any + archives, they are expanded and gathered in a new group.\\* + \begin{keys}{X p} + X b & Un-{\bf binhex} these series. [p/p]\\ + X o & Simply {\bf output} these series (no decoding). [p/p]\\ + X p & Unpack these {\bf postscript} series. [p/p]\\ + X s & Un-{\bf shar} these series. [p/p]\\ + X u & {\bf Uudecode} these series. [p/p]\\ + \end{keys} + + Each one of these commands has four variants:\\* + \begin{keys}{X v \bf Z} + X \bf z & Decode these series. [p/p]\\ + X \bf Z & Decode and save these series. [p/p]\\ + X v \bf z & Decode and view these series. [p/p]\\ + X v \bf Z & Decode, save and view these series. [p/p]\\ + \end{keys} + where {\bf z} or {\bf Z} identifies the decoding method (b, o, p, s, u). + + An alternative binding for the most-often used of these commands is\\* + \begin{keys}{C-c C-v C-v} + C-c C-v C-v & (X v u) Uudecode and view these series. [p/p]\\ + \end{keys} + }} + +\newcommand{\ExitSummary}{% formerly \Zsubmap + {\esamepage + \begin{keys}{Z G} + Z Z & (q, Z Q) Exit this group.\\ + Z E & (Q) {\bf Exit} without updating the group information.\\ + % + Z c & (c) Mark all unticked articles as read ({\bf catch-up}) and exit.\\ + Z C & Mark all articles as read ({\bf catch-up}) and exit.\\ + % + Z n & Mark all articles as read and go to the {\bf next} group.\\ + Z N & Exit and go to {\bf the} next group.\\ + Z P & Exit and go to the {\bf previous} group.\\ + % + Z G & (M-g) Check for new articles in this group ({\bf get}).\\ + Z R & (C-x C-s) Exit this group, and then enter it again ({\bf reenter}). + [Prefix: select all articles, read and unread.]\\ + Z s & Update and save the dribble buffer. [Prefix: save .newsrc* as well]\\ + \end{keys} + } + } + +\newcommand{\MsgCompositionGeneral}{% + Press C-c ? in the composition-buffer to get this information.\\* + {\esamepage + \begin{keys}{C-c C-m} + % sending + C-c C-c & Send message and exit. [Prefix: send via foreign server]\\ + C-c C-s & Send message. [Prefix: send via foreign server]\\ + C-c C-d & Don't send message (save as \textbf{draft}).\\ + C-c C-k & \textbf{Kill} message-buffer.\\ + C-c C-m & {\bf Mail} reply to the address near point. + [Prefix: include the original]\\ + % modify headers/body + C-c C-o & Sort headers.\\ + C-c C-e & \textbf{Elide} region.\\ + C-c C-v & Kill everything outside region.\\ + C-c C-r & Do a \textbf{Rot-13} on the body.\\ + C-c C-w & Insert signature (from `message-signature-file').\\ + C-c C-z & Kill everything up to signature.\\ + C-c C-y & \textbf{Yank} original message.\\ + C-c C-q & Fill the yanked message.\\ + C-c M-C-y & \textbf{Yank} a buffer and quote it.\\ + M-RET & Insert four newlines and format quoted text. [Prefix: + justify as well]\\ + C-c M-r & \textbf{Rename} message buffer. [Prefix: ask for new name]\\ + \end{keys} + } + } + +\newcommand{\MsgCompositionMovementArticle}{% + The following functions create the header-field if necessary.\\* + {\esamepage + \begin{keys}{C-c C-f C-u} + C-c TAB & Move to \textbf{signature}.\\ + C-c C-b & Move to \textbf{body}.\\ + C-c C-f C-t & (C-c C-t) Move to \textbf{To:}.\\ + C-c C-f C-c & Move to \textbf{Cc:}.\\ + C-c C-f C-b & Move to \textbf{Bcc:}.\\ + C-c C-f C-w & Move to \textbf{Fcc:}.\\ + C-c C-f C-s & Move to \textbf{Subject:}.\\ + C-c C-f C-r & Move to \textbf{Reply-To:}.\\ + C-c C-f C-f & Move to \textbf{Followup-To:}.\\ + C-c C-f C-n & (C-c C-n) Move to \textbf{Newsgroups:}.\\ + C-c C-f C-u & Move to \textbf{Summary:}.\\ + C-c C-f C-k & Move to \textbf{Keywords:}.\\ + C-c C-f C-d & Move to \textbf{Distribution:}.\\ + C-c C-f C-m & Move to \textbf{Mail-Followup-To:}.\\ + C-c C-f C-o & Move to \textbf{From:}.\\ + C-c C-f C-a & Insert a reasonable \textbf{Mail-Followup-To:} for + an unsubscribed list. [Prefix: include addresses in \textbf{Cc:}]\\ + C-c C-f TAB & (C-c C-u) Move to \textbf{Importance:}.\\ + C-c M-n & Insert \textbf{Disposition-Notification-To:} + (request receipt).\\ + \end{keys} + } + } + +\newcommand{\MsgCompositionMML}{% + {\esamepage + \begin{keys}{C-c C-m P} + C-c C-m f & (C-c C-a) Attach \textbf{file}.\\ + C-c C-m b & Attach contents of \textbf{buffer}.\\ + C-c C-m e & Attach \textbf{external} file (ftp..).\\ + C-c C-m P & Create MIME-\textbf{preview} (new + buffer). [Prefix: show raw MIME preview]\\ + C-c C-m v & \textbf{Validate} article.\\ + C-c C-m p & Insert \textbf{part}.\\ + C-c C-m m & Insert \textbf{multi}-part.\\ + C-c C-m q & \textbf{Quote} region.\\ + C-c C-m c s & Encrypt message using \textbf{S/MIME}.\\ + C-c C-m c o & Encrypt message using PGP.\\ + C-c C-m c p & Encrypt message using \textbf{PGP/MIME}.\\ + C-c C-m s s & Sign message using \textbf{S/MIME}.\\ + C-c C-m s o & Sign message using PGP.\\ + C-c C-m s p & Sign message using \textbf{PGP/MIME}.\\ + C-c C-m C-n & Remove security related MML tags from message.\\ + % TODO: narrow headers (C-c C-m n) ? + \end{keys} + } + } + +%% TODO: +\newcommand{\ServerMode}{% + {\esamepage + To enter this mode, press \^{} while in Group mode.\\* + \begin{keys}{SPC} + SPC & (RET) Browse this server.\\ + a & {\bf Add} a new server.\\ + c & {\bf Copy} this server.\\ + e & {\bf Edit} a server.\\ + k & {\bf Kill} this server. [scope]\\ + l & {\bf List} all servers.\\ + q & Return to the group buffer ({\bf quit}).\\ + s & Request that the server scan its sources for new articles.\\ + g & Request that the server regenerate its data.\\ + y & {\bf Yank} the previously killed server.\\ + O & Try to {\bf open} a connection to this server.\\ + C & {\bf Close} connection to this server.\\ + D & Mark this server as unreachable ({\bf deny}).\\ + M-o & {\bf Open} the connection to all servers.\\ + M-c & {\bf Close} the connection to all servers.\\ + R & Make all denied servers into closed servers.\\ + L & Set server status to offline.\\ + \end{keys} + } + } + +\newcommand{\BrowseServer}{% + {\esamepage + To enter this mode, press `B' while in Group mode.\\* + \begin{keys}{RET} + RET & Enter the current group.\\ + SPC & Enter the current group and display the first article.\\ + ? & Give a very short help message.\\ + n & Go to the {\bf next} group. [distance]\\ + p & Go to the {\bf previous} group. [distance]\\ + q & (l) {\bf Quit} browse mode.\\ + u & Subscribe to the current group. [scope]\\ + \end{keys} + } + } + +\newcommand{\GroupUnplugged}{% + {\esamepage + \begin{keys}{J S} + J j & Toggle plugged-state.\\ + J s & Fetch articles from all groups for offline-reading.\\ + J u & Fetch all eligible articles from this group.\\ + J S & \textbf{Send} all sendable messages in the drafts group.\\ + % + J c & Enter \textbf{category} buffer.\\ + J a & \textbf{Add} this group to an Agent category [p/p].\\ + J r & \textbf{Remove} this group from its Agent category [p/p].\\ + J Y & Synchronize flags changed while unplugged with remote server.\\ + \end{keys} + } + } + +\newcommand{\SummaryUnplugged}{% + {\esamepage + \begin{keys}{J M-\#} + J \# & \textbf{Mark} the article for downloading.\\ + J M-\# & \textbf{Unmark} the article for downloading.\\ + @ & \textbf{Toggle} whether to download the article.\\ + J c & Mark all undownloaded articles as read (\textbf{catch-up}).\\ + J u & Download all downloadable articles from group.\\ + \end{keys} + } + } + +\newcommand{\ServerUnplugged}{% + {\esamepage + \begin{keys}{J a} + J a & \textbf{Add} the current server to the list of servers covered + by the agent.\\ + J r & \textbf{Remove} the current server from the list of servers covered + by the agent.\\ + \end{keys} + } + } + +% end {gnusref} % % % % % % % % % % % % % % % % % % % % % % % % % % + + +% o some things might not be updated: scoring and server modes, maybe more +% o Gnus Unplugged category-buffer commands need to be written + +\begin{document} + +\def\progver{5.10}\def\refver{5.10-1} % program and refcard versions +\def\date{Jan 10th, 2004} +\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$} + +\ifthenelse{\isundefined{\booklettrue}}{ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \raggedbottom\raggedright + \twocolumn + % use \tiny to shrink it to 4 pages (needs a high-resolution printer though) + % \tiny + \scriptsize + \pagestyle{plain} + \Title + \par + \Logo{refcard} +}{ + \setcounter{page}{0} + \thispagestyle{empty} + \vspace*{\fill} + \Title + \vspace{0.4in} + \Logo{booklet} + \vspace*{\fill} + \pagebreak +}%ifbooklet% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% TODO: how does this work ? +%\tableofcontents + +\Notes +% + +\section*{Group-Mode} +\GroupModeGeneral + \subsection*{Group Subscribedness-Levels} + \GroupLevels + \subsection*{List Groups} + \ListGroups + \subsection*{Create/Edit Foreign Groups} + \CreateEditGroups + \subsection*{Unsubscribe, Kill and Yank Groups} + \SubscribeKillYankGroups + \subsection*{Mark Groups} + \MarkGroups + \subsection*{Group-Unplugged} + \GroupUnplugged +% topics in group-mode + \subsection*{Group Topics} + \GroupTopicsGeneral + \subsubsection*{Topic Sorting} + \TopicSorting + +% \ifthenelse{\isundefined{\booklettrue}}{}{\pagebreak} + +% summary-mode +\section*{Summary Mode} +\SummaryModeGeneral + \subsection*{Select Articles} + \SelectArticles +% + \subsection*{Threading} + \Threading +% + \subsection*{Limiting} + \Limiting + \subsection*{Sort the Summary-Buffer} + \SortSummary + \subsection*{Score (Value) Commands} + \Scoring + +\ifthenelse{\isundefined{\booklettrue}}{% ifcard %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \subsection*{Output Articles} + \OutputArticles + \subsection*{Extract Series (Uudecode etc)} + \ExtractSeries +}{}%ifcard% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \subsection*{MIME operations from the Summary-Buffer} + \MIMESummary + +\ifthenelse{\isundefined{\booklettrue}}{}{% ifbooklet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \subsection*{Extract Series (Uudecode etc)} + \ExtractSeries + \subsection*{Output Articles} + \OutputArticles +}%ifbooklet% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% + \subsection*{Post, Followup, Reply, Forward, Cancel} + \PostReplyetc + +\ifthenelse{\isundefined{\booklettrue}}{\newpage}{}% newpage ifcard + + \subsection*{Message Composition} + + \MsgCompositionGeneral + \subsubsection*{Jumping in message-buffer} + \MsgCompositionMovementArticle + \subsubsection*{Attachments/MML} + \MsgCompositionMML +% marking articles + \subsection*{Mark Articles} + \MarkArticlesGeneral + \subsubsection*{Mark Based on Score} + \MarkByScore + \subsubsection*{The Process Mark} + \ProcessMark + \subsubsection*{Mark Indication-Characters} + \MarkCharacters +% +\ifthenelse{\isundefined{\booklettrue}}{\newpage}{}% + + \subsection*{Summary-Unplugged} + \SummaryUnplugged + \subsection*{Mail-Group Commands} + \MailGroups + \subsection*{Draft-Group Commands} + \DraftGroup +% exiting + \subsection*{Exit the Summary-Buffer} + \ExitSummary +% +% +\section*{Article Mode (reading)} +\ArticleModeGeneral + \subsection*{Wash the Article-Buffer} + \WashArticle + \subsubsection*{Blank Lines and Whitespace} + \BlankAndWhitespace + \subsubsection*{Picons, X-faces, Smileys} + \Picons + \subsubsection*{Time and Date} + \TimeAndDate + \subsection*{Hide/Highlight Parts of the Article} + \HideHighlightArticle + \subsection*{MIME operations from the Article-Buffer (reading)} + \MIMEArticleMode +% +% +\section*{Server Mode} +\ServerMode + \subsection*{Unplugged-Server} + \ServerUnplugged +% +% +\section*{Browse Server Mode} +\BrowseServer + +%\pagebreak +\vspace*{\fill} +\Copyright + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: + +% arch-tag: be438b0e-6832-4afb-8c56-5f84743e5cd1 diff --git a/etc/gnus-tut.txt b/etc/gnus-tut.txt index a76b591dbf1..29b5356e9e9 100644 --- a/etc/gnus-tut.txt +++ b/etc/gnus-tut.txt @@ -24,7 +24,7 @@ was done by moi, yours truly, your humble servant, Lars Magne Ingebrigtsen. If you have a WWW browser, you can investigate to your heart's delight at . -;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news @@ -43,8 +43,8 @@ heart's delight at . ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. From lars Thu Feb 23 23:20:38 1995 From: larsi@ifi.uio.no (ding) diff --git a/etc/grep.txt b/etc/grep.txt new file mode 100644 index 00000000000..8acfc4fc644 --- /dev/null +++ b/etc/grep.txt @@ -0,0 +1,87 @@ +* Introduction -*-grep-*- + +This shows the different kinds of messages grep recognizes by default and +how they are rendered. It is intended both to help you decide which matchers +you need and as a test of the matchers. Move the mouse over a colored part +to see how much text was actually matched. + +Please do not edit this file in grep-mode, it may lose escape +sequences on saving. Visit this file literally for editing. + + +* GNU grep 2.5.1 + +grep -nH -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the INFO tree + +* GNU grep 2.5.1 with default colors + +grep -nH --color=always -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the INFO tree + +* GNU grep 2.5.1-cvs with the specified matching color + +GREP_COLORS='mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne' grep -nH --color=always -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the INFO tree + +* GNU grep 2.5.1-cvs with colors for the file name, line number and match + +GREP_COLORS='mt=01;31:fn=35:ln=32:bn=:se=:ml=36:cx=37:ne' grep -nH --color=always -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the INFO tree +1:2:3:4:text +1:2:3:4:text +1:2:3:4:text + +* GNU grep 2.5.1-cvs with default colors + +grep -nH --color=always -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the INFO tree + +* GNU grep 2.5.1 on lines starting with a number and colon + +grep -nH -e "Universal Time" ../lispref/* +../lispref/os.texi:1010:0:00 January 1, 1970 UTC (Coordinated Universal Time) + +* GNU grep 2.5.1 with context lines + +grep -C 2 -nH --color=always -e "INFO tree" ../info/* +../info/dir-4-looking at that node, which is (dir)Top. +../info/dir-5- +../info/dir:6:File: dir Node: Top This is the top of the INFO tree +../info/dir-7- +../info/dir-8-The Info Directory + +* GNU grep 2.5.1 on files recognized as binary + +Binary file emacs-7 matches +Binary file 2005-06 matches + +* GNU grep 2.5.1: other messages + +Grep started at Tue Jul 19 15:41:30 +grep: ../info/dirinfo: No such file or directory +Grep interrupt at Tue Jul 19 15:42:31 +Grep killed at Tue Jul 19 15:42:31 +Grep terminated at Tue Jul 19 15:42:31 +Grep exited abnormally with code 2 at Tue Jul 19 15:42:31 +Grep finished with no matches found at Tue Jul 19 15:43:12 +Grep finished (matches found) at Thu Jul 21 15:02:15 + +* agrep + +agrep -n "INFO tree" ../info/* +../info/dir: 6: File: dir Node: Top This is the top of the INFO tree + +* unknown greps + +grep -nH -e "xyzxyz" ../info/* +../info/emacs-2:1205:10:inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2:1205:10-15:inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2:1205.10-1205.15:inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2 1205.10-15 inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2 1205.10-1205.15 inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2 1205 inserts `xyzxyzxyzxyz' in the current buffer. + +;;; Local Variables: +;;; buffer-read-only: t +;;; End: diff --git a/etc/images/README b/etc/images/README new file mode 100644 index 00000000000..229840a2669 --- /dev/null +++ b/etc/images/README @@ -0,0 +1,17 @@ +All of the following icons are not part of Emacs, but distributed and +used by Emacs. + +The following icons are from GTK+ 2.x: + + close.xpm copy.xpm cut.xpm help.xpm home.xpm + index.xpm jump-to.xpm left-arrow.xpm new.xpm open.xpm + paste.xpm preferences.xpm print.xpm right-arrow.xpm save.xpm + saveas.xpm search.xpm spell.xpm undo.xpm up-arrow.xpm + + back-arrow.xpm and fwd-arrow.xpm are slightly modified undo and redo. + + diropen.xpm is file-manager.png from Gnome hicolor theme. + +The following icons are from GNOME 2.10: + + refresh.pbm, refresh.xpm diff --git a/lisp/toolbar/attach.pbm b/etc/images/attach.pbm similarity index 100% rename from lisp/toolbar/attach.pbm rename to etc/images/attach.pbm diff --git a/etc/images/back-arrow.pbm b/etc/images/back-arrow.pbm new file mode 100644 index 0000000000000000000000000000000000000000..7f9b8975d2f2b3fe8b064cc120cab88631bd7cea GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #98AF74", +", c #9BB572", +"< c #9BAA87", +"1 c #9CAF84", +"2 c #A4B690", +"3 c #A8BCA6", +"4 c #ADBDA0", +"5 c #AFC394", +"6 c #BAD09D", +"7 c #B5C3A9", +"8 c #BED2A3", +"9 c #D5E1C6", +"0 c #FFFFFF", +"q c None", +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqq qqqqqqqqqqqqq", +"qqqqqqqqq qqqqqqqqqqqqq", +"qqqqqqqq 9 qqqqqqqqqqqqq", +"qqqqqqq 96 qqqqqqqqqq", +"qqqqqq 968664% qqqqqqqqq", +"qqqqq 966666663 qqqqqqqq", +"qqqq <666666666* qqqqqqq", +"qqqqq X@@@@@@;67 qqqqqq", +"qqqqqq .@@@@@@=6$ qqqqqq", +"qqqqqqq .@ X@,2 qqqqqq", +"qqqqqqqq X q +-6 qqqqqq", +"qqqqqqqqq qq @6 qqqqqq", +"qqqqqqqqqq qqq -: qqqqqq", +"qqqqqqqqqqqqqq >o qqqqqq", +"qqqqqqqqqqqqqq 5 qqqqqqq", +"qqqqqqqqqqqqq 1O qqqqqqq", +"qqqqqqqqqqqq &# qqqqqqqq", +"qqqqqqqqqqqqq qqqqqqqqq", +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqqqqqqqqqqqqqqqq"}; diff --git a/lisp/toolbar/cancel.pbm b/etc/images/cancel.pbm similarity index 100% rename from lisp/toolbar/cancel.pbm rename to etc/images/cancel.pbm diff --git a/lisp/toolbar/cancel.xpm b/etc/images/cancel.xpm similarity index 100% rename from lisp/toolbar/cancel.xpm rename to etc/images/cancel.xpm diff --git a/etc/images/close.pbm b/etc/images/close.pbm new file mode 100644 index 0000000000000000000000000000000000000000..5229be2752527aa91ee2683ccf29e2b67dc54980 GIT binary patch literal 199 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #5A5A5A", +", c #6B6B6B", +"' c #B3B3B3", +") c #FFFFFF", +"! c #D6D6D6", +"~ c #818181", +"{ c #A7A7A7", +"] c #8F8F8F", +"^ c #C6C6C6", +"/ c #808080", +"( c #E7E7E7", +"_ c #6D6D6D", +": c #767676", +"< c #F5F5F5", +" ", +" ", +" ", +"............. ", +".+@@@@@@@@@#$. ", +".@%%%%%%%%%%%. ", +".@&**=%+*%*+%. ", +".@%%%%%%%%---. ", +".@;>%,*+-............ ", +".@%%%%%%.'))))))))))!. ", +".@&**%*~.)))))))))))). ", +".@%%%%%-.){]]&)^])]^). ", +".@;>>%,/.)))))))))))). ", +".@%%%%%(.)_;):]^)^])). ", +".@&**%*~.)))))))))))). ", +".<%%%%%-.){]])]]^)&]). ", +".$%%%%%-.)))))))))))). ", +" ........)_;;):]^)^]). ", +" .)))))))))))). ", +" .){]])]]^)&]). ", +" .)))))))))))). ", +" .!))))))))))!. ", +" .............. ", +" "}; diff --git a/etc/images/cut.pbm b/etc/images/cut.pbm new file mode 100644 index 0000000000000000000000000000000000000000..29bf1abc07358d925d04e0eae5a0d038ee1d47bd GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #BAB5AB", +", c #565653", +"' c #EDECE9", +") c #A4A097", +"! c #817F7E", +"~ c #4E4C48", +"{ c #F6F5F4", +"] c #474541", +"^ c #EFEEEC", +"/ c #8C8B8A", +"( c #F3F2F0", +"_ c #77746D", +": c #323232", +"< c #EBEBEA", +"[ c #605D58", +"} c #F5F4F3", +"| c #CECCC7", +"1 c #363634", +"2 c #6F6E6D", +"3 c #BEBDBB", +"4 c #EAE7E4", +"5 c #B8B5B1", +"6 c #474747", +"7 c #DAD8D4", +"8 c #9B9996", +"9 c #161615", +"0 c #6D6B6A", +"a c #3A3837", +" ", +" ", +" . . ", +" . . ", +" .+. .@. ", +" .#$ %@. ", +" .&*. .=-. ", +" .;>, %'). ", +" !#*. .=-~ ", +" .{>] ~^>. ", +" /(_.:<-[ ", +" .}|123>. ", +" .456>. ", +" .78.. ", +" .90a. ", +" ............. ", +" . ... ... ... ", +" .. .. .. .. ", +" . . . . ", +" .. .. .. .. ", +" .... .. . ", +" .... .... ", +" ", +" "}; diff --git a/etc/images/diropen.pbm b/etc/images/diropen.pbm new file mode 100644 index 0000000000000000000000000000000000000000..61adc3b2a23223f43d12a1c93c8db54161e72b0c GIT binary patch literal 81 zcmWGA;WD&TFf!q?|KH%i;LyOJ07DBJ7#1` c #898E72", +", c #3C4032", +"' c #575845", +") c #34332C", +"! c #24231D", +" ............... ", +" .+@@@@@@@@@@@@@#. ", +".$@@@@@@@@@@@@@@@#.", +".++++%%%%%%%%%&&&*.", +".&&&&&&&&&&******#.", +".*%+++%%%%%%%%%&=#.", +".*+***********##-#.", +".*+****;===;####-#.", +".*+****=*****###-#.", +".*+****;*****###-#.", +".*+****########>-#.", +".*&######>>>>>>>,>.", +".*#-------------'>)", +".*&&&&&&&&&&&&&*#>)", +".*&************#'>)", +".*&***********##,>)", +".*&****====;###>,>)", +".#&****=**#**##>,;)", +".#&****>****###>,;)", +".#&****########>,;)", +".##''''''''''''',;)", +".#>==============;)", +".''''''''''''''''-!", +" ................. "}; diff --git a/etc/images/execute.pbm b/etc/images/execute.pbm new file mode 100644 index 0000000000000000000000000000000000000000..84bcbb38428fa43105a4258583807e1b9e9ea3d1 GIT binary patch literal 81 ecmWGA;W9E&Ff!p{K!5}W20RF&4x#|UMj-(?t_B4F literal 0 HcmV?d00001 diff --git a/lisp/toolbar/execute.xpm b/etc/images/execute.xpm similarity index 100% rename from lisp/toolbar/execute.xpm rename to etc/images/execute.xpm diff --git a/lisp/toolbar/exit.pbm b/etc/images/exit.pbm similarity index 100% rename from lisp/toolbar/exit.pbm rename to etc/images/exit.pbm diff --git a/lisp/toolbar/exit.xpm b/etc/images/exit.xpm similarity index 100% rename from lisp/toolbar/exit.xpm rename to etc/images/exit.xpm diff --git a/etc/images/ezimage/bits.xpm b/etc/images/ezimage/bits.xpm new file mode 100644 index 00000000000..b291fcfb5f3 --- /dev/null +++ b/etc/images/ezimage/bits.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * sb_obj_xpm[] = { +"15 15 2 1", +" c None", +". c #000CFF", +" .. . .. . ", +". . . . . . ", +". . . . . . ", +". . . . . . ", +" .. . .. . ", +" ", +". .. . .. ", +". . . . . . ", +". . . . . . ", +". . . . . . ", +". .. . .. ", +" ", +" .. . .. . ", +". . . . . . ", +". . . . . . "}; diff --git a/etc/images/ezimage/bitsbang.xpm b/etc/images/ezimage/bitsbang.xpm new file mode 100644 index 00000000000..cd49e831d9d --- /dev/null +++ b/etc/images/ezimage/bitsbang.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static char * sb_objod_xpm[] = { +"15 15 3 1", +" c None", +". c #000CFF", +"+ c #FFFA00", +" .. . .. . ", +". .++ . . . ", +". .++ . . . ", +". . ++. . . ", +" .. ++ .. . ", +" ++ ", +". ..++. .. ", +". . .++ . . ", +". . .++ . . ", +". . .++ . . ", +". .. . .. ", +" ++ ", +" .. . ++. . ", +". . . . . . ", +". . . . . . "}; diff --git a/etc/images/ezimage/box-minus.xpm b/etc/images/ezimage/box-minus.xpm new file mode 100644 index 00000000000..a24583cd24d --- /dev/null +++ b/etc/images/ezimage/box-minus.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * sb_box_minus_xpm[] = { +"20 15 4 1", +" c None", +". c #000000", +"+ c #828282", +"@ c #D19200", +"...+ +..+ ", +".@@.+ +.@.+", +"+.@@.+ +.@@@.", +"+.@@@.+++++++++.@@..", +" +..@............@.+", +" +.@..@@@@@@@@@@@..+", +" +.@@..............+", +" +.@@.@@@@@@@@@@@@.+", +" +.@@.@@@@@@@@@@@@.+", +" +.@@.@@@......@@@.+", +" +.@@.@@@......@@@.+", +" +.@.@@@@@@@@@@@@.+", +" +..@@@@@@@@@@@@.+", +" +..............+", +" ++++++++++++++ "}; diff --git a/etc/images/ezimage/box-plus.xpm b/etc/images/ezimage/box-plus.xpm new file mode 100644 index 00000000000..5f70fef9278 --- /dev/null +++ b/etc/images/ezimage/box-plus.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * sb_box_plus_xpm[] = { +"20 15 4 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #D19200", +" ", +" .............. ", +" .++++++++++++++. ", +" .++@@@@@@+@@@@@+. ", +" .+@+@@@@@@+@@@@@+. ", +" .+@@++++++++++++++.", +" .+@@+@@@@@@@@@@@@+.", +" .+@@+@@@@@++@@@@@+.", +" .+@@+@@@@@++@@@@@+.", +" .+@@+@@@++++++@@@+.", +" .+@@+@@@++++++@@@+.", +" .+@+@@@@@++@@@@@+.", +" .++@@@@@++@@@@@+.", +" .++++++++++++++.", +" .............. "}; diff --git a/etc/images/ezimage/box.xpm b/etc/images/ezimage/box.xpm new file mode 100644 index 00000000000..f56971543ec --- /dev/null +++ b/etc/images/ezimage/box.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * sb_box_xpm[] = { +"20 15 4 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #FFF993", +" ", +" ............... ", +" .++++++++++++++. ", +" .++@@@@@@+@@@@@+. ", +" .+@+@@@@@@+@@@@@+. ", +" .+@@++++++++++++++.", +" .+@@+@@@@@@@@@@@@+.", +" .+@@+@@@@@@@@@@@@+.", +" .+@@+@@@@@@@@@@@@+.", +" .+@@+@@@@@@@@@@@@+.", +" .+@@+@@@@@@@@@@@@+.", +" .+@+@@@@@@@@@@@@+.", +". .++@@@@@@@@@@@@+.", +" .++++++++++++++.", +" .............. "}; diff --git a/etc/images/ezimage/checkmark.xpm b/etc/images/ezimage/checkmark.xpm new file mode 100644 index 00000000000..ad4078b64b3 --- /dev/null +++ b/etc/images/ezimage/checkmark.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * sb_chk_xpm[] = { +"15 15 2 1", +" c None", +". c #FF0000", +" ", +" . . .. ", +" . . . ", +" . . . . ", +" . .. . ", +" .. ", +" .. ", +" ... .. ", +" ... .. ", +" .... .. ", +" ... .. ", +" .... ", +" ... ", +" . ", +" "}; diff --git a/etc/images/ezimage/dir-minus.xpm b/etc/images/ezimage/dir-minus.xpm new file mode 100644 index 00000000000..2edd33e6b2b --- /dev/null +++ b/etc/images/ezimage/dir-minus.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * sb_dir_minus_xpm[] = { +"20 15 5 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #DBDB00", +"# c #FFF993", +" ....... ", +".+++++++. ", +".+@@@@@@+......... ", +".+@@@@@@@++++++++. ", +".+@@@@@@@@@@@@@@+...", +".+@@++++++++++++++++", +".+@@+##############+", +".+@+##############+.", +".+@+####++++++####+.", +".+@+####++++++####+.", +".+@+##############+.", +".++##############+..", +".++##############+. ", +".+++++++++++++++++. ", +" ................. "}; diff --git a/etc/images/ezimage/dir-plus.xpm b/etc/images/ezimage/dir-plus.xpm new file mode 100644 index 00000000000..93154af7e82 --- /dev/null +++ b/etc/images/ezimage/dir-plus.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * sb_dir_plus_xpm[] = { +"20 15 5 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #DBDB00", +"# c #FFF993", +" ....... ", +".+++++++. ", +".+@@@@@@+.......... ", +".+@@@@@@@++++++++++.", +".+@@@@@@@@@@@@@@@@+.", +".+#######++#####@@+.", +".+#######++######@+.", +".+#####++++++####@+.", +".+#####++++++####@+.", +".+#######++######@+.", +".+#######++######@+.", +".+###############@+.", +".+###############@+.", +".++++++++++++++++++.", +" .................. "}; diff --git a/lisp/sb-dir.xpm b/etc/images/ezimage/dir.xpm similarity index 51% rename from lisp/sb-dir.xpm rename to etc/images/ezimage/dir.xpm index 622ce19e937..de1d3fd6698 100644 --- a/lisp/sb-dir.xpm +++ b/etc/images/ezimage/dir.xpm @@ -1,22 +1,23 @@ /* XPM */ static char * sb_dir_xpm[] = { -"20 15 4 1", +"20 15 5 1", " c None", ". c #828282", "+ c #000000", -"@ c #FFF993", +"@ c #DBDB00", +"# c #FFF993", " ....... ", ".+++++++. ", ".+@@@@@@+.......... ", ".+@@@@@@@++++++++++.", ".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", -".+@@@@@@@@@@@@@@@@+.", +".+##############@@+.", +".+###############@+.", +".+###############@+.", +".+###############@+.", +".+###############@+.", +".+###############@+.", +".+###############@+.", +".+###############@+.", ".++++++++++++++++++.", " .................. "}; diff --git a/etc/images/ezimage/doc-minus.xpm b/etc/images/ezimage/doc-minus.xpm new file mode 100644 index 00000000000..2480e4b9db4 --- /dev/null +++ b/etc/images/ezimage/doc-minus.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * sb_doc_minus_xpm[] = { +"15 15 5 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #5A818B", +"# c #FFFFFF", +" ....... ", +" .+++++++. ", +" .+@@@@@@+. ", +" .+@@@@@@+#. ", +" .+@@@@@@+#+.", +" .+@####@+##+.", +" .+@@@@@@@+#+. ", +" .+@@@@@@+##+. ", +".++++@@@@+#+. ", +".+###++++##+. ", +".+########+. ", +".++#######+. ", +" ..++++##+. ", +" ....+++. ", +" ... "}; diff --git a/etc/images/ezimage/doc-plus.xpm b/etc/images/ezimage/doc-plus.xpm new file mode 100644 index 00000000000..eb7ebe17309 --- /dev/null +++ b/etc/images/ezimage/doc-plus.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * sb_doc_plus_xpm[] = { +"15 15 5 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #5A818B", +"# c #FFFFFF", +" ....... ", +" .+++++++. ", +" .+@@@@@@+. ", +" .+@@#@@@+#. ", +" .+@@#@@@+#+.", +" .+@#####+##+.", +" .+@@@@#@@+#+. ", +" .+@@@@#@+##+. ", +".++++@@@@+#+. ", +".+###++++##+. ", +".+########+. ", +".++#######+. ", +" ..++++##+. ", +" ....+++. ", +" ... "}; diff --git a/etc/images/ezimage/doc.xpm b/etc/images/ezimage/doc.xpm new file mode 100644 index 00000000000..3ed8eee2bcf --- /dev/null +++ b/etc/images/ezimage/doc.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * sb_doc_xpm[] = { +"15 15 5 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #5A818B", +"# c #FFFFFF", +" ....... ", +" .+++++++. ", +" .+@@@@@@+. ", +" .+@@@@@@+#. ", +" .+@@@@@@+#+.", +" .+@@@@@@+##+.", +" .+@@@@@@@+#+. ", +" .+@@@@@@+##+. ", +".++++@@@@+#+. ", +".+###++++##+. ", +".+########+. ", +".+########+. ", +".++++++##+. ", +" ......+++. ", +" ... "}; diff --git a/etc/images/ezimage/info.xpm b/etc/images/ezimage/info.xpm new file mode 100644 index 00000000000..0027252bf57 --- /dev/null +++ b/etc/images/ezimage/info.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * sb_info_xpm[] = { +"10 15 4 1", +" c None", +". c #BEBEBE", +"+ c #0000FF", +"@ c #FFFFFF", +" .. ", +" ..+++. ", +" .+++@++. ", +" .+++++++ ", +" .+++++++ ", +".++@@@++++", +".++++@++++", +".++++@++++", +".++++@++++", +" .+++@++++", +" .+++@+++ ", +" .+@@@@@+ ", +" .+++++++ ", +" .+++++ ", +" ++ "}; diff --git a/etc/images/ezimage/key.xpm b/etc/images/ezimage/key.xpm new file mode 100644 index 00000000000..4b9c7b8188d --- /dev/null +++ b/etc/images/ezimage/key.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * key_xpm[] = { +"16 16 4 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #FFF993", +" ........ ", +" ..++++++.. ", +" .+@@@@@@+. ", +" .+@@++@@+. ", +" .+@@@@@@+. ", +" .+@@@@@@+. ", +" .+@@@@@@+. ", +" .+@@@@+. ", +" .+@@+. ", +" .+@@@+. ", +" .+@@+. ", +" .+@@+. ", +" .+@@@+. ", +" .+@@+. ", +" .++. ", +" .. "}; diff --git a/etc/images/ezimage/label.xpm b/etc/images/ezimage/label.xpm new file mode 100644 index 00000000000..715cc2c1dee --- /dev/null +++ b/etc/images/ezimage/label.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * sb_label_xpm[] = { +"10 16 3 1", +" c None", +". c gray", +"+ c blue", +" .....", +" ..+++++", +" .+++++++", +" .++++++++", +" .++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++", +".+++++++++"}; diff --git a/etc/images/ezimage/lock.xpm b/etc/images/ezimage/lock.xpm new file mode 100644 index 00000000000..f51ee975c2c --- /dev/null +++ b/etc/images/ezimage/lock.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * lock_xpm[] = { +"16 16 4 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #FFF993", +" ........ ", +" ..++++++.. ", +" .++....++. ", +" .+......+. ", +" ..+......+.. ", +" ..++++++++++..", +" .++@@@@@@@@++.", +" .+@@@@@@@@@@+.", +" .+@@@@@@@@@@+.", +" .+@@@++++@@@+.", +" .+@@@@++@@@@+.", +" .+@@@@@@@@@@+.", +" .+@@@@++@@@@+.", +" .+@@@@@@@@@@+.", +" .++++++++++++.", +" .............."}; diff --git a/lisp/sb-mail.xpm b/etc/images/ezimage/mail.xpm similarity index 100% rename from lisp/sb-mail.xpm rename to etc/images/ezimage/mail.xpm diff --git a/lisp/sb-pg-minus.xpm b/etc/images/ezimage/page-minus.xpm similarity index 67% rename from lisp/sb-pg-minus.xpm rename to etc/images/ezimage/page-minus.xpm index 63230ef1c0a..2e5424361d1 100644 --- a/lisp/sb-pg-minus.xpm +++ b/etc/images/ezimage/page-minus.xpm @@ -1,17 +1,18 @@ /* XPM */ -static char * sb_file__xpm[] = { -"20 15 4 1", +static char * sb_pg_minus_xpm[] = { +"20 15 5 1", " c None", ". c #828282", "+ c #000000", "@ c #FFFFFF", +"# c #ADADAD", " ............ ", " .++++++++++++.", " .++@@@@@@@@@@+.", -" .+@+@@@@@@@@@@+.", -" .+@@+@@@@@@@@@@+.", -" .+@@@+@@@@@@@@@@+.", -" .+@@@@+@@@@@@@@@@+.", +" .+#+@@@@@@@@@@+.", +" .+##+@@@@@@@@@@+.", +" .+###+@@@@@@@@@@+.", +" .+####+@@@@@@@@@@+.", ".+++++++@++++++@@@+.", ".+@@@@@@@++++++@@@+.", ".+@@@@@@@@@@@@@@@@+.", diff --git a/lisp/sb-pg-plus.xpm b/etc/images/ezimage/page-plus.xpm similarity index 67% rename from lisp/sb-pg-plus.xpm rename to etc/images/ezimage/page-plus.xpm index 0cd4ce81299..aa5d38fd215 100644 --- a/lisp/sb-pg-plus.xpm +++ b/etc/images/ezimage/page-plus.xpm @@ -1,17 +1,18 @@ /* XPM */ -static char * sb_file+_xpm[] = { -"20 15 4 1", +static char * sb_pg_plus_xpm[] = { +"20 15 5 1", " c None", ". c #828282", "+ c #000000", "@ c #FFFFFF", +"# c #ADADAD", " ............ ", " .++++++++++++.", " .++@@@@@@@@@@+.", -" .+@+@@@@@@@@@@+.", -" .+@@+@@@@@@@@@@+.", -" .+@@@+@@@++@@@@@+.", -" .+@@@@+@@@++@@@@@+.", +" .+#+@@@@@@@@@@+.", +" .+##+@@@@@@@@@@+.", +" .+###+@@@++@@@@@+.", +" .+####+@@@++@@@@@+.", ".+++++++@++++++@@@+.", ".+@@@@@@@++++++@@@+.", ".+@@@@@@@@@++@@@@@+.", diff --git a/lisp/sb-pg.xpm b/etc/images/ezimage/page.xpm similarity index 68% rename from lisp/sb-pg.xpm rename to etc/images/ezimage/page.xpm index 241767abbdf..75c6a6e7299 100644 --- a/lisp/sb-pg.xpm +++ b/etc/images/ezimage/page.xpm @@ -1,17 +1,18 @@ /* XPM */ -static char * sb_file_xpm[] = { -"20 15 4 1", +static char * sb_pg_xpm[] = { +"20 15 5 1", " c None", ". c #828282", "+ c #000000", "@ c #FFFFFF", +"# c #ADADAD", " ............ ", " .++++++++++++.", " .++@@@@@@@@@@+.", -" .+@+@@@@@@@@@@+.", -" .+@@+@@@@@@@@@@+.", -" .+@@@+@@@@@@@@@@+.", -" .+@@@@+@@@@@@@@@@+.", +" .+#+@@@@@@@@@@+.", +" .+##+@@@@@@@@@@+.", +" .+###+@@@@@@@@@@+.", +" .+####+@@@@@@@@@@+.", ".+++++++@@@@@@@@@@+.", ".+@@@@@@@@@@@@@@@@+.", ".+@@@@@@@@@@@@@@@@+.", diff --git a/lisp/sb-tag-gt.xpm b/etc/images/ezimage/tag-gt.xpm similarity index 100% rename from lisp/sb-tag-gt.xpm rename to etc/images/ezimage/tag-gt.xpm diff --git a/lisp/sb-tag-minus.xpm b/etc/images/ezimage/tag-minus.xpm similarity index 100% rename from lisp/sb-tag-minus.xpm rename to etc/images/ezimage/tag-minus.xpm diff --git a/lisp/sb-tag-plus.xpm b/etc/images/ezimage/tag-plus.xpm similarity index 100% rename from lisp/sb-tag-plus.xpm rename to etc/images/ezimage/tag-plus.xpm diff --git a/lisp/sb-tag-type.xpm b/etc/images/ezimage/tag-type.xpm similarity index 100% rename from lisp/sb-tag-type.xpm rename to etc/images/ezimage/tag-type.xpm diff --git a/lisp/sb-tag-v.xpm b/etc/images/ezimage/tag-v.xpm similarity index 100% rename from lisp/sb-tag-v.xpm rename to etc/images/ezimage/tag-v.xpm diff --git a/lisp/sb-tag.xpm b/etc/images/ezimage/tag.xpm similarity index 100% rename from lisp/sb-tag.xpm rename to etc/images/ezimage/tag.xpm diff --git a/etc/images/ezimage/unlock.xpm b/etc/images/ezimage/unlock.xpm new file mode 100644 index 00000000000..5841163a017 --- /dev/null +++ b/etc/images/ezimage/unlock.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * unlock_xpm[] = { +"16 16 4 1", +" c None", +". c #828282", +"+ c #000000", +"@ c #FFF993", +" ....... ", +"..+++++.. ", +".++...++. ", +".+.....+. ", +".+.....+........", +"....++++++++++..", +" .++@@@@@@@@++.", +" .+@@@@@@@@@@+.", +" .+@@@@@@@@@@+.", +" .+@@@++++@@@+.", +" .+@@@@++@@@@+.", +" .+@@@@@@@@@@+.", +" .+@@@@++@@@@+.", +" .+@@@@@@@@@@+.", +" .++++++++++++.", +" .............."}; diff --git a/lisp/toolbar/fld_open.pbm b/etc/images/fld-open.pbm similarity index 100% rename from lisp/toolbar/fld_open.pbm rename to etc/images/fld-open.pbm diff --git a/lisp/toolbar/fld_open.xpm b/etc/images/fld-open.xpm similarity index 100% rename from lisp/toolbar/fld_open.xpm rename to etc/images/fld-open.xpm diff --git a/etc/images/fwd-arrow.pbm b/etc/images/fwd-arrow.pbm new file mode 100644 index 0000000000000000000000000000000000000000..e08e6fa35db54576aafe33fabf8d9088ed471d47 GIT binary patch literal 185 zcmYj}y$XU*07gG=KZ8?`@IgbhsP`s>QegBW4Vs8ZqY_3!RH!uj2t87dR+Dr%>p79F zkGY9=>*N@_Jf%#FsxBXQ&JAhhWL&&lN@Xg?bZkze(C0I6&R0r9&HmHmTF^fP(WGV+ z2Hcmorl`7`G%Q`&RJM+eJ}?9Zz_Nwsp{0gV51GJ6tXi>vxIk c #98AF74", +", c #9BB572", +"< c #919889", +"1 c #92998C", +"2 c #939A8D", +"3 c #99A28F", +"4 c #9BAA87", +"5 c #9CAF84", +"6 c #A4B690", +"7 c #A8BCA6", +"8 c #ADBDA0", +"9 c #AFC394", +"0 c #BAD09D", +"q c #B5C3A9", +"w c #BED2A3", +"e c #BFD3A6", +"r c #C2D5AA", +"t c #C5D7AE", +"y c #C8D9B2", +"u c #CDDCBC", +"i c #D1DFBE", +"p c #D2E0BF", +"a c #D3E0C1", +"s c #D4E0C5", +"d c #D5E1C6", +"f c #FFFFFF", +"g c None", +"gggggggggggggggggggggggg", +"gggggggggggggggggggggggg", +"gggggggggggggggggggggggg", +"ggggggggggggg gggggggggg", +"ggggggggggggg ggggggggg", +"ggggggggggggg 2 gggggggg", +"gggggggggg 02 ggggggg", +"ggggggggg &6riw03 gggggg", +"gggggggg 7suat000< ggggg", +"ggggggg *saie000004 gggg", +"gggggg qs;@@@@@@X ggggg", +"gggggg $y=@@@@@@. gggggg", +"gggggg 6,@X @. ggggggg", +"gggggg 0@+ g X gggggggg", +"gggggg 0@ gg ggggggggg", +"gggggg :- ggg gggggggggg", +"gggggg o> gggggggggggggg", +"ggggggg 9 gggggggggggggg", +"ggggggg O5 ggggggggggggg", +"gggggggg #& gggggggggggg", +"ggggggggg ggggggggggggg", +"gggggggggggggggggggggggg", +"gggggggggggggggggggggggg", +"gggggggggggggggggggggggg"}; diff --git a/etc/images/gnus/bar.xbm b/etc/images/gnus/bar.xbm new file mode 100644 index 00000000000..e61300adb20 --- /dev/null +++ b/etc/images/gnus/bar.xbm @@ -0,0 +1,7 @@ +#define noname_width 6 +#define noname_height 48 +static char noname_bits[] = { + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c}; diff --git a/etc/images/gnus/bar.xpm b/etc/images/gnus/bar.xpm new file mode 100644 index 00000000000..2985065a5c6 --- /dev/null +++ b/etc/images/gnus/bar.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char * picon-bar_xpm[] = { +"6 48 2 1", +" c white s background", +". c black", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. "}; diff --git a/lisp/gnus/catchup.pbm b/etc/images/gnus/catchup.pbm similarity index 100% rename from lisp/gnus/catchup.pbm rename to etc/images/gnus/catchup.pbm diff --git a/etc/images/gnus/catchup.xpm b/etc/images/gnus/catchup.xpm new file mode 100644 index 00000000000..cba849712df --- /dev/null +++ b/etc/images/gnus/catchup.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * catchup_xpm[] = { +"24 24 6 1", +" c None", +". c #FFFFFFFFFFFF", +"X c #E1E1E0E0E0E0", +"o c #A5A5A5A59595", +"O c #999999999999", +"+ c #000000000000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . ", +" . .X ", +" ... .oX . ", +" ..oooX.oXo .X ", +" .oooXXXX..oXXoXX ", +" .oXXXX.XoX.oXooX ", +" X...X.X.XX.XoXX ", +" Xo..X.XXX.XXXX ", +" . Xo.oXX..XXXXXX ", +"OOOOXoXXXXXo.XXXXX++OOOO", +"OOOOOX..X.XXXXXXXX++OOOO", +"OOOOOX..XXXXXXXXX++OOOOO", +"OOOOOOXXXXXXXXX+++OOOOOO", +"OOOOOOOOOXXXX++++OOOOOOO", +"OOOOOOOOO+++++OOOOOOOOOO", +"OOOOOOOOOO+OOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOO"}; diff --git a/lisp/gnus/cu-exit.pbm b/etc/images/gnus/cu-exit.pbm similarity index 100% rename from lisp/gnus/cu-exit.pbm rename to etc/images/gnus/cu-exit.pbm diff --git a/etc/images/gnus/cu-exit.xpm b/etc/images/gnus/cu-exit.xpm new file mode 100644 index 00000000000..17236223fed --- /dev/null +++ b/etc/images/gnus/cu-exit.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * cu_exit_xpm[] = { +"24 24 4 1", +" c None", +". c #000000000000", +"X c #FFFFFFFFFFFF", +"o c #999999999999", +" ", +" ", +" ", +" ", +" ", +" ..... ", +" .. .XXX. ", +" ..X..XXXX... ", +" .XXXX.XXXX.X... ", +" ..XXXX.XXX.XXX.. ", +" .XXX.......... ", +" .XXX.XXX.XXX.. ", +" .XX.XXX.XXX. ", +" .XX.XXX.XX.. ", +" ............ ", +" .X.X.X.X.. ", +"ooooooo..........ooooooo", +"ooooooo.X.X.X.X.oooooooo", +"ooooooo.........oooooooo", +"ooooooo..X...X..oooooooo", +"ooooooo...X.X...oooooooo", +"ooooooo........ooooooooo", +"ooooooooo.....oooooooooo", +"oooooooooooooooooooooooo"}; diff --git a/etc/images/gnus/dead.xpm b/etc/images/gnus/dead.xpm new file mode 100644 index 00000000000..56463a72951 --- /dev/null +++ b/etc/images/gnus/dead.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * dead_xpm[] = { +"13 14 3 1", +" c None", +". c #000000", +"+ c #FFDD00", +" ....... ", +" ..+++++.. ", +" .+++++++++. ", +".+++++++++++.", +".++.+.+.+.++.", +".+++.+++.+++.", +".++.+.+.+.++.", +".+++++++++++.", +".+++++++++++.", +".+.+++++++.+.", +".++.......++.", +" .+++++++++. ", +" ..+++++.. ", +" ....... "}; diff --git a/lisp/gnus/describe-group.pbm b/etc/images/gnus/describe-group.pbm similarity index 100% rename from lisp/gnus/describe-group.pbm rename to etc/images/gnus/describe-group.pbm diff --git a/etc/images/gnus/describe-group.xpm b/etc/images/gnus/describe-group.xpm new file mode 100644 index 00000000000..b4a6f42a94b --- /dev/null +++ b/etc/images/gnus/describe-group.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * describe_group_xpm[] = { +"24 24 5 1", +". c None", +" c #000000000000", +"o c #FFFFF5F5ACAC", +"+ c #E1E1E0E0E0E0", +"@ c #C7C7C6C6C6C6", +"........................", +"........................", +".................oooo...", +" .. .. .. .. .. oo oo o.", +"..............oooooooooo", +".............ooooooooooo", +" .. .. .. .. oo oo oo oo", +"............oooooooooooo", +"............oooooooooooo", +" .. .. .. .. oo oo oo oo", +"............oooooooooooo", +"............oooooooooooo", +" .. .. .. .. oo oo oo oo", +"............oooooooooooo", +"..... ...oooooooooooo", +" .. ++ .. .o oo oo oo", +"... @@@+ ....ooooooooo", +"... @ ....oooooooo.", +" . . .. .. .. ..", +". ..............", +" ................", +" .. .. .. .. .. ..", +" ..................", +" ...................."}; diff --git a/lisp/gnus/exit-gnus.pbm b/etc/images/gnus/exit-gnus.pbm similarity index 100% rename from lisp/gnus/exit-gnus.pbm rename to etc/images/gnus/exit-gnus.pbm diff --git a/etc/images/gnus/exit-gnus.xpm b/etc/images/gnus/exit-gnus.xpm new file mode 100644 index 00000000000..534f3c2fafb --- /dev/null +++ b/etc/images/gnus/exit-gnus.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * exit_gnus_xpm[] = { +"24 24 6 1", +" c None", +". c #8686ADAD7D7D", +"X c #919187876969", +"o c #C2C2B9B99C9C", +"O c #A8A8F0F0ECEC", +"+ c #EFEFEFEFEFEF", +" ", +" .... . ", +" .. .. . ", +" ............. ", +" . . . .... ", +" ............. ", +" .............. .. ", +" . . .......... . ", +" .XXXX... .. ", +" o.XXX. . .. ", +" oo.X. .. ... ", +" ooX. . ... ", +" oXo. .. ", +" ooX . . ", +" ooX ", +"OOOOoXXOOOOOOOOOOOOOOOOO", +"OOOoXoXOOOOOOOOOOOOOOOOO", +"OOOooXXOOOO+OOOOOOOOOOOO", +"O+OoooXOO+OOO+OO+OOO+OOO", +"OXXoXoXoXOO++O++OO++OO+O", +"XXXXXXXXXXXX+OOOOOOOOOOO", +"XXXXXXXXXXXXXX+O++OO++OO", +"XXXXXXXXXXXXXXXXOOOOOOOO", +"O++O++++O+OO++OOOO++OOO+"}; diff --git a/lisp/gnus/exit-summ.pbm b/etc/images/gnus/exit-summ.pbm similarity index 100% rename from lisp/gnus/exit-summ.pbm rename to etc/images/gnus/exit-summ.pbm diff --git a/etc/images/gnus/exit-summ.xpm b/etc/images/gnus/exit-summ.xpm new file mode 100644 index 00000000000..5234ccb11ec --- /dev/null +++ b/etc/images/gnus/exit-summ.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char * exit_summ_xpm[] = { +"24 24 3 1", +". c None", +" c #000000000000", +"X c #E1E1E0E0E0E0", +" .. .. .. .. .. .. .. ..", +"........................", +"........................", +" .. .. .. ..", +"...... XXXX .....", +"...... XXXXXXX .....", +" .. .. XX XX XX .. ..", +"...... XXXXXXXX .....", +"...... XXXXXXX .....", +" .. .. X XX .. ..", +"...... XXXX .....", +"...... XXXX .....", +" .. .. X XXXXX .. ..", +"...... XXXXXXX .....", +"...... XXXXX XX .....", +" .. .. X XXXXX .. ..", +"...... XXXXX .....", +"...... X .....", +" .. . . .. ..", +"........................", +"........................", +" .. .. .. .. .. .. .. ..", +"........................", +"........................"}; diff --git a/lisp/gnus/followup.pbm b/etc/images/gnus/followup.pbm similarity index 100% rename from lisp/gnus/followup.pbm rename to etc/images/gnus/followup.pbm diff --git a/etc/images/gnus/followup.xpm b/etc/images/gnus/followup.xpm new file mode 100644 index 00000000000..444895a4399 --- /dev/null +++ b/etc/images/gnus/followup.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * followup_xpm[] = { +"24 24 4 1", +" c None", +". c #A5A5A5A59595", +"X c #C7C7C6C6C6C6", +"o c #E1E1E0E0E0E0", +" ", +" . ", +" ..X. ", +" ..XXX. ", +" ..XXXXXo. ", +" ...XXXXXXooo. . ", +" .o.XXXXXooooo..X. ", +" .oo.XXXoooo..XXX. ", +" .oo..Xooo..XXXXXo. ", +" .oo.XX...XXXXXXooo. ", +" .o.Xoo.o.XXXXXoooo. ", +" .XXoo.oo.XXXoooooo. ", +" .Xooo.oo..XXooooooo. ", +" .ooo.oo.XXooooooooo. ", +" .ooo.o.XoooooooooooX.", +" .ooo.XXoooooooooooo.", +" .ooo.Xoooooooooooo. ", +" .ooo.ooooooooooo. ", +" .oo..oooooooooo. ", +" .. .ooooooo.. ", +" .oooooo. ", +" .ooo.. ", +" .oo. ", +" .. "}; diff --git a/lisp/gnus/fuwo.pbm b/etc/images/gnus/fuwo.pbm similarity index 100% rename from lisp/gnus/fuwo.pbm rename to etc/images/gnus/fuwo.pbm diff --git a/etc/images/gnus/fuwo.xpm b/etc/images/gnus/fuwo.xpm new file mode 100644 index 00000000000..362cbc5725a --- /dev/null +++ b/etc/images/gnus/fuwo.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * fuwo_xpm[] = { +"24 24 4 1", +" c None", +". c #A5A5A5A59595", +"X c #C7C7C6C6C6C6", +"o c #E1E1E0E0E0E0", +" ", +" . ", +" .. . ", +" .. . ", +" .. . ", +" ... . . ", +" . . ..X. ", +" . . ..XXX. ", +" . .. ..XXXXXo. ", +" . . ...XXXXXXooo. ", +" . .X .o.XXXXXoooo. ", +" .XX .oo.XXXoooooo. ", +" .X .oo..XXooooooo. ", +" . .oo.XXooooooooo. ", +" . .o.XoooooooooooX.", +" . .XXoooooooooooo.", +" . .Xoooooooooooo. ", +" . .ooooooooooo. ", +" . ..oooooooooo. ", +" .. .ooooooo.. ", +" .oooooo. ", +" .ooo.. ", +" .oo. ", +" .. "}; diff --git a/lisp/gnus/get-news.pbm b/etc/images/gnus/get-news.pbm similarity index 100% rename from lisp/gnus/get-news.pbm rename to etc/images/gnus/get-news.pbm diff --git a/etc/images/gnus/get-news.xpm b/etc/images/gnus/get-news.xpm new file mode 100644 index 00000000000..d7e7b4a3553 --- /dev/null +++ b/etc/images/gnus/get-news.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * get_news_xpm[] = { +"24 24 4 1", +". c None", +"X c #A5A5A5A59595", +"o c #E1E1E0E0E0E0", +"O c #C7C7C6C6C6C6", +"........................", +"........................", +"........................", +".....XXX................", +"...XXoooXXXXX...........", +"XXXoooooXXoooX.XXX......", +"XoXooXXXooooXXXoooX.....", +"XooXoXoXooXXXoooooX.....", +"XooXXXooXoXoXooooooX....", +"XooXOXooXXXooXooooooX...", +"XoXOOXooXOXooXXooooooX..", +"OXOOOXoXOOXooXoooooooX..", +"OXOooOXOOOXoXOooooooooX.", +".OXooOXOooOXOOooooooooX.", +".OXoooOXooOXOooooooooooX", +"..OXooOXoooOXooooooooooX", +"..OXooOOXooOXooooooooooX", +"...OXooOXoooOXoooooooXXX", +"...OXooXOXooOXooooooXOO.", +"....OXXOOXooXOXoooXXO...", +".....OO..OXXOOXooXOO....", +"..........OO..OXXO......", +"...............OO.......", +"........................"}; diff --git a/lisp/gnus/gnntg.pbm b/etc/images/gnus/gnntg.pbm similarity index 100% rename from lisp/gnus/gnntg.pbm rename to etc/images/gnus/gnntg.pbm diff --git a/etc/images/gnus/gnntg.xpm b/etc/images/gnus/gnntg.xpm new file mode 100644 index 00000000000..21bc5f16eb2 --- /dev/null +++ b/etc/images/gnus/gnntg.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * gnntg_xpm[] = { +"24 24 4 1", +" c None", +". c #000000000000", +"X c #FFFFFFFFFFFF", +"o c #C7C7C6C6C6C6", +" ", +" ....... ", +" .XXXXX. ", +" .XXXXX. ... ", +" .XXXXX... .ooo. ", +" .XXXXX.... ..ooo.. ", +" .XXXXX..o.. ..ooo.. ", +" .XXXXX...o.. ..o.. ", +" .XXXXX. ..o........ ", +" .XXXXX. ..oooooooo. ", +" ....... .oooooooo.. ", +" .ooooo..o. ", +" .oooo..o. ", +" .oooo..o. ", +" .oooo..o. ", +" .oooo..o. ", +" ......... ", +" ......oo. ", +" .ooooo... ", +" .oo..o... ", +" .oo..o.. ", +" ........ ", +" .... ... ", +" ... ... "}; diff --git a/etc/gnus-pointer.xbm b/etc/images/gnus/gnus-pointer.xbm similarity index 63% rename from etc/gnus-pointer.xbm rename to etc/images/gnus/gnus-pointer.xbm index 336a377293b..94e915428c3 100644 --- a/etc/gnus-pointer.xbm +++ b/etc/images/gnus/gnus-pointer.xbm @@ -1,7 +1,6 @@ - #define noname_width 18 -#define noname_height 12 +#define noname_height 13 static char noname_bits[] = { - 0xc0,0x0c,0x00,0xe0,0x1f,0x00,0x92,0x39,0x00,0x0e,0x71,0x02, + 0x00,0x00,0x00,0xc0,0x0c,0x00,0xe0,0x1f,0x00,0x92,0x39,0x00,0x0e,0x71,0x02, 0x46,0xe0,0x03,0x20,0xc0,0x01,0x00,0x08,0x00,0x10,0x0d,0x00,0xc4,0x08,0x00, 0x78,0x08,0x00,0x18,0x89,0x00,0x00,0x08,0x00}; diff --git a/etc/gnus-pointer.xpm b/etc/images/gnus/gnus-pointer.xpm similarity index 86% rename from etc/gnus-pointer.xpm rename to etc/images/gnus/gnus-pointer.xpm index ab6b556e955..c47443dbb74 100644 --- a/etc/gnus-pointer.xpm +++ b/etc/images/gnus/gnus-pointer.xpm @@ -1,11 +1,12 @@ /* XPM */ static char *gnus-pointer[] = { /* width height num_colors chars_per_pixel */ -" 18 12 2 1", +" 18 13 2 1", /* colors */ ". c #0000ff", "# c None s None", /* pixels */ +"##################", "######..##..######", "#####........#####", "#.##.##..##...####", diff --git a/etc/images/gnus/gnus.xbm b/etc/images/gnus/gnus.xbm new file mode 100644 index 00000000000..58d1ac845aa --- /dev/null +++ b/etc/images/gnus/gnus.xbm @@ -0,0 +1,622 @@ +#define noname_width 271 +#define noname_height 273 +static char noname_bits[] = { + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x49,0xe0,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x97,0xaa,0x8a,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x57,0x2a,0x41,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa9,0x52,0x16,0xfe,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4a,0x49,0x05, + 0xf9,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0x95,0xaa,0x58,0xf4,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xa5,0x54,0x26,0xe1,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x54,0x49,0x49,0xe4,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x2a,0xa5, + 0x2a,0xd1,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xd5,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xaf,0x52,0x95,0x54,0xc4,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab, + 0x24,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x57,0x29,0xa9,0x92,0x11,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x57,0xd5,0xfa,0xff,0xff,0xab,0xea,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x4a,0x55,0x2a,0x41,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x25,0x29,0xe5,0xff,0xff,0x95,0xa4,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0xa4, + 0x24,0xa5,0x14,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4a,0xa5,0xd4,0xff, + 0x3f,0x52,0xa9,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x29,0x55,0x55,0x55,0x41,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xa9,0x54,0xea,0xff,0xdf,0x2a,0x55,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x55,0x4a,0x49,0x12,0x7e,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0x55,0xa5,0x92,0xff,0x23,0xa5,0x4a,0xd6,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa5,0xa4,0x94,0xaa,0x42, + 0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x4a,0x2a,0xa9,0xff,0xad,0x92,0x24, + 0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a, + 0x95,0x52,0x52,0x29,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x52,0x49,0x55, + 0xfe,0x91,0x54,0x55,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x49,0x29,0x55,0x25,0x85,0x7c,0xff,0xff,0xff,0xff,0xff,0xff, + 0x4f,0x95,0xaa,0x92,0x7e,0x55,0x55,0xa9,0x4a,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,0x50,0x95,0xaa,0x24,0x7e,0xff,0xff, + 0xff,0xff,0xff,0xff,0x57,0x2a,0x95,0x54,0x79,0x95,0x92,0x92,0x94,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xb9,0x62,0x29,0x49, + 0x85,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x49,0x49,0x95,0xba,0xa4,0x54, + 0xaa,0x52,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, + 0x1a,0xf8,0xa7,0xaa,0x22,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x55,0x52, + 0x2a,0x75,0x55,0xa5,0x24,0xa5,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xbf,0x5a,0xfd,0x57,0x92,0x94,0x7e,0xff,0xff,0xff,0xff,0xff, + 0xff,0x4a,0x4a,0x55,0x49,0x89,0x92,0x94,0xaa,0x94,0xf4,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x1a,0xfc,0x2f,0x55,0x05,0x7c,0xff, + 0xff,0xff,0xff,0xff,0xff,0x55,0xa9,0x4a,0x55,0x2a,0x55,0x55,0x55,0x55,0xe5, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x4e,0xfd,0x5f, + 0x29,0xa5,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0xa4,0x54,0x52,0x4a,0x55,0xa9, + 0xa4,0x24,0xa5,0x94,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x2f,0x1d,0xfe,0x3f,0x95,0x04,0x7c,0xff,0xfd,0xff,0xff,0xff,0x3f,0x49,0xa5, + 0x54,0xa9,0xa4,0x92,0x4a,0x49,0x4a,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xaf,0x44,0xfe,0x5f,0xa9,0x52,0x7d,0xff,0xe5,0xff,0xff, + 0xff,0x5f,0x55,0x92,0x2a,0x95,0x52,0x4a,0x52,0xaa,0x52,0x4a,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x16,0xff,0xbf,0x4a,0x05,0x7c, + 0xff,0xd9,0xff,0xff,0xff,0x5f,0x95,0x42,0xa5,0x52,0x95,0xaa,0xaa,0xaa,0x94, + 0x54,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x43,0xfe, + 0xbf,0x54,0x52,0x7d,0x7f,0x25,0xff,0xff,0xff,0xa7,0xa4,0x28,0x92,0x54,0x4a, + 0xa5,0x4a,0x92,0xaa,0x4a,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xab,0x12,0xfe,0x7f,0xa5,0x02,0x7c,0x7f,0x55,0xfd,0xff,0xff,0x95,0x2a, + 0x82,0x54,0xa5,0x54,0x2a,0xa9,0x2a,0xa5,0x52,0xf5,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x27,0x4b,0xff,0xff,0x4a,0x29,0x7d,0xff,0x92,0xfe, + 0xff,0xff,0x55,0x92,0x20,0xa8,0x94,0x2a,0xa5,0x94,0x52,0x29,0xa9,0xf4,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x01,0xff,0x7f,0x52,0x42, + 0x7c,0xff,0x25,0xf9,0xff,0x7f,0xaa,0x02,0x8a,0x40,0x29,0x49,0x09,0x41,0x4a, + 0x55,0x25,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x57, + 0xff,0xff,0x95,0x12,0x7d,0xff,0xa9,0xfa,0xff,0x7f,0x25,0xa9,0x20,0x2a,0xa5, + 0xaa,0x42,0x92,0x54,0x92,0x54,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xaf,0x83,0xff,0xff,0xa9,0x42,0x7e,0xff,0xaa,0xf4,0xff,0xaf,0x54, + 0x01,0x82,0x80,0xaa,0x54,0x14,0x08,0xa2,0xaa,0x4a,0xd2,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xef,0xcf,0xd7,0xff,0xff,0x52,0x12,0x7f,0xff,0x4a, + 0xea,0xff,0x57,0x92,0xaa,0x28,0x24,0x29,0x25,0x81,0x82,0x08,0x49,0x52,0x55, + 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xdf,0xef,0xe7,0xff,0xff,0x2a, + 0x05,0x7e,0xff,0x55,0xd5,0xff,0xa5,0x2a,0x00,0x8e,0x10,0x4a,0x89,0x24,0x28, + 0xa0,0xaa,0x2a,0x49,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xe7,0xff, + 0xef,0xff,0xff,0xa5,0x50,0x7e,0xff,0x25,0xe5,0xff,0x2a,0xa5,0x52,0x7f,0x85, + 0x54,0x35,0x08,0x82,0x0a,0x55,0x95,0xaa,0xfc,0xff,0xff,0xff,0xcf,0xff,0xff, + 0xff,0xff,0xd7,0xff,0xff,0xff,0x7f,0x52,0x85,0x7e,0xff,0xab,0x94,0x1e,0x55, + 0x2a,0xc8,0xff,0x10,0x90,0x92,0xa0,0x08,0x20,0x24,0x52,0x25,0xfd,0xff,0xff, + 0xff,0xef,0xff,0xff,0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0x94,0x10,0x7e,0xff, + 0x93,0xaa,0x6a,0x49,0x49,0xf2,0xff,0x85,0x52,0x09,0x0a,0xa2,0x4a,0x92,0x29, + 0xa9,0xf2,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0x7f, + 0x55,0x25,0x7f,0xff,0x55,0x49,0x49,0x95,0x0a,0xf9,0xff,0x17,0x48,0x26,0x50, + 0x08,0x00,0xa9,0x4a,0x95,0xfa,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xf2, + 0xff,0xff,0xff,0xff,0x92,0x80,0x7e,0xff,0xa7,0x54,0xaa,0xa4,0x52,0xfc,0xff, + 0xaf,0x42,0x89,0xfa,0xbf,0x54,0x20,0xa9,0xa4,0xd4,0xff,0xff,0xff,0xcb,0xff, + 0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0x54,0x29,0x7f,0xff,0x4b,0xa5,0x92, + 0x2a,0x01,0xff,0xff,0x1f,0xa8,0x22,0xff,0xff,0x01,0xa5,0x2a,0x55,0xa9,0xff, + 0xff,0xff,0xd4,0xff,0xff,0xff,0x7f,0xfa,0xff,0xff,0xff,0x7f,0xa5,0x04,0x7f, + 0xff,0x57,0x2a,0x55,0xa9,0x54,0xfe,0xff,0x3f,0x05,0x89,0xff,0xff,0x5f,0x48, + 0x92,0x2a,0x95,0xff,0xff,0xff,0xea,0xff,0xff,0xff,0xff,0xd2,0xff,0xff,0xff, + 0x7f,0x2a,0x91,0x7f,0xff,0xa9,0x54,0x4a,0x52,0x02,0xff,0xff,0xff,0x50,0xd1, + 0xff,0xff,0x1f,0x81,0xaa,0xa4,0x52,0xfe,0xff,0x3f,0xe9,0xff,0xff,0xff,0x7f, + 0x1d,0xff,0xff,0xff,0xff,0x54,0x41,0x7f,0xff,0x93,0x92,0x52,0x95,0xc8,0xff, + 0xff,0xff,0x8b,0xc4,0xff,0xff,0x7f,0x24,0xa5,0x2a,0x49,0xf9,0xff,0x7f,0xd5, + 0xff,0xff,0xff,0xbf,0x4a,0xff,0xff,0xff,0xff,0x4a,0x14,0x7f,0xff,0x28,0xa5, + 0x94,0x2a,0xa0,0xff,0xff,0x7f,0x22,0xf0,0xff,0xff,0x7f,0x12,0x94,0xa4,0xaa, + 0xea,0xff,0xaf,0xea,0xff,0xff,0xff,0x5f,0x8e,0xff,0xff,0xff,0x7f,0xa9,0x40, + 0x7f,0xff,0x48,0x55,0x55,0x12,0xca,0xff,0xff,0xff,0x0a,0xf5,0xff,0xff,0xff, + 0x80,0x52,0x95,0x54,0xaa,0xfe,0x55,0xc4,0xff,0xff,0xff,0x5f,0xa5,0xff,0xff, + 0xff,0xff,0x94,0x14,0x7f,0xff,0x52,0x2a,0xa9,0x4a,0xe1,0xff,0xff,0xbf,0x24, + 0xf0,0xff,0xff,0xff,0x0b,0x28,0xa9,0x92,0x24,0x55,0x49,0xe5,0xd7,0xff,0xff, + 0xa7,0x8a,0xff,0xff,0xff,0x7f,0xa5,0xc0,0x7f,0xff,0x50,0x49,0x95,0x04,0xf8, + 0xff,0xff,0x5f,0x1f,0xfd,0xff,0xff,0xff,0x47,0x45,0x55,0xaa,0xaa,0x4a,0xaa, + 0xea,0xaf,0xff,0xff,0x2b,0xc3,0xff,0xff,0xff,0x7f,0x55,0x94,0x7f,0x7f,0x4a, + 0x55,0x52,0x51,0xfe,0xff,0xff,0x5f,0x4e,0xf8,0xff,0xff,0xff,0x1f,0x50,0x92, + 0x52,0x49,0xa9,0x92,0xe4,0xd3,0xff,0xff,0x4b,0xd5,0xff,0xff,0xff,0xff,0x94, + 0xc0,0x7f,0x3f,0xa0,0xa4,0xaa,0x04,0xfe,0xff,0xff,0xa7,0x1d,0xfd,0xff,0xff, + 0xff,0x9f,0x84,0xaa,0x4a,0xaa,0x24,0x55,0xf2,0x2b,0xff,0x7f,0xa9,0xc1,0xff, + 0xff,0xff,0x7f,0x4a,0x95,0x7f,0xbf,0x2a,0x95,0x24,0x50,0xff,0xff,0xff,0x97, + 0x5e,0xfe,0xff,0xff,0xff,0x3f,0x92,0x24,0x95,0x92,0xaa,0xa4,0xf2,0xcb,0xff, + 0x5f,0xd5,0xe5,0xff,0xff,0xff,0xff,0x52,0x80,0x7f,0x3f,0xa0,0x52,0x15,0x85, + 0xff,0xff,0xff,0xd7,0x38,0xfe,0xff,0xff,0xff,0xff,0x20,0xaa,0x52,0x55,0x55, + 0x55,0xf9,0x29,0xfd,0xab,0xa4,0xf0,0xff,0xff,0xff,0x7f,0x29,0xa9,0x7f,0xff, + 0x42,0x25,0x49,0xe8,0xff,0xff,0xff,0x69,0x7a,0xff,0xff,0xff,0xff,0xff,0x82, + 0x52,0xaa,0x24,0x89,0x4a,0xf8,0x55,0x2a,0x49,0x95,0xf5,0xff,0xff,0xff,0xbf, + 0x2a,0xc4,0x7f,0x7f,0x90,0x54,0x15,0xe2,0xff,0xff,0xff,0x25,0xbc,0xff,0xff, + 0xff,0xff,0xff,0x29,0x48,0x49,0xaa,0xaa,0xa4,0xfa,0x95,0x92,0x54,0x52,0xf0, + 0xff,0xff,0xff,0xbf,0x4a,0xd1,0x7f,0xff,0x05,0xaa,0x40,0xf8,0xff,0xff,0x7f, + 0xaa,0xfc,0xff,0xff,0xff,0xff,0xff,0x43,0xa9,0xaa,0x4a,0x52,0xa9,0xf8,0xa4, + 0xaa,0x52,0x95,0xfc,0xff,0xff,0xff,0x7f,0x52,0xc0,0x7f,0xff,0xa1,0x00,0x24, + 0xfa,0xff,0xff,0xff,0x0a,0xfe,0xff,0xff,0xff,0xff,0xff,0x17,0x92,0x24,0xa5, + 0x2a,0x55,0xfe,0xaa,0xa4,0x2a,0x29,0xf9,0xff,0xff,0xff,0xbf,0x2a,0xea,0x7f, + 0xff,0x05,0x92,0x90,0xfc,0xff,0xff,0xbf,0xa4,0xff,0xff,0xff,0xff,0xff,0xff, + 0x4f,0xa0,0xaa,0x54,0x49,0x25,0x7c,0x49,0x95,0xa4,0x12,0xfc,0xff,0xff,0xff, + 0x7f,0x8a,0xe0,0x7f,0xff,0xa3,0x04,0x05,0xfe,0xff,0xff,0xbf,0x06,0xff,0xff, + 0xff,0xff,0xff,0xff,0x1f,0x49,0x95,0x52,0xaa,0x12,0x7f,0x55,0x52,0x55,0x0a, + 0xfd,0xff,0xff,0xff,0x3f,0x29,0xe8,0x7f,0xff,0x0f,0x50,0x50,0xff,0xff,0xff, + 0x5f,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x04,0xa9,0x4a,0x25,0x45,0x3e, + 0xa9,0x2a,0xa9,0xa2,0xfc,0xff,0xff,0xff,0x7f,0x55,0xe1,0x7f,0xff,0x27,0x05, + 0xc4,0xff,0xff,0xff,0x9f,0x91,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x41,0x4a, + 0x29,0xa9,0x12,0x5e,0x95,0x94,0x4a,0x0a,0xfe,0xff,0xff,0xff,0xbf,0x12,0xf4, + 0x7f,0xff,0x8f,0x50,0xf1,0xff,0xff,0xff,0xa7,0xc2,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x14,0x92,0xaa,0x4a,0xa2,0xbf,0xa4,0x52,0x95,0x22,0xff,0xff,0xff, + 0xff,0x3f,0x45,0xf2,0x7f,0xff,0x3f,0x04,0xf4,0xff,0xff,0xff,0xd7,0xe8,0xff, + 0xff,0xff,0xff,0x5f,0xff,0xff,0x83,0xa8,0x94,0x54,0x09,0x2f,0x55,0x4a,0x52, + 0x49,0xff,0xff,0xff,0xff,0x5f,0x99,0xf0,0x7f,0xff,0x7f,0x51,0xfc,0xff,0xff, + 0xff,0x6b,0xf1,0xff,0xff,0xff,0xff,0x5f,0xfd,0xff,0x2b,0x2a,0xa9,0x12,0x20, + 0x5f,0xa9,0xaa,0x54,0x00,0xff,0xff,0xff,0xff,0x5f,0x15,0xf2,0x7f,0xff,0xff, + 0x8f,0xff,0xff,0xff,0xff,0x2b,0xfc,0xff,0xff,0xff,0xff,0x2f,0xfd,0xff,0x87, + 0xa0,0x4a,0xaa,0x8a,0x9f,0x4a,0x52,0x15,0xa9,0xff,0xff,0xff,0xff,0x5f,0x8a, + 0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x94,0xf8,0xff,0xff,0xff,0xff, + 0x57,0xf2,0xff,0x2f,0x82,0x52,0x05,0xd0,0x2f,0x95,0x4a,0x49,0x84,0xff,0xff, + 0xff,0xff,0xbf,0x24,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x12,0xfd, + 0xff,0xff,0xff,0xff,0x4b,0xd5,0xff,0x9f,0x28,0x54,0x48,0xc5,0xbf,0x52,0x55, + 0x0a,0xe1,0xff,0xff,0xff,0xff,0x9f,0x4a,0xfa,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x1a,0xfe,0xff,0xff,0xff,0xff,0x57,0xa9,0xff,0x3f,0x82,0x00,0x21, + 0xf0,0x5f,0x2a,0x49,0x21,0xc4,0xff,0xff,0xff,0xff,0xaf,0x1a,0xfd,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0x3f,0x85,0xff,0xff,0xff,0xff,0xff,0x29,0xa5,0xff, + 0xff,0x24,0x52,0x88,0xfc,0xbf,0x92,0x2a,0x09,0xf1,0xff,0xff,0xff,0xff,0x9f, + 0x4c,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x15,0xff,0xff,0xff,0x7f, + 0xff,0xa5,0x4a,0xff,0xff,0x90,0x08,0x01,0xfe,0x3f,0x55,0x52,0x24,0xf4,0xff, + 0xff,0xff,0xff,0xaf,0x02,0xfd,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xc6, + 0xff,0xff,0xff,0xbf,0xfe,0x95,0x54,0xff,0xff,0x05,0x42,0xa8,0xfe,0xbf,0xa4, + 0x2a,0x41,0xf9,0xff,0xff,0xff,0xff,0x5f,0x55,0xfc,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0x4f,0xd0,0xff,0xff,0xff,0xbf,0x7c,0xaa,0x92,0xfc,0xff,0x53,0x08, + 0x01,0xff,0x1f,0x4a,0x01,0x04,0xfc,0xff,0xff,0xff,0xff,0x27,0x05,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xc5,0xff,0xff,0xff,0x4f,0xbf,0x52,0xaa, + 0xfe,0xff,0x07,0x42,0xea,0xff,0xbf,0x50,0x54,0x51,0xff,0xff,0xff,0xff,0xff, + 0x97,0x56,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xf0,0xff,0xff,0xff, + 0x2f,0x7f,0xa5,0x54,0xfd,0xff,0x3f,0x09,0xe0,0xff,0x1f,0x02,0x01,0x04,0xff, + 0xff,0xff,0xff,0xff,0xaf,0x02,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x4b, + 0xf5,0xff,0xff,0xff,0xab,0x9f,0x94,0x92,0xfc,0xff,0xff,0x40,0xfd,0xff,0x9f, + 0x48,0x48,0xa1,0xff,0xff,0xff,0xff,0xff,0xa7,0x56,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0x6b,0xf8,0xff,0xff,0xff,0xa4,0x5f,0xa9,0x2a,0xfd,0xff,0xff, + 0xff,0xff,0xff,0x3f,0x22,0x21,0xc4,0xff,0xff,0xff,0xff,0xff,0x2f,0x03,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0xfa,0xff,0xff,0x7f,0xd5,0x2f,0xa5, + 0xa4,0xfa,0xff,0xff,0xff,0xff,0xff,0xbf,0x08,0x08,0xf9,0xff,0xff,0xff,0xff, + 0xff,0x97,0x4a,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x94,0xfc,0xff,0xff, + 0x7f,0x69,0xac,0x2a,0x55,0xf9,0xff,0xff,0xff,0xff,0xff,0x7f,0xa2,0x22,0xf8, + 0xff,0xff,0xff,0xff,0xff,0x53,0x21,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0x15,0xfe,0xff,0xff,0x9f,0x2a,0x95,0x94,0x92,0xf4,0xff,0xff,0xff,0xff,0xff, + 0xff,0x08,0x88,0xfe,0xff,0xff,0xff,0xff,0xff,0x57,0x8b,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xa9,0xfe,0xff,0xff,0x5f,0x52,0xbc,0x52,0x55,0xf5,0xff, + 0xff,0xff,0xff,0xff,0xff,0x21,0x21,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xa1, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x7f,0x0d,0xff,0xff,0xff,0x57,0x15,0x3f, + 0x55,0x49,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xc8,0xff,0xff,0xff,0xff, + 0xff,0xff,0xd7,0x89,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xbf,0xd6,0xff,0xff, + 0xff,0x4b,0x45,0x3f,0x49,0xaa,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf9, + 0xff,0xff,0xff,0xff,0xff,0xff,0xc9,0xe2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0x3f,0x81,0xff,0xff,0xff,0x29,0x11,0x5f,0x28,0x55,0xf5,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xc8,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xd6,0xff,0xff,0x7f,0xaa,0xc2,0x0f,0x55,0x49,0xea, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa5, + 0xe2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x9f,0xe1,0xff,0xff,0xbf,0x4a,0xd1, + 0x5f,0x48,0xa5,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xe9,0xe0,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x27,0xf4,0xff, + 0xff,0xbf,0x94,0xc4,0x07,0x91,0x2a,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xca,0xea,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xaf,0xf1,0xff,0xff,0x9f,0x52,0xe0,0x4b,0x44,0x52,0xe9,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6a,0xe0,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0x4b,0xfc,0xff,0xff,0xab,0x2a,0xf5,0x0f,0x51,0xa5, + 0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x69,0xe5,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x55,0xf8,0xff,0xff,0x95,0x14, + 0xf0,0x5f,0x84,0x54,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0x75,0xf0,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x13,0xfd, + 0xff,0xff,0xa5,0x42,0xf9,0x7f,0x91,0x4a,0xf5,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb2,0xfa,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0x54,0xfe,0xff,0x7f,0x52,0x12,0xfa,0xff,0x20,0xa5,0xe4,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x34,0xf8,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0x25,0xff,0xff,0xaf,0xaa,0x48,0xfc,0xff,0x0b, + 0x29,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xb5,0xf8,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x52,0xff,0xff,0x2f,0x49, + 0x02,0xfe,0xff,0x43,0xaa,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x3f,0x3a,0xfa,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0x4a, + 0xff,0xff,0xa5,0x2a,0xa9,0xff,0xff,0x17,0x25,0xe9,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x9a,0xfc,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0x2a,0xff,0x7f,0x95,0x54,0x80,0xff,0xff,0x07,0xa9,0xea,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x1d,0xfc, + 0xff,0x7f,0xff,0xff,0xff,0xff,0x3f,0xa9,0xfe,0x7f,0xa9,0x12,0xe5,0xff,0xff, + 0x5f,0x4a,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x5f,0xad,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0x95,0xea,0x97,0x54, + 0x4a,0xf0,0xff,0xff,0x1f,0xa8,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x5f,0x0e,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f, + 0x52,0x55,0xa9,0x92,0x02,0xfd,0xff,0xff,0x5f,0x53,0xf5,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x5e,0xfe,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xbf,0x2a,0x49,0x4a,0x55,0x49,0xfc,0xff,0xff,0x3f,0x94,0xf8, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x0f, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4f,0xa5,0xaa,0x92,0xa4,0x20,0xff,0xff, + 0xff,0xbf,0xa4,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x5f,0x57,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,0x52,0x52,0xaa, + 0x2a,0x0a,0xff,0xff,0xff,0x7f,0x54,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0x07,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xa7,0x94,0x4a,0x55,0x4a,0xa0,0xff,0xff,0xff,0xff,0xa8,0xfa,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x57,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0x2f,0x55,0xa9,0x92,0x12,0xe9,0xff,0xff,0xff,0x7f,0x24, + 0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf, + 0x87,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0xa5,0x4a,0xaa,0x44,0xf4,0xff, + 0xff,0xff,0xff,0x55,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xa7,0xab,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xab,0x94,0xa4, + 0x92,0x12,0xf9,0xff,0xff,0xff,0xff,0xa8,0xfa,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xab,0x83,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0x47,0xa9,0x2a,0x55,0x40,0xfc,0xff,0xff,0xff,0xff,0x25,0xf5,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xd7,0x97,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0x33,0x55,0xa9,0x24,0x15,0xfe,0xff,0xff,0xff,0xff, + 0x95,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff, + 0x93,0xc3,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0x25,0xa5,0x2a,0x40,0xff, + 0xff,0xff,0xff,0xff,0xa9,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff, + 0xff,0xff,0xff,0xff,0xe7,0xd5,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4b,0x92, + 0x54,0x92,0xd4,0xff,0xff,0xff,0xff,0xff,0x55,0xf5,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0xff,0xd5,0xc1,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0x97,0xaa,0x4a,0x05,0xe2,0xff,0xff,0xff,0xff,0xff,0x25,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xfd,0xff,0xff,0xff,0xff,0xd5,0xea,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0x55,0x25,0xa1,0xf0,0xff,0xff,0xff,0xff, + 0xff,0x95,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe8,0xfa,0xff,0xff,0xff, + 0xff,0xea,0xe0,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xa7,0x24,0x59,0x04,0xfa, + 0xff,0xff,0xff,0xff,0xff,0xa9,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe2, + 0xfd,0xff,0xff,0xff,0xff,0xc9,0xe9,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4f, + 0x52,0x05,0xa1,0xfc,0xff,0xff,0xff,0xff,0xff,0xa5,0xfa,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x70,0xf9,0xff,0xff,0xff,0xff,0x74,0xe2,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0x47,0x95,0x92,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0xf8, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe2,0xfa,0xff,0xff,0xff,0xff,0x72,0xe8, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x97,0xaa,0x20,0xd0,0xff,0xff,0xff,0xff, + 0xff,0xff,0x55,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xb8,0xfc,0xff,0xff, + 0xff,0xff,0xea,0xe2,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x07,0x04,0x82,0xc2, + 0xff,0xff,0xff,0xff,0xff,0xff,0x29,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x71,0xfd,0xff,0xff,0xff,0x7f,0x2a,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0x4f,0x91,0x28,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xfc,0xff,0xff,0xff, + 0xff,0xff,0xff,0x1f,0x54,0xfe,0xff,0xff,0xff,0x7f,0x75,0xf2,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0x27,0x44,0x82,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x29, + 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xb8,0xfc,0xff,0xff,0xff,0xbf,0x14, + 0xf1,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x0f,0x11,0x20,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x55,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x9a,0xfe,0xff, + 0xff,0xff,0x7f,0x5a,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,0x40,0x85, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x4f,0x2d,0xfd,0xff,0xff,0xff,0x9f,0x12,0xf9,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0x3f,0x14,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0x07,0xa6,0xfe,0xff,0xff,0xff,0x5f,0x4d,0xfa,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0x40,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x4b,0xfe,0xff,0xff,0xff,0xbf, + 0x2c,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x43,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x57,0xff, + 0xff,0xff,0xff,0x5f,0x0a,0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x89,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xd5,0xa9,0xff,0xff,0xff,0xff,0xaf,0x5a,0xfc,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa3,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x81,0x95,0xff,0xff,0xff,0xff,0x9f,0x06,0xfd,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xca,0xa5,0xff,0xff,0xff,0xff, + 0x2f,0x95,0xfc,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xea, + 0xff,0xff,0xff,0xff,0xaf,0x26,0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xf5,0xf4,0xff,0xff,0xff,0xff,0xaf,0x86,0xfe,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x70,0xe5,0xff,0xff,0xff,0xff,0x4f,0x2e,0xfe, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xb2,0xfa,0xff,0xff,0xff, + 0xff,0x57,0x83,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x78, + 0xf2,0xff,0xff,0xff,0xff,0xa7,0x22,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x5f,0x5d,0xfd,0xff,0xff,0xff,0xff,0x97,0x87,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x3c,0xfd,0xff,0xff,0xff,0xff,0x53,0xa3, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xac,0xfe,0xff,0xff, + 0xff,0xff,0x57,0x95,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0x9e,0xfe,0xff,0xff,0xff,0xff,0x97,0x81,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xa7,0x57,0xfe,0xff,0xff,0xff,0xff,0xa9,0xa5,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xaf,0xff,0xff,0xff,0xff,0xff,0x4b, + 0x89,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0x93,0xff,0xff, + 0xff,0xff,0xff,0x95,0xa2,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x83,0xab,0xff,0xff,0xff,0xff,0xff,0xd3,0xc8,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff, + 0xff,0xff,0xff,0xff,0xe9,0xa5,0xff,0xff,0xff,0xff,0xff,0xa5,0xe1,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xd5,0xff,0xff,0xff,0xff,0xff, + 0xd5,0xc8,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xea,0xea,0xff, + 0xff,0xff,0xff,0xff,0x14,0xc1,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff, + 0xff,0xe0,0xe4,0xff,0xff,0xff,0xff,0xff,0x65,0xe8,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf, + 0xff,0xff,0xff,0xff,0x3f,0x72,0xe9,0xff,0xff,0xff,0xff,0xff,0x6a,0xe1,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xbf,0xb8,0xfa,0xff,0xff,0xff,0xff, + 0xff,0x52,0xea,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0x1f,0x7a,0xf5, + 0xff,0xff,0xff,0xff,0x7f,0x2a,0xe0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff, + 0xff,0x8f,0x58,0xfa,0xff,0xff,0xff,0xff,0x7f,0x25,0xf5,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xb5,0xff,0xff,0xdf,0xff,0x57,0x5e,0xfd,0xff,0xff,0xff,0xff,0xff,0x34,0xe0, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xca,0xff,0xff,0x8f,0xff,0x07,0xac,0xfc,0xff,0xff,0xff, + 0xff,0x7f,0x2a,0xf5,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd4,0xff,0xff,0x57,0xff,0x2b,0x2d, + 0xfd,0xff,0xff,0xff,0xff,0xff,0xb2,0xf0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd2,0xff,0xff, + 0x07,0xff,0x43,0x4a,0xff,0xff,0xff,0xff,0xff,0xbf,0x2a,0xf8,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x3f,0xc5,0xff,0xff,0x2b,0xfe,0x08,0xab,0xfe,0xff,0xff,0xff,0xff,0x7f,0xaa, + 0xf2,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xea,0xff,0xff,0x83,0x36,0x20,0x55,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x15,0xf0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xc2,0xff,0xff,0x48,0x4a,0x85, + 0x49,0xff,0xff,0xff,0xff,0xff,0x7f,0x59,0xfa,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xf5,0xff, + 0x7f,0x10,0x29,0x50,0xa5,0xff,0xff,0xff,0xff,0xff,0x3f,0x15,0xf9,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x97,0xe4,0xff,0x7f,0x05,0x95,0x42,0xd5,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x35,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xab,0xea,0xff,0xbf,0xa0,0x24,0xa8,0xd4,0xff,0xff, + 0xff,0xff,0xff,0x7f,0x19,0xf9,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x27,0xe5,0xff,0x3f,0x92,0xaa, + 0x50,0xe9,0xff,0xff,0xff,0xff,0xff,0x9f,0x4a,0xfc,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa9,0xe2, + 0xff,0x9f,0xa0,0xaa,0x2a,0xf5,0xff,0xff,0xff,0xff,0xff,0x5f,0x1a,0xf9,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x95,0xf8,0xff,0x5f,0x4a,0x92,0x4a,0xf5,0xff,0xff,0xff,0xff,0xff, + 0xbf,0x4a,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x52,0xf2,0xff,0x1f,0x20,0x49,0xa5,0xfa,0xff, + 0xff,0xff,0xff,0xff,0x5f,0x1a,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaa,0xf8,0xff,0x47,0xa9, + 0x2a,0x29,0xf9,0xff,0xff,0xff,0xff,0xff,0xbf,0x0a,0xfc,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x49, + 0xf2,0xff,0x17,0x92,0xaa,0xaa,0xfe,0xff,0xff,0xff,0xff,0xff,0x9f,0xac,0xfe, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x9f,0x2a,0xf8,0xff,0x43,0xa8,0x24,0x25,0xff,0xff,0xff,0xff,0xff, + 0xff,0xaf,0x0a,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x94,0xfa,0xff,0x91,0x54,0xaa,0x52,0xff, + 0xff,0xff,0xff,0xff,0xff,0x2f,0x4d,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x45,0xfc,0xff,0x03, + 0x92,0x52,0xaa,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x06,0xfc,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf, + 0x12,0xfe,0xff,0x50,0xaa,0x2a,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xa5, + 0xfe,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xa7,0x44,0xff,0xff,0x0a,0x25,0xa5,0xa4,0xff,0xff,0xff,0xff, + 0xff,0xff,0x97,0x06,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x15,0xff,0xff,0x40,0xa9,0x92,0xea, + 0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x55,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xa1,0xff,0x7f, + 0x92,0x4a,0xaa,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x06,0xfc,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x95,0x8a,0xff,0x3f,0x84,0x54,0xa9,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0x2f, + 0x25,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x52,0xe0,0xff,0xbf,0x50,0xa9,0x4a,0xf2,0xff,0xff,0xff, + 0xff,0xff,0xff,0xa7,0x8e,0xfe,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa9,0xea,0xff,0x3f,0x24,0x95,0x54, + 0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x23,0xfe,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x4a,0xf0,0xff, + 0x9f,0x50,0x69,0x49,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x8b,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xa5,0xf4,0xff,0x0f,0x2d,0x75,0xaa,0xfa,0xff,0xff,0xff,0xff,0xff,0xff, + 0xaf,0x03,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x9f,0x14,0xfa,0xff,0x2f,0xa8,0xfa,0x25,0xfd,0xff,0xff, + 0xff,0xff,0xff,0xff,0x97,0xd7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xaa,0xfc,0xff,0x0f,0x4d,0xfd, + 0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x83,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x12,0xfc, + 0xff,0x27,0x92,0xfe,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xd7,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x97,0x0a,0xff,0xff,0x83,0x56,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xef,0xc7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xab,0x24,0xff,0xff,0x2b,0xaa,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xe7,0xef,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x45,0xff,0xff,0x05,0x95, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x82, + 0xff,0xff,0x51,0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xa9,0xe8,0xff,0xff,0x85,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x52,0xc1,0xff,0xff,0x90,0xd5,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x4d,0xe8,0xff,0xff,0xa5, + 0xe4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x51, + 0xf2,0xff,0x7f,0x40,0xd5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x95,0xf8,0xff,0x7f,0xa9,0xea,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x15,0xfa,0xff,0x3f,0xa4,0xf4,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xa4,0xfc,0xff,0x7f, + 0x71,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f, + 0x15,0xfe,0xff,0x3f,0x94,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xa7,0x0a,0xff,0xff,0x1f,0x79,0xf2,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xa4,0xff,0xff,0x5f,0x8c,0xfa,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0x82,0xff,0xff, + 0x1f,0x5c,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xa4,0x92,0xff,0xff,0xbf,0x56,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x9a,0xc4,0xff,0xff,0x0f,0x2e,0xfd,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa2,0xf0,0xff,0xff,0xaf,0xa7,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x55,0xe4,0xff, + 0xff,0x0f,0x57,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xbf,0x54,0xf2,0xff,0xff,0x9f,0x4b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x9f,0x92,0xf8,0xff,0xff,0xc7,0xab,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x15,0xfe,0xff,0xff,0x97,0xd7, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0x94,0xfc, + 0xff,0xff,0xc7,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x2f,0x05,0xfe,0xff,0xff,0xcf,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x53,0xa9,0xff,0xff,0xff,0xd3,0xeb,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x05,0xff,0xff,0xff,0xe3, + 0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x54,0xc2, + 0xff,0xff,0xff,0xeb,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x95,0xc8,0xff,0xff,0xff,0xf3,0xfa,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xa5,0xd2,0xff,0xff,0xff,0xff,0xf5,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xaa,0xe0,0xff,0xff,0xff, + 0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x49, + 0xf8,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x9f,0x2a,0xf5,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x4a,0xf8,0xff,0xff,0xff,0xff,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x14,0xfd,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97, + 0x4a,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xab,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x52,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0x85,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x54,0xa2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x4a,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa5,0xe0,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x94,0xe4,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x5f,0x55,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0x12,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x54,0xfa,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x0a,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x53,0x45,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x97,0x14,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x45,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x54,0x82, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x4a,0xe9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x52,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x55,0xe8,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x24, + 0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x55,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x24,0xf9,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x15,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f, + 0x49,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x2f,0x95,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x01,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xd5,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x57,0x81,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x97,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xe0,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x93,0xf4,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x57,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x2b,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x89,0xfc,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x05,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x49,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x22,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x89, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xe9,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xff,0x9f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf9,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0x6f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f}; diff --git a/etc/gnus.xpm b/etc/images/gnus/gnus.xpm similarity index 99% rename from etc/gnus.xpm rename to etc/images/gnus/gnus.xpm index a8500ad1bf2..b6ee4d0d733 100644 --- a/etc/gnus.xpm +++ b/etc/images/gnus/gnus.xpm @@ -5,7 +5,7 @@ static char *gnus[] = { /* colors */ ". s thing c #bf9900", "# s shadow c #ffcc00", -"a s background c None", +"a s None c None", /* pixels */ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @@ -281,3 +281,4 @@ static char *gnus[] = { "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }; + diff --git a/etc/images/gnus/important.xpm b/etc/images/gnus/important.xpm new file mode 100644 index 00000000000..e972facff24 --- /dev/null +++ b/etc/images/gnus/important.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 2 1", +"! c red", +"w c Gray75", +/* pixels */ +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwww!!!wwwwwwwwwwww", +"wwwwwwwww!!!wwwwwwwwwwww", +"wwwwwwww!!!!!wwwwwwwwwww", +"wwwwwwww!!!!!wwwwwwwwwww", +"wwwwwww!!!!!!!wwwwwwwwww", +"wwwwwww!!!!!!!wwwwwwwwww", +"wwwwwww!!!!!!!wwwwwwwwww", +"wwwwwww!!!!!!!wwwwwwwwww", +"wwwwwww!!!!!!!wwwwwwwwww", +"wwwwwww!!!!!!!wwwwwwwwww", +"wwwwwww!!!!!!!wwwwwwwwww", +"wwwwwwww!!!!!wwwwwwwwwww", +"wwwwwwww!!!!!wwwwwwwwwww", +"wwwwwwww!!!!!wwwwwwwwwww", +"wwwwwwwww!!!wwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwww!!!wwwwwwwwwwww", +"wwwwwwww!!!!!wwwwwwwwwww", +"wwwwwwww!!!!!wwwwwwwwwww", +"wwwwwwwww!!!wwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww" +}; diff --git a/lisp/gnus/kill-group.pbm b/etc/images/gnus/kill-group.pbm similarity index 100% rename from lisp/gnus/kill-group.pbm rename to etc/images/gnus/kill-group.pbm diff --git a/etc/images/gnus/kill-group.xpm b/etc/images/gnus/kill-group.xpm new file mode 100644 index 00000000000..1ee4fa42add --- /dev/null +++ b/etc/images/gnus/kill-group.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char * kill_group_xpm[] = { +"24 24 3 1", +". c None", +"o c #000000000000", +"+ c #9A9A6C6C4E4E", +"o..o..o..o..o..o..o..o..", +"........................", +"........................", +"o..o..o..o..o..o..o..o..", +"........................", +"........................", +"o..o..o..o..++.o..o..o..", +".......++..++++.........", +"........++.+++..........", +"o..o..o.+++++..o..o..o..", +".........+++............", +".........++++...........", +"o..o..o.++++++.o..o..o..", +"........++.++++.........", +".......++...++++........", +"o..o...+.o...++o..o..o..", +"........................", +"........................", +"o..o..o..o..o..o..o..o..", +"........................", +"........................", +"o..o..o..o..o..o..o..o..", +"........................", +"........................"}; diff --git a/lisp/gnus/mail-reply.pbm b/etc/images/gnus/mail-reply.pbm similarity index 100% rename from lisp/gnus/mail-reply.pbm rename to etc/images/gnus/mail-reply.pbm diff --git a/etc/images/gnus/mail-reply.xpm b/etc/images/gnus/mail-reply.xpm new file mode 100644 index 00000000000..a87f7846170 --- /dev/null +++ b/etc/images/gnus/mail-reply.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * mail_reply_xpm[] = { +"24 24 5 1", +" c None", +". c #000000000000", +"X c #E1E1E0E0E0E0", +"O c #FFFFFFFFFFFF", +"o c #C7C7C6C6C6C6", +" .. ", +" .X. ", +" ..XX. ", +" ......XoXX.. ", +" ...OOO.XooXXX. ", +" ..OOOO.XooXXX. ", +" ...OOOOO.XooXXX... ", +" ..OOOOOO.XXooXX.OO.. ", +" ...OOOO.oooXXX...... ", +" .O...O.oXooXXX...OO. ", +" .OOO...oXoXX...OOOO. ", +" .OOOOO...X...OOOOOO. ", +" .OOOOO.O...OO.OOOOO. ", +" .OOO..OOOOOOOO..OOO. ", +" .OO.OOOOOOOOOOOO.OO. ", +" .O.OOOOOOOOOOOOOO.O. ", +" ..OOOOOOOOOOOOOOOO.. ", +" .................... ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/lisp/gnus/next-ur.pbm b/etc/images/gnus/next-ur.pbm similarity index 100% rename from lisp/gnus/next-ur.pbm rename to etc/images/gnus/next-ur.pbm diff --git a/etc/images/gnus/next-ur.xpm b/etc/images/gnus/next-ur.xpm new file mode 100644 index 00000000000..bea13280b68 --- /dev/null +++ b/etc/images/gnus/next-ur.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * next_ur_xpm[] = { +"24 24 8 1", +". c None", +" c #000000000000", +"X c #A5A5A5A59595", +"o c #C7C7C6C6C6C6", +"O c #FFFF00000000", +"+ c #9A9A6C6C4E4E", +"@ c #E1E1E0E0E0E0", +"# c #FFFFFFFFFFFF", +" .. .. .. .. .. .. .. ..", +"........................", +"............X...........", +" .. .. .. .XXX. .. .. ..", +".........XXooOX.........", +".......XXooo+O@X........", +" .. XXXoooo++@@@X. .. ..", +"....X@Xoooooo@@@X.......", +"....X@@Xooo@@@@@@X......", +" .. X@@XXoo@@@@@@@X.. ..", +"....X@@Xoo@@@@@@@@@X....", +"....X@Xo@@@XX@@@@@@oX...", +" .. oXoo@XXooO@@@@@@X ..", +"....oXoXXooo+OX@@@@Xo...", +"....XXXoooo++@@X@@Xo....", +" .. X@Xoooooo@@@XX .. ..", +"....X@@Xooo@@@@@@X......", +"....X@@XXoo@@@@@@@X.....", +" .. X@@Xoo@@@@@@@@@X. ..", +"....X@Xo@ @@@@@@@ X...", +"... oXoo ## @@ @@ ## ...", +" .. oXo #### @ #### ..", +".....oX #### @@@ #### ..", +".....oX@ ## @@@@X ## ..."}; diff --git a/lisp/gnus/post.pbm b/etc/images/gnus/post.pbm similarity index 100% rename from lisp/gnus/post.pbm rename to etc/images/gnus/post.pbm diff --git a/etc/images/gnus/post.xpm b/etc/images/gnus/post.xpm new file mode 100644 index 00000000000..7a3eaa5e3b1 --- /dev/null +++ b/etc/images/gnus/post.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * post_xpm[] = { +"24 24 8 1", +". c None", +" c #434343434343", +"X c #A5A5A5A59595", +"O c #000000000000", +"+ c #C7C7C6C6C6C6", +"@ c #FFFF00000000", +"# c #9A9A6C6C4E4E", +"$ c #E1E1E0E0E0E0", +"O..O..O..O..O..O..O..O..", +"........................", +"............X...........", +"O..O..O..O.XXX.O..O..O..", +".........XX++@X.........", +".......XX+++#@$X........", +"O..OXXX++++##$$$X.O..O..", +"....X$X++++++$$$X.......", +"....X$$X+++$$$$$$X......", +"O..OX$$XX++$$$$$$$X..O..", +"....X$$X++$$$$$$$$$X....", +"....X$X+$$$$$$$$$$$+X...", +"O..O+X++$$$$$$$$$$$$XO..", +"....+X+$$$$$$$$$$$$X+...", +".....+X$$$$$$$$$$$X+....", +"O..O.+X$$$$$$$$$XXO..O..", +"......+X$$$$$$$X++......", +"......+X$$$$$XX+........", +"O..O..O+X$$$X++O..O..O..", +".......+X$$X++..........", +"........+XX+............", +"O..O..O..O+.O..O..O..O..", +"........................", +"........................"}; diff --git a/lisp/gnus/prev-ur.pbm b/etc/images/gnus/prev-ur.pbm similarity index 100% rename from lisp/gnus/prev-ur.pbm rename to etc/images/gnus/prev-ur.pbm diff --git a/etc/images/gnus/prev-ur.xpm b/etc/images/gnus/prev-ur.xpm new file mode 100644 index 00000000000..80131332832 --- /dev/null +++ b/etc/images/gnus/prev-ur.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * prev_ur_xpm[] = { +"24 24 8 1", +". c None", +" c #000000000000", +"X c #A5A5A5A59595", +"o c #C7C7C6C6C6C6", +"O c #FFFF00000000", +"+ c #9A9A6C6C4E4E", +"@ c #E1E1E0E0E0E0", +"# c #FFFFFFFFFFFF", +" .. .. .. .. .. .. .. ..", +"........................", +"............X...........", +" .. .. .. .XXX. .. .. ..", +".........XXooOX.........", +".......XXooo+O@X........", +" .. XXXoooo++@@@X. .. ..", +"....X@Xoooooo@@@X.......", +"....X@@Xooo@@@@@@X......", +" .. X@@XXoo@@@@@@@X.. ..", +"....X@@Xo @@@@@@ X....", +"....X@Xo ## X @ ## X...", +" .. oXo #XXXoO@ #### ..", +"....oXoXXooo+OX #### ...", +"....XXXoooo++@@X ## ....", +" .. X@Xoooooo@@@X .. ..", +"....X@@Xooo@@@@@@X......", +"....X@@XXoo@@@@@@@X.....", +" .. X@@Xoo@@@@@@@@@X. ..", +"....X@Xo@@@@@@@@@@@@X...", +"... oXoo@@@@@@@@@@@@X...", +" .. oXo@@@@@@@@@@@@X....", +".....oX@@@@@@@@@@@X.....", +".....oX@@@@@@@@@@X......"}; diff --git a/etc/images/gnus/preview.xbm b/etc/images/gnus/preview.xbm new file mode 100644 index 00000000000..a42e153d5d2 --- /dev/null +++ b/etc/images/gnus/preview.xbm @@ -0,0 +1,10 @@ +#define preview_width 24 +#define preview_height 24 +static char preview_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xc0,0x03,0x00,0x3e,0x06,0xf0,0x03,0x04,0x08,0x00,0x0a,0x78,0x00,0x09, + 0x88,0xf9,0x08,0x10,0xc6,0x10,0x10,0x3a,0x13,0x10,0x06,0x15,0x20,0x02,0x29, + 0x20,0x02,0x31,0x20,0xad,0x0f,0x40,0xf9,0x03,0xc0,0xb8,0x07,0x80,0x07,0x0e, + 0x80,0x01,0x1c,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x00, + 0x00,0x00,0x39,0x00,0x00,0x00,0x08,0xc0,0x12,0x42,0x00,0x00,0x00,0x00,0x38, + 0x82,0x18,0x08,0x00,0x00,0x00 }; diff --git a/etc/images/gnus/preview.xpm b/etc/images/gnus/preview.xpm new file mode 100644 index 00000000000..f5743f91526 --- /dev/null +++ b/etc/images/gnus/preview.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char *prev1[]={ +"24 24 6 1", +". c None", +"# c #000000", +"d c #46463e", +"a c #676663", +"c c #a8a7a3", +"b c #ebeae4", +"........................", +"........................", +"........................", +"........................", +"........................", +"..............####......", +".........#####abbc#.....", +"....#####acbbbbbbc#.....", +"...#acbbbbbbbbbbacc#....", +"...#baabbbbbbbbcacb#....", +"...#cbcaabbd##dacbb#....", +"....#bbbccdcbbcdabbc#...", +"....#bbbbdccaaccdacb#...", +"....#cbbb#abbbbb#bac#...", +".....#bbb#cbbbbc#bbac#..", +".....#bbbdcbbbbddbbc##..", +".....#cbccdcbbd#####....", +"......#babbd##dd##......", +"......#acbc###.####.....", +"......#aa##......###....", +".......##.........###...", +"...................##...", +"........................", +"........................"}; diff --git a/etc/images/gnus/receipt.xpm b/etc/images/gnus/receipt.xpm new file mode 100644 index 00000000000..18caaf1cf78 --- /dev/null +++ b/etc/images/gnus/receipt.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * receipt_xpm[] = { +"24 24 5 1", +" c None", +". c #FFFFFFFFFFFF", +"X c #676766666363", +"o c #FFFF00000000", +"O c #AEAE3E3E4848", +" ", +" ", +" .. ", +" . ", +" . ", +" . ", +" .. ", +" Xooo .. ", +" Xoooooooo.. ", +" Xoooooooooooooo ... ", +" oooooooooooOOoo . ", +" ooooooooooOOOOo. ", +" oooooooooOO...o ", +" ooooooooooOOooo ", +" ooooooooooooooo ", +" ooooooooooooooo ", +" oooooooooooooo ", +" ooooooooooo ", +" ooooooo ", +" oooo ", +" oo ", +" ", +" ", +" "}; diff --git a/lisp/gnus/reply-wo.pbm b/etc/images/gnus/reply-wo.pbm similarity index 100% rename from lisp/gnus/reply-wo.pbm rename to etc/images/gnus/reply-wo.pbm diff --git a/etc/images/gnus/reply-wo.xpm b/etc/images/gnus/reply-wo.xpm new file mode 100644 index 00000000000..370678af70d --- /dev/null +++ b/etc/images/gnus/reply-wo.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * reply_wo_xpm[] = { +"24 24 4 1", +" c None", +". c #000000000000", +"X c #E1E1E0E0E0E0", +"O c #FFFFFFFFFFFF", +" ", +" ", +" ", +" .... ", +" ..X.... ", +" ..XX.XX.. ", +" .O.XX.XXXX.. ", +" ..O.XXX.XXXX... ", +" .OO.XXXX.X....... ", +" .OO.XXXX...XXX.OO.. ", +" ..OO.XX....XXXX.OOOO.. ", +" .......XX.XXXX.OOO.... ", +" .OOO.XXX.XXXX.OO..OOO. ", +" .OOOO....XXX....OOOOO. ", +" .OOOOOOO..XX..OOOOOOO. ", +" .OOOOOOO......OOOOOOO. ", +" .OOOOOO.OO..O..OOOOOO. ", +" .OOOOO.OOOOOOOO.OOOOO. ", +" .OOOO.OOOOOOOOOO.OOOO. ", +" .OOO.OOOOOOOOOOOO.OOO. ", +" .O..OOOOOOOOOOOOOO..O. ", +" ..OOOOOOOOOOOOOOOOOO.. ", +" ...................... ", +" "}; diff --git a/lisp/gnus/reply.pbm b/etc/images/gnus/reply.pbm similarity index 100% rename from lisp/gnus/reply.pbm rename to etc/images/gnus/reply.pbm diff --git a/etc/images/gnus/reply.xpm b/etc/images/gnus/reply.xpm new file mode 100644 index 00000000000..a45884803fe --- /dev/null +++ b/etc/images/gnus/reply.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * reply_xpm[] = { +"24 24 4 1", +" c None", +". c #000000000000", +"X c #E1E1E0E0E0E0", +"O c #FFFFFFFFFFFF", +" ", +" ", +" ", +" .... ", +" ..XXX.. ", +" ..XXXXX.. ", +" .O.XXXXXXX.. ", +" ..O.XXXXXXXXX.. ", +" .OO.XXXXXXXXXX... ", +" .OO.XXXXXXXXXX.OO.. ", +" ..OO.XXXXXXXXXX.OOOO.. ", +" .....XXXXXXXXX.OOO.... ", +" .OOO.XXXXXXXX.OO..OOO. ", +" .OOOO...XXXXX...OOOOO. ", +" .OOOOOOO..XX..OOOOOOO. ", +" .OOOOOOO......OOOOOOO. ", +" .OOOOOO.OO..O..OOOOOO. ", +" .OOOOO.OOOOOOOO.OOOOO. ", +" .OOOO.OOOOOOOOOO.OOOO. ", +" .OOO.OOOOOOOOOOOO.OOO. ", +" .O..OOOOOOOOOOOOOO..O. ", +" ..OOOOOOOOOOOOOOOOOO.. ", +" ...................... ", +" "}; diff --git a/etc/images/gnus/reverse-smile.xpm b/etc/images/gnus/reverse-smile.xpm new file mode 100644 index 00000000000..56db090e4b3 --- /dev/null +++ b/etc/images/gnus/reverse-smile.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * reverse_smile_xpm[] = { +"13 14 3 1", +" c None", +". c #000000", +"+ c #FFDD00", +" ....... ", +" ..+++++.. ", +" .+++++++++. ", +".+++.....+++.", +".++.+++++.++.", +".++.+++++.++.", +".+++++++++++.", +".+++++++++++.", +".++..+++..++.", +".++..+++..++.", +".+++++++++++.", +" .+++++++++. ", +" ..+++++.. ", +" ....... "}; diff --git a/lisp/gnus/rot13.pbm b/etc/images/gnus/rot13.pbm similarity index 100% rename from lisp/gnus/rot13.pbm rename to etc/images/gnus/rot13.pbm diff --git a/etc/images/gnus/rot13.xpm b/etc/images/gnus/rot13.xpm new file mode 100644 index 00000000000..6e2d7ac3ccf --- /dev/null +++ b/etc/images/gnus/rot13.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * rot13_xpm[] = { +"24 24 5 1", +" c None", +". c #A5A5A5A59595", +"X c #C7C7C6C6C6C6", +"o c #E1E1E0E0E0E0", +"O c #919187876969", +" ", +" ", +" ", +" . ", +" ..X. ", +" ..XXX. ", +" ..XXXXXo. ", +" ...XXXXXXooo. ", +" .o.XXXXXoooo. ", +" .oo.XXXooOooo. ", +" .oo..XXoOXOOoo. ", +" .oo.XXoOXooOXoo. ", +" .o.XoooOOXXOXooX. ", +" .XXooOOXOOXoooo. ", +" .XooOOOooooooo. ", +" .oOOXOXooooo. ", +" .oOOXoooooo. ", +" .oOOXooo.. ", +" .oooooo. ", +" .ooo.. ", +" .oo. ", +" .. ", +" ", +" "}; diff --git a/lisp/gnus/save-aif.pbm b/etc/images/gnus/save-aif.pbm similarity index 100% rename from lisp/gnus/save-aif.pbm rename to etc/images/gnus/save-aif.pbm diff --git a/etc/images/gnus/save-aif.xpm b/etc/images/gnus/save-aif.xpm new file mode 100644 index 00000000000..f0325ac2fb9 --- /dev/null +++ b/etc/images/gnus/save-aif.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * save_aif_xpm[] = { +"24 24 6 1", +" c None", +". c #999999999999", +"X c #E1E1E0E0E0E0", +"o c #C7C7C6C6C6C6", +"O c #000000000000", +"+ c #FFFFFFFFFFFF", +" ", +" ", +" ............. ", +" .XXXXXXXXXX.X.. ", +" .XXXXXXXXXX.XX. ", +" .XXXXXXXXXX.... ", +" .XXXXXXXXXXooo. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" OOOOOOOOOOOOOOXXXXXX. ", +" O..O+++++++O.OXXXXXX. ", +" O..O+++++++O.OXXXXXX. ", +" O..O+++++++O.OXXXXXX. ", +" O..O+++++++O.OXXXXXX. ", +" O..O+++++++O.OXXXXXX. ", +" O..OOOOOOOOO.OXXXXXX. ", +" O............OXXXXXX. ", +" O............OXXXXXX. ", +" O..OOOOOOOOO.O....... ", +" O..OoooooO++.O ", +" O..OoooooO++.O ", +" O.OoooooO++.O ", +" OOOOOOOOOOOO "}; diff --git a/lisp/gnus/save-art.pbm b/etc/images/gnus/save-art.pbm similarity index 100% rename from lisp/gnus/save-art.pbm rename to etc/images/gnus/save-art.pbm diff --git a/etc/images/gnus/save-art.xpm b/etc/images/gnus/save-art.xpm new file mode 100644 index 00000000000..fe9726fa3fe --- /dev/null +++ b/etc/images/gnus/save-art.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * save_art_xpm[] = { +"24 24 5 1", +" c None", +". c #000000000000", +"X c #FFFFFFFFFFFF", +"o c #999999999999", +"O c #C7C7C6C6C6C6", +" ", +" ", +" .................. ", +" ...XXXXXXXXXXXXX.. ", +" .XX..XXXXXXXXX..X. ", +" .XXXX..XXXXX..XXX. ", +" .XXXXX......XXXXX. ", +" .XXX..XX..XX..XXX. ", +" .XX..XXXXXXXX..XX. ", +" ...XXXXXXXXXXXX... ", +" ..............XXXXXXX. ", +" .oo.XXXXXXX.o......... ", +" .oo.XXXXXXX.o. ", +" .oo.XXXXXXX.o. ", +" .oo.XXXXXXX.o. ", +" .oo.XXXXXXX.o. ", +" .oo.........o. ", +" .oooooooooooo. ", +" .oooooooooooo. ", +" .oo.........o. ", +" .oo.OOOOO.XXo. ", +" .oo.OOOOO.XXo. ", +" .o.OOOOO.XXo. ", +" ............ "}; diff --git a/lisp/gnus/subscribe.pbm b/etc/images/gnus/subscribe.pbm similarity index 100% rename from lisp/gnus/subscribe.pbm rename to etc/images/gnus/subscribe.pbm diff --git a/etc/images/gnus/subscribe.xpm b/etc/images/gnus/subscribe.xpm new file mode 100644 index 00000000000..ff193a9e8ab --- /dev/null +++ b/etc/images/gnus/subscribe.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * subscribe_xpm[] = { +"24 24 5 1", +" c None", +". c #A5A5A5A59595", +"X c #E1E1E0E0E0E0", +"o c #C7C7C6C6C6C6", +"O c #8686ADAD7D7D", +" ", +" ", +" ", +" ... ", +" ..XXX..... ", +"...XXXXX..XXX. ... ", +".X.XX...XXXX...XXX. ", +".XX.X.X.XX...XXXXX. ", +".XX...XX.X.X.XXXXXX. ", +".XX.o.XX...XX.XXXXXX. ", +".X.oo.XX.o.XX..XXXXXX. ", +"o.ooo.X.oo.XX.XXXOXXX. ", +"o.oXXo.ooo.X.oXXOXXXXX. ", +" o.XXo.oXXo.ooXXOXXXXX. ", +" o.XXXo.XXo.oXXXOXXXXXX.", +" o.XXo.XXXo.XOOOOXXXXX.", +" o.XXoo.XXo.XXXOOXXXXX.", +" o.XXo.XXXo.XXXXXXX...", +" o.XX.o.XXo.XXXXXX.oo ", +" o..oo.XX.o.XXX..o ", +" oo o..oo.XX.oo ", +" oo o..o ", +" oo ", +" "}; diff --git a/etc/images/gnus/unimportant.xpm b/etc/images/gnus/unimportant.xpm new file mode 100644 index 00000000000..4298224e56c --- /dev/null +++ b/etc/images/gnus/unimportant.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 2 1", +"! c blue", +"w c Gray75", +/* pixels */ +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"ww!!!wwwwww!!!wwwwww!!!w", +"www!!!wwwww!!!wwwww!!!ww", +"wwww!!!wwww!!!wwww!!!www", +"wwwww!!!www!!!www!!!wwww", +"wwwwww!!!ww!!!ww!!!wwwww", +"wwwwwww!!!w!!!w!!!wwwwww", +"wwwwwwww!!!!!!!!!wwwwwww", +"wwwwwwwww!!!!!!!wwwwwwww", +"wwwwwwwwww!!!!!wwwwwwwww", +"wwwwwwwwwww!!!wwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww" +}; diff --git a/lisp/gnus/unsubscribe.pbm b/etc/images/gnus/unsubscribe.pbm similarity index 100% rename from lisp/gnus/unsubscribe.pbm rename to etc/images/gnus/unsubscribe.pbm diff --git a/etc/images/gnus/unsubscribe.xpm b/etc/images/gnus/unsubscribe.xpm new file mode 100644 index 00000000000..a91180d00f8 --- /dev/null +++ b/etc/images/gnus/unsubscribe.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * unsubscribe_xpm[] = { +"24 24 5 1", +" c None", +". c #A5A5A5A59595", +"X c #E1E1E0E0E0E0", +"o c #C7C7C6C6C6C6", +"O c #FFFF00000000", +" ", +" ", +" ", +" ... ", +" ..XXX..... ", +"...XXXXX..XXX. ... ", +".X.XX...XXXX...XXX. ", +".XX.X.X.XX...XXXXX. ", +".XX...XX.X.X.XXXXXX. ", +".XX.o.XX...XX.XXXXXX. ", +".X.oo.XX.o.XX..XXXXXX. ", +"o.ooo.X.oo.XX.XXXXXXX. ", +"o.oXXo.ooo.X.oXXXXXXXX. ", +" o.XXo.oXXo.ooXXOXXXXX. ", +" o.XXXo.XXo.oXXXOXXXXXX.", +" o.XXo.XXXo.XOOOXXXXXX.", +" o.XXoo.XXo.XoOOOXXXXX.", +" o.XXo.XXXo.XOoOXXX...", +" o.XX.o.XXo.XOXoXX.oo ", +" o..oo.XX.o.oXX..o ", +" oo o..oo.XX.oo ", +" oo o..o ", +" oo ", +" "}; diff --git a/lisp/gnus/uu-decode.pbm b/etc/images/gnus/uu-decode.pbm similarity index 100% rename from lisp/gnus/uu-decode.pbm rename to etc/images/gnus/uu-decode.pbm diff --git a/etc/images/gnus/uu-decode.xpm b/etc/images/gnus/uu-decode.xpm new file mode 100644 index 00000000000..b9d940cc99e --- /dev/null +++ b/etc/images/gnus/uu-decode.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char * uu_decode_xpm[] = { +"24 24 9 1", +" c None", +". c #919187876969", +"X c #C2C2B9B99C9C", +"o c #868686868686", +"O c #8F8F8F8F8F8F", +"+ c #000000000000", +"@ c #4C4C4C4C4C4C", +"# c #E9E9EFEFE8E8", +"$ c #8686ADAD7D7D", +" ", +" ", +" ", +" .............. ", +" X.o.........O.++ ", +" XX++++++++++..++ ", +" XX@########+..++ ", +" XX@########+..++ ", +" XX@$#$$$#$#+..++ ", +" XX@#$$$$$$#+..++ ", +" XX@##$#####+..++ ", +" XX@##$#$$##+..++ ", +" XX@##$#$$##+..++ ", +" XX@##$$#$$#+..++ ", +" XX@######$#+..++ ", +" XX@########+..++ ", +" XX@########+..++ ", +" XX.@@@@@@@@@..++ ", +" X.XXXXXXXXXX..++ ", +" .XXXXXXXXXXXX.++ ", +" +++++++++++++++ ", +" +++++++++++++++ ", +" ", +" "}; diff --git a/lisp/gnus/uu-post.pbm b/etc/images/gnus/uu-post.pbm similarity index 100% rename from lisp/gnus/uu-post.pbm rename to etc/images/gnus/uu-post.pbm diff --git a/etc/images/gnus/uu-post.xpm b/etc/images/gnus/uu-post.xpm new file mode 100644 index 00000000000..7c4204c6957 --- /dev/null +++ b/etc/images/gnus/uu-post.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * uu_post_xpm[] = { +"24 24 8 1", +". c None", +"X c #000000000000", +"+ c #C2C2B9B99C9C", +"@ c #919187876969", +"# c #868686868686", +"% c #4C4C4C4C4C4C", +"& c #E9E9EFEFE8E8", +"* c #8686ADAD7D7D", +"X..X..X..X.XX..X..X..X..", +"..........X.X...........", +".........X...X..........", +"X..X..X.XX..X.XX..X..X..", +".......X.......X........", +"......X.........X.......", +"X..X+X@@@@@@@@@@@XX..X..", +"....+@@@@@@@@@@@@@......", +"....++XXXXXXXXXX@@......", +"X..X++%&&&&&&&&X@@X..X..", +"....++%&&&&&&&&X@@......", +"....++%*&***&*&X@@......", +"X..X++%&******&X@@X..X..", +"....++%&&*&&&&&X@@......", +"....++%&&*&**&&X@@......", +"X..X++%&&*&**&&X@@X..X..", +"....++%&&**&**&X@@......", +"....++%&&&&&&*&X@@......", +"X..X++%&&&&&&&&X@@X..X..", +"....++%&&&&&&&&X@@......", +"....++@%%%%%%%%%@@......", +"X..X+@++++++++++@@X..X..", +"....+++++++++++++@......", +"........................"}; diff --git a/etc/images/gud/break.pbm b/etc/images/gud/break.pbm new file mode 100644 index 0000000000000000000000000000000000000000..e1ffbddc1b613ddca6b359dcfa1e229f65939d04 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{Kn6Ap4F4Gz|2HuIKfwO~0TA*3{{Tl25ug-M0Zql C-3O5X literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-finish.xpm b/etc/images/gud/finish.xpm similarity index 98% rename from lisp/toolbar/gud-finish.xpm rename to etc/images/gud/finish.xpm index 59066450ee3..0310f07e8da 100644 --- a/lisp/toolbar/gud-finish.xpm +++ b/etc/images/gud/finish.xpm @@ -1,7 +1,7 @@ /* XPM */ static char * finish_xpm[] = { "24 24 7 1", -" c #c0c0c0", +" c None", ". c #cc0033", "X c #616161", "o c #2a1f55", diff --git a/etc/images/gud/go.pbm b/etc/images/gud/go.pbm new file mode 100644 index 0000000000000000000000000000000000000000..516bec1f7859e85a5ebcd6b5c8884cb1b3cc1fa9 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{00YMV4b1-!u>XI+|Nn#h{~z|2f9$UPvHJ!?)4*Jy$hAK}DWC$N NGN59h7NACm2>{eGCxrk2 literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-remove.xpm b/etc/images/gud/go.xpm similarity index 58% rename from lisp/toolbar/gud-remove.xpm rename to etc/images/gud/go.xpm index c61b6b2b8f3..7e0bbd06cf2 100644 --- a/lisp/toolbar/gud-remove.xpm +++ b/etc/images/gud/go.xpm @@ -1,10 +1,9 @@ /* XPM */ static char * go_xpm[] = { -"24 24 4 1", -" c #C0C0C0C0C0C0", +"24 24 3 1", +" c None", ". c #000080800000", "X c #FFFFFFFFFFFF", -"o c #F8F8FCFCF8F8", " ", " ", " .......... ", @@ -12,16 +11,16 @@ static char * go_xpm[] = { " .............. ", " ................ ", " .................. ", -" ......XX...oo....... ", -" .....X..X.o..o...... ", -" .....X....o..o...... ", -" .....X....o..o...... ", -" .....X....o..o...... ", -" .....X.XX.o..o...... ", -" .....X..X.o..o...... ", -" .....X..X.o..o...... ", -" .....X..X.o..o...... ", -" ......XX...oo....... ", +" ......XX...XX....... ", +" .....X..X.X..X...... ", +" .....X....X..X...... ", +" .....X....X..X...... ", +" .....X....X..X...... ", +" .....X.XX.X..X...... ", +" .....X..X.X..X...... ", +" .....X..X.X..X...... ", +" .....X..X.X..X...... ", +" ......XX...XX....... ", " .................. ", " ................ ", " .............. ", diff --git a/etc/images/gud/next.pbm b/etc/images/gud/next.pbm new file mode 100644 index 0000000000000000000000000000000000000000..dc2a15323e3846ddf4256f98ddbe99394cca924b GIT binary patch literal 81 zcmWGA;W9E&Ff!p{KmyGF8CVz^I2ar_XE<>4IB@d@F!MYBBL_A%2WB1yWW+cFNhbpX E0F<2wPyhe` literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-next.xpm b/etc/images/gud/next.xpm similarity index 98% rename from lisp/toolbar/gud-next.xpm rename to etc/images/gud/next.xpm index 0e631de18e1..f0257da5cf0 100644 --- a/lisp/toolbar/gud-next.xpm +++ b/etc/images/gud/next.xpm @@ -1,7 +1,7 @@ /* XPM */ static char * next_xpm[] = { "24 24 7 1", -" c #c0c0c0", +" c None", ". c #cc0033", "X c #616161", "o c #2a1f55", diff --git a/etc/images/gud/nexti.pbm b/etc/images/gud/nexti.pbm new file mode 100644 index 0000000000000000000000000000000000000000..ecad2965b0d01f7a7e2d2ea95e27a4b4401004ad GIT binary patch literal 81 zcmWGA;W9E&Ff!p{KmyGF8CVz^I2atDXkq~4j0em-57^ioc$k5RfsKuUnTLUK1_Q$c IByC_O0IKQXxAT$F2J9-DD literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-print.xpm b/etc/images/gud/print.xpm similarity index 97% rename from lisp/toolbar/gud-print.xpm rename to etc/images/gud/print.xpm index cab2b7d6109..e1e7c623355 100644 --- a/lisp/toolbar/gud-print.xpm +++ b/etc/images/gud/print.xpm @@ -1,7 +1,7 @@ /* XPM */ static char * print_xpm[] = { "24 24 2 1", -" c #C0C0C0C0C0C0", +" c None", ". c #000000000000", " ", " ", diff --git a/etc/images/gud/pstar.pbm b/etc/images/gud/pstar.pbm new file mode 100644 index 0000000000000000000000000000000000000000..1f5967107a095e48924d593720d5bb877f581b74 GIT binary patch literal 81 wcmWGA;W9E&Ff!p{zy-<~7_1u@3_BPMS1}mQ0h1jJ)(i}03=9S^RDsY808DxaB>(^b literal 0 HcmV?d00001 diff --git a/etc/images/gud/pstar.xpm b/etc/images/gud/pstar.xpm new file mode 100644 index 00000000000..4f9ed1b64e8 --- /dev/null +++ b/etc/images/gud/pstar.xpm @@ -0,0 +1,29 @@ +/* XPM */ +static char * pstar_xpm[] = { +"24 24 2 1", +" c #BDBDBEBEBDBD", +". c #000000000000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ... ... ", +" ... ... ", +" .. .. . ", +" .. .. . . . ", +" .. .. ... ", +" .. .. . . . ", +" .. .. . ", +" ... .. ", +" .. .. ", +" .. ", +" .. ", +" .. ", +" .... ", +" ", +" ", +" "}; diff --git a/etc/images/gud/remove.pbm b/etc/images/gud/remove.pbm new file mode 100644 index 0000000000000000000000000000000000000000..9940b338ead318b84f7ce497f7df3d5213335186 GIT binary patch literal 130 zcmWGA;Zjy`4svx2@ei_6hzL_COD!tS%+FIW)-yCn)Xgf*P0Dx6tWd~LQ!p|xFf}kS zG~hBaQ7|&$Vn7Bq3=IDn82>jg|3AQ1m%wiGfPdx({=;B2^8=6z6a-2E6#$hn02Lzv E0Qrw2ApigX literal 0 HcmV?d00001 diff --git a/etc/images/gud/remove.xpm b/etc/images/gud/remove.xpm new file mode 100644 index 00000000000..0c301f5e364 --- /dev/null +++ b/etc/images/gud/remove.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char * clear_xpm[] = { +"24 24 3 1", +" c None", +". c #cc0033", +"X c #F0F0F0", +" ", +" ", +" ", +" ", +" .... ", +" ........ ", +" .......... ", +" .XX......XX. ", +" ...XX....XX... ", +" ....XX..XX.... ", +" ......XXXX...... ", +" .......XX....... ", +" ......XXXX...... ", +" .....XX..XX..... ", +" ...XX....XX... ", +" ..XX......XX.. ", +" .X........X. ", +" .......... ", +" ........ ", +" .... ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/gud/run.pbm b/etc/images/gud/run.pbm new file mode 100644 index 0000000000000000000000000000000000000000..8bde32c3391cffc3181cf50ee82cb526445a085f GIT binary patch literal 81 zcmWGA;W9E&Ff!p{KnBbV49pCS{}~wS7?}StFw_It4GeY%nC%_d|1+?DXJB~Dz`)MH Mz{kMA4@O9O0o7Ovp#T5? literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-run.xpm b/etc/images/gud/run.xpm similarity index 98% rename from lisp/toolbar/gud-run.xpm rename to etc/images/gud/run.xpm index 6e077a11659..ef29662ed24 100644 --- a/lisp/toolbar/gud-run.xpm +++ b/etc/images/gud/run.xpm @@ -1,7 +1,7 @@ /* XPM */ static char * run_xpm[] = { "24 24 9 1", -" c #c0c0c0", +" c None", ". c #000080", "X c #aa9faa", "o c #b5b9b5", diff --git a/etc/images/gud/step.pbm b/etc/images/gud/step.pbm new file mode 100644 index 0000000000000000000000000000000000000000..de7caa50ed5b4cdee4166eadf82cb2da8ed89d7e GIT binary patch literal 81 zcmWGA;W9E&Ff!p{KmyDU7+3@tI5-$MI}UJjByejbFw1}uM*pR4hbM)V=!Q5NMLL@z|hcu IqzTFd0FY1#A^-pY literal 0 HcmV?d00001 diff --git a/etc/images/gud/stepi.xpm b/etc/images/gud/stepi.xpm new file mode 100644 index 00000000000..b20eb6243f7 --- /dev/null +++ b/etc/images/gud/stepi.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * gud_stepi_xpm[] = { +"24 24 5 1", +" c None", +". c #D4D400000000", +"X c #616161616161", +"o c #2A2A1F1F5555", +"O c #CCCC99999999", +" ", +" ", +" ", +" ", +" ..... ", +" . . ", +" . . ", +" . . ", +" . X . X ", +" . Xo .O.O. oX ", +" Xo O...O oX ", +" Xo ... oX ", +" Xo O.O oX ", +" oX . Xo ", +" oX Xo ", +" oX Xo ", +" oX Xo ", +" o o ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/gud/stop.pbm b/etc/images/gud/stop.pbm new file mode 100644 index 0000000000000000000000000000000000000000..ff28ff8649f60b9d8e215d0df2b3e9858663a812 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{00YMV4b1-!u>XI+|Nn#h{~yMZJ-XYr=!22@wk_7%dTh7t0V3UP VdyIGP0V)7011bh;0cwPp001$5BVhml literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-break.xpm b/etc/images/gud/stop.xpm similarity index 92% rename from lisp/toolbar/gud-break.xpm rename to etc/images/gud/stop.xpm index 419955dd109..decfb9050b9 100644 --- a/lisp/toolbar/gud-break.xpm +++ b/etc/images/gud/stop.xpm @@ -1,9 +1,9 @@ /* XPM */ static char * stop_xpm[] = { "24 24 3 1", -" c #C0C0C0C0C0C0", -". c #F8F810104040", -"X c #F8F8FCFCF8F8", +" c None", +". c #cc0033", +"X c #FFFFFFFFFFFF", " ", " ", " .......... ", diff --git a/etc/images/gud/until.pbm b/etc/images/gud/until.pbm new file mode 100644 index 0000000000000000000000000000000000000000..096cacc6c174f45857a8910021c0d56b57dd179a GIT binary patch literal 81 zcmWGA;W9E&Ff!p{Km`sA3?Rgl;2>cDK^_tYY7z$W8zk5y3^*hV7~qH}0a+^mVNnPW literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-until.xpm b/etc/images/gud/until.xpm similarity index 92% rename from lisp/toolbar/gud-until.xpm rename to etc/images/gud/until.xpm index 8801320a2d1..abd6c8cae99 100644 --- a/lisp/toolbar/gud-until.xpm +++ b/etc/images/gud/until.xpm @@ -1,8 +1,8 @@ /* XPM */ -static char * goto_xpm[] = { +static char * until_xpm[] = { "24 24 6 1", -" c #c0c0c0", -". c #ff0000", +" c None", +". c #cc0033", "X c #616161", "o c #2a1f55", "O c #adadad", diff --git a/etc/images/gud/up.pbm b/etc/images/gud/up.pbm new file mode 100644 index 0000000000000000000000000000000000000000..585f488bac77152f2acfc4bc5d0b674cafcb76d0 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{KmiU63=cqv@dE>600V;q`+o-(Mj*++|Nj9O!vY`)L@Xfj13-kV F6##OH5!?U( literal 0 HcmV?d00001 diff --git a/lisp/toolbar/gud-up.xpm b/etc/images/gud/up.xpm similarity index 97% rename from lisp/toolbar/gud-up.xpm rename to etc/images/gud/up.xpm index 10d8c1278c9..c2e4c9f8ff4 100644 --- a/lisp/toolbar/gud-up.xpm +++ b/etc/images/gud/up.xpm @@ -1,7 +1,7 @@ /* XPM */ static char * up_xpm[] = { "24 24 14 1", -" c #C0C0C0C0C0C0", +" c None", ". c #000000000000", "X c #7F7F7F7F7F7F", "o c #2D2D2D2D2D2D", diff --git a/etc/images/gud/watch.pbm b/etc/images/gud/watch.pbm new file mode 100644 index 0000000000000000000000000000000000000000..223d4ebf8c7870ebf68a4415ce06af87f4fd0ef3 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{Km!sC45|za$qfuG4U7#3m>C?Hn;)=*ByeabKoE-yP^1A(6Oao4 Drp5`$ literal 0 HcmV?d00001 diff --git a/etc/images/gud/watch.xpm b/etc/images/gud/watch.xpm new file mode 100644 index 00000000000..52052212390 --- /dev/null +++ b/etc/images/gud/watch.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char * watch_xpm[] = { +"24 24 11 1", +" c None", +". c #808080808080", +"X c #000000000000", +"o c #A5A59F9FA3A3", +"O c #B5B5B9B9B5B5", +"+ c #070707070707", +"@ c #616161616161", +"# c #2D2D30302D2D", +"$ c #020202020202", +"% c #9A9A99999A9A", +"& c #2F2F1A1A0202", +" ", +" ", +" ", +" ", +" ", +" .XX ", +" oX. X Xo ", +" O+@ X@# ", +" # X O$o ", +" ## @# ", +" @+O O$o ", +" %XX&% %&X&## ", +" %#O O#%X%#O O#X ", +" &O O& &O O& ", +" X X X X ", +" &O O& &O O& ", +" %#O O#% %#O O#% ", +" %&X&% %&X&% ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/help.pbm b/etc/images/help.pbm new file mode 100644 index 0000000000000000000000000000000000000000..2575f6f261379e345e529d2260087eb0d518858e GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #F2F0EC", +", c #E1DFDC", +"' c #AFADAA", +") c #272726", +"! c #020202", +"~ c #3F3E3E", +"{ c #36302D", +"] c #181818", +"^ c #FBF8F5", +"/ c #FEFCF8", +"( c #FAF8F5", +"_ c #F5F4F1", +": c #F2F1ED", +"< c #F1EFEB", +"[ c #F1EEEB", +"} c #EAE9E6", +"| c #DAD8D4", +"1 c #100E0E", +"2 c #1F100E", +"3 c #AF3A1E", +"4 c #FBAB93", +"5 c #FAE9E3", +"6 c #F0EFEB", +"7 c #E9E8E5", +"8 c #EAE8E6", +"9 c #ECEAE8", +"0 c #EDEBE9", +"a c #EDEBE8", +"b c #EACFC6", +"c c #D5340A", +"d c #751904", +"e c #100806", +"f c #34160D", +"g c #AF3C20", +"h c #FCCCBD", +"i c #F7BEAD", +"j c #E67554", +"k c #DFDDDB", +"l c #DBD9D6", +"m c #D8D7D3", +"n c #DBDAD6", +"o c #E3E2DE", +"p c #ECEBE8", +"q c #E5572D", +"r c #E33A0B", +"s c #D4340A", +"t c #691504", +"u c #100504", +"v c #582C22", +"w c #0F0F0F", +"x c #FDD4C8", +"y c #F7BFAF", +"z c #E87554", +"A c #D5512B", +"B c #C68270", +"C c #BEBDBA", +"D c #A5A3A0", +"E c #9C9A95", +"F c #B9B7B2", +"G c #D7D6D2", +"H c #E7E5E2", +"I c #E79A85", +"J c #E53C0B", +"K c #E43C0B", +"L c #E23A0B", +"M c #C93009", +"N c #010000", +"O c #040100", +"P c #FAB19C", +"Q c #FACCBE", +"R c #EB8264", +"S c #D8532D", +"T c #C0340F", +"U c #932006", +"V c #141412", +"W c #857974", +"X c #DA370B", +"Y c #EC7C5B", +"Z c #E95B32", +"` c #DE380B", +" . c #9D2306", +".. c #626261", +"+. c #FEF1ED", +"@. c #F09479", +"#. c #DC532B", +"$. c #C0350F", +"%. c #942006", +"&. c #621404", +"*. c #E2522B", +"=. c #F2A690", +"-. c #E74E21", +";. c #E23B0B", +">. c #C99181", +",. c #454342", +"'. c #E5E4E2", +"). c #FCFBFA", +"!. c #E2D8D3", +"~. c #C34C2A", +"{. c #B02B07", +"]. c #9E2D12", +"^. c #EF8D71", +"/. c #F09B83", +"(. c #EADDD7", +"_. c #272724", +":. c #F0EEEC", +"<. c #F3F2EF", +"[. c #D7D6D3", +"}. c #BFBEBB", +"|. c #9E6153", +"1. c #3F0D02", +"2. c #F0B9A9", +"3. c #F6F5F4", +"4. c #E8E7E4", +"5. c #DAD8D5", +"6. c #585652", +"7. c #F6F4F0", +"8. c #DAD8D6", +"9. c #C2C1BE", +"0. c #989691", +"a. c #0A0A08", +"b. c #F6F4F2", +"c. c #F4F3F1", +"d. c #E4E3E0", +"e. c #D3D2CE", +"f. c #63625D", +"g. c #DCDAD8", +"h. c #C7C6C2", +"i. c #ABAAA5", +"j. c #0A0A0A", +"k. c #FAF8F6", +"l. c #EFEDEA", +"m. c #DDDCD8", +"n. c #C6C4C2", +"o. c #3E3E39", +"p. c #1B1B19", +"q. c #F0EEEA", +"r. c #E0DFDD", +"s. c #CCCBC9", +"t. c #C0BFBB", +"u. c #131311", +"v. c #676663", +"w. c #FCFAF8", +"x. c #D6D4D2", +"y. c #BCBAB7", +"z. c #3C3C3A", +"A. c #DEDCD9", +"B. c #7E4B3E", +"C. c #232323", +"D. c #CC9385", +"E. c #FAFAF7", +"F. c #E6E6E2", +"G. c #CDCCCA", +"H. c #B0B0AC", +"I. c #EDE3DF", +"J. c #E78468", +"K. c #DF5D3A", +"L. c #631909", +"M. c #282828", +"N. c #B46E5E", +"O. c #FCC3B2", +"P. c #F1A691", +"Q. c #DCD2CC", +"R. c #C8C6C3", +"S. c #7E7C78", +"T. c #E8AD9C", +"U. c #E96139", +"V. c #EB7452", +"W. c #EF8E72", +"X. c #EA8063", +"Y. c #9E2E13", +"Z. c #3F1811", +"`. c #121212", +" + c #6B433B", +".+ c #E0A191", +"++ c #FDD3C7", +"@+ c #F4AD98", +"#+ c #DE532B", +"$+ c #C83409", +"%+ c #B48274", +"&+ c #383534", +"*+ c #D6340A", +"=+ c #E43D0F", +"-+ c #E8582E", +";+ c #ED7957", +">+ c #F4B6A4", +",+ c #F4B09D", +"'+ c #F0E5E0", +")+ c #F4F3EF", +"!+ c #FDF8F6", +"~+ c #FBCEC1", +"{+ c #F28B6E", +"]+ c #E44E23", +"^+ c #D3370A", +"/+ c #BF2F09", +"(+ c #260800", +"_+ c #190F0B", +":+ c #D5350A", +"<+ c #E43D0C", +"[+ c #E74C1F", +"}+ c #EFBBAB", +"|+ c #F5F4F3", +"1+ c #F5F3F1", +"2+ c #EAB1A0", +"3+ c #DE4316", +"4+ c #C5310A", +"5+ c #591202", +"6+ c #0E0504", +"7+ c #C83009", +"8+ c #E0532B", +"9+ c #E7E6E3", +"0+ c #E7E6E2", +"a+ c #DDDCD9", +"b+ c #CFCECA", +"c+ c #C14724", +"d+ c #AE2907", +"e+ c #290800", +"f+ c #0F0705", +"g+ c #9B2205", +"h+ c #C1A89F", +"i+ c #D1D0CC", +"j+ c #CFCDCA", +"k+ c #C7C6C3", +"l+ c #BBBAB7", +"m+ c #B5B4B1", +"n+ c #A7A6A2", +"o+ c #66564F", +"p+ c #0B0908", +"q+ c #010100", +"r+ c #222221", +"s+ c #51504B", +"t+ c #5D5C57", +"u+ c #3B3B37", +" . . + @ # # $ % ", +" . . . . & # * = - ; > , ' ) ! ~ . . . . ", +". . { ] ^ / ( _ : > < [ } | . 1 . . ", +" . 2 3 4 5 6 - 7 8 9 0 0 a b c d e . ", +" . f g h i j k l m n o } p a q r s t u . . ", +" v w x y z A B C D E F G H I J K L M . N ", +" O P Q R S T U . . . . V W X Y Z K ` .. ", +" ..+.@.#.$.%.. . . &.*.=.-.;.>.! . ", +",.'.).!.~.{.. . . ].^./.(.n _.. ", +"@ :.<.[.}.|.. 1.2.3.4.5.6.. ", +"# 7.6 8.9.0.. a.b.c.d.e.f.. ", +"# > < g.h.i.. j.k.l.m.n.o.. ", +"p., q.r.s.t.u. v.w.9 x.y.. . ", +"z.' [ 7 A.[.B.. C.D.E.F.G.H.. . ", +" ) } 0 I.J.K.L.. M.N.O.P.Q.R.S.. . ", +" ! | T.U.V.W.X.Y.Z.a.`. +.+++@+#+$+%+. . ", +" &+. *+=+-+;+>+,+'+)+k.!+~+{+]+^+/+(+. . ", +" . _+d :+L <+[+}+|+l.1+|+2+3+^+4+5+. . . ", +" . 6+t 7+` 8+9+0+o a+[.b+c+d+e+. . . ", +" . f+. g+h+i+j+k+l+m+n+o+. . . . ", +" . . . p+. q+r+s+t+u+. . . . . . . ", +" . . . . . . . . . . . . ", +" ", +" "}; diff --git a/etc/images/highlight.pbm b/etc/images/highlight.pbm new file mode 100644 index 0000000000000000000000000000000000000000..23394f05e27c0935dc8517b915cc40a0d49bacb9 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{V5nhWIL5%x#K6eLz{mnZOdJeM0u0Oo3=AKXk23^nG<0e(fY1qs OpAd#dL-%n8Gynh}aSdbu literal 0 HcmV?d00001 diff --git a/etc/images/highlight.xpm b/etc/images/highlight.xpm new file mode 100644 index 00000000000..1844128f02f --- /dev/null +++ b/etc/images/highlight.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * highlight_xpm[] = { +/* columns rows colors chars-per-pixel */ +"24 24 4 1", +" c None", +". c black", +"X c #828282827474", +"o c #dd00df007e00", +/* pixels */ +" ..... ", +" ..XXX.. ", +" .XXXXX. ", +" .XXXXX.. ", +" .XXXXX. ", +" .XXXXX. ", +" .XXXXX. ", +" .ooXX. ", +" ..ooo. ", +" oooo .... ", +"oo.ooo....oo ... ", +"o.o.ooo.oo.o.ooo.o ", +".ooo.oo.oo.o.ooooo ", +".ooo.oo.oo.o.ooooo ", +".ooo.oo...oo.ooooo ", +".....oo.oo.o.ooooo ", +".ooo.oo.oo.o.ooooo ", +".ooo.oo.oo.o.ooo.o ", +". oo.o....ooo...o ", +" oo oooo ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/home.pbm b/etc/images/home.pbm new file mode 100644 index 0000000000000000000000000000000000000000..5be8446065259cf1e2bebab93aa89aaab63ccdb3 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #181818", +", c #474747", +"' c #555555", +") c #8D8D8D", +"! c #383838", +"~ c #191919", +"{ c #974F3C", +"] c #222222", +"^ c #313131", +"/ c #A1A1A1", +"( c #676767", +"_ c #ACACAC", +": c #BCBCBC", +"< c #585858", +"[ c #141414", +"} c #1C1C1C", +"| c #464646", +"1 c #666666", +"2 c #BABABA", +"3 c #7E7E7E", +"4 c #D2D2D2", +"5 c #FFFFFF", +"6 c #4F4F4F", +"7 c #262626", +"8 c #232323", +"9 c #505050", +"0 c #B2B2B2", +"a c #909090", +"b c #9A9A9A", +"c c #838383", +"d c #171717", +"e c #202020", +"f c #717171", +"g c #A6A6A6", +"h c #616161", +"i c #1D1D1D", +"j c #1F1F1F", +"k c #C4C4C4", +"l c #CACACA", +"m c #AEAEAE", +"n c #D1D1D1", +"o c #7C7C7C", +"p c #BFBFBF", +"q c #6C6C6C", +"r c #EEEEEE", +"s c #949494", +"t c #C7C7C7", +"u c #EBEBEB", +"v c #7D7D7D", +"w c #6E6E6E", +"x c #A9A9A9", +"y c #E99E8F", +"z c #DD806D", +"A c #9B5343", +"B c #CECECE", +"C c #626262", +"D c #858585", +"E c #ECA292", +"F c #D0533A", +"G c #934F3E", +"H c #6D6D6D", +"I c #ECA291", +"J c #CF543C", +"K c #371D16", +"L c #5D5D5D", +"M c #868686", +"N c #787878", +"O c #ECA696", +"P c #C95C49", +"Q c #E17C66", +"R c #924E3D", +"S c #888888", +"T c #A0A0A0", +"U c #3D1208", +"V c #D15137", +"W c #919191", +"X c #879981", +"Y c #82947C", +"Z c #8A9B85", +"` c #6E8467", +" . c #5D7555", +".. c #4C6042", +"+. c #3F4F37", +"@. c #303D2A", +"#. c #7F8F7A", +"$. c #64785E", +"%. c #44563E", +"&. c #657460", +"*. c #40503A", +" ", +" . . ", +" . . . . . + @ . ", +" . # $ . . % & * = . ", +" . - ; . > , ' ) ! ~ . ", +" . { . ] ^ / ( _ : < [ . ", +" . . } | 1 2 3 4 : 5 6 7 . ", +" . 8 9 0 a 4 b 5 : 5 : c d . ", +" . e f g 4 b 5 : 5 : 5 : 5 h i . ", +" . j k k l 5 m 5 2 5 2 5 : 5 n o } . ", +" . 8 m p p p p p p p p . . . . . a q = . ", +" . . . . r 5 5 5 5 5 5 5 . s t u . v . . . . ", +" . 4 5 . . . . . 5 . : 5 5 . w . ", +" . x 5 . y z A . 5 . B 5 5 . C . ", +" . D 5 . E F G . 5 . . . . . H . ", +" . . 5 . I J K . k s L L M N . . ", +" . . r . O P G . 5 5 5 5 5 2 . ", +" . 2 . Q # R . : : : : : S . ", +" . T U V # A . 5 5 5 5 5 W . ", +" . . . . . . . . . . . . . . . . . . . . . ", +" } X Y Z X ` ...+.@.. Y #.$.%.&.*.. ", +" . . . . . . . . . . . . . . . . . ", +" . . . ", +" "}; diff --git a/etc/images/icons/emacs_16.png b/etc/images/icons/emacs_16.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5122b05b28f3d306611902e844e0d723d5529c GIT binary patch literal 783 zcmV+q1MvKbP)w(EZ*psMAUL&X(s%#> z0%S=lkiD6g{Xal-GcuoTl!sx!x9I07ZwwRk;BD5oo zx?`0T?#@XWmwy?&9-bmT`2}Nb)i?WbrbY;(TLUn~TGh(3U}k!OoZKuLn`+SmddfUH zGR@Fn6w8tT`2Bv0ii(NGVpSS|>pK2e^b-JO<$E`nU-iFb9Zv;_cHE;Uh5xC;PtP0-&r$l$=p zmK!8}>j5tDsShMx`e*;=J$*cR{9;>k65eEzB?XogTx-9@qlZ1Lt{R+<)Uj`WX{xuG zuIu1YO3~QRqJ%IvBxhu#)6#mL`r|c>kHxs({fzOk*al4?5KII#L@q1CSlM>Oyu4hl z-)N(}BFyN!C>?k1viNNYfb{gt#0rjMo3861rP#vx`FYx}-ehKamhy@)on5ynDJ{fx z9UR9ty#P{*UR@6WYD+*)P8JuN&yt^?_)KPI1_#T+=z0JtMXyIG#nIX`d0wxt)92Gp z0>R|?p-?6T1$kue%%-$t55lr|KM^Ay|6n?f{nB-vR*zEZpKtmfegkbIa9EQi*6aWP N002ovPDHLkV1kqzTe<)M literal 0 HcmV?d00001 diff --git a/etc/images/icons/emacs_24.png b/etc/images/icons/emacs_24.png new file mode 100644 index 0000000000000000000000000000000000000000..95c72d3c49f7e8b631fd2da3708f6305045d2536 GIT binary patch literal 1068 zcmV+{1k?M8P)w(EZ*psMAUL&X(s%#> z1A$3IK~zYIt(IL(n^hRce;o}Ug;8Jw3JXGE0^xhYnm7$JvS>6W)9AcVvvpU-mWrlaj>DU|~2dd_*hfWA=rLH&4= zC+~Tm_y7L?=XuWap7$6uO#|TV!yk142Y?p-n>m4=Lr0$N1~6!v##^uT9JiDf*xPJ1 zEG~u!&M*Bd=9yb_-2BtaolqFS@y0s`4jNv6GpEm%|WfVf#0j4HzrZmf29zS#bAW!UTCp{yb!GTe(j$V(#l$374X!k_fL+i13PP zVu8k{yScA@2WE4Q9=mbf#dqHh@y88!3|=Wogx44$mQuz5^YS+H*xq*TDlgSzfw_4u z_W#0_;qinMl2YmuHj0&0t$=uQlNt()^UGwYi}DYcrxddtqvV!!=y>gu-x zV9L(o$$bw~R$fBSho2|UK#4VNnxH)oAL+zuEdyX-VUZIb_tJa%d`cyfa`{V!HEkMW zE89507pKm0>g3lck;8IFMtIYzDjVXiLEo8g0H~@gr>3Tg(a{OqE>F_hM?6127q52~ zr4(t_in_Q0N-2h&BlMm=N3o@l=U;e^#>N_4E)T8^gz^i_cxQYlr7(0n@RXJ;-G~(z z7xMC}FVfsn&#-fZqwl_t+dUH(TU}kr`1lk6o1|Q>*G4`)?V{_YLrhLwqq(J?4~`wh zT3Hq!ucSUUN-3PA@E^966!FNTd$5!g0g#iE&8}T-{CagF2CG*0BBxP^umk8$N^U8l zsi_W=DUw(EZ*psMAUL&X(s%#> z2@Od^K~z|U#g=<;RmC00KYR9^`^tj=c_0Z%2vLF}A}9!=Xb@DiU_^m{RZEevwF0%p z3RQuM6jVS*M64o6!P*%Rl$U6=R)p|S5HJv4d6DP6$<6a}lbn0b_K$l*sS5b$On2rt zXXec8e!u(ues}jLlv4aZhyGI+7&m5mj%|lB)@^)cCEx;DfF`As`F-Y#AFIH`aWm32 zp{;bfoHu!*406WY61+Kkkh`p`Y;(76-6jLIN~zHQoWOnK9*>h!pDr|gc1A`DLP)N? zt|wiS<9T-OGN%6a{+g&L$F{5cUG+53$VJr9ehByj6J|YVINU`E35m0Z4Czmg%rsDf zfdl)ned`{2U)h(fn|H+5)-?TGDOFTlT(TDEB!oDx)!$2jiDPG6tsBlIPKR@7=4GiQ zb%{q45>3-+ZEK~tupEcO1xnF>KqlQ%6M1pTTTGaEr)k^P-r*x|yzhK!T#!KSJ&(od zhGUKb0=$_G)WlL8xI_FmE>+8#B&3tnF$-+ZN+ST}$H+PSE_$G(pTB7TY zz8O8zNKNg6X_~~wdKiA&V3ciRnjuO`DmYzQK}m5HQc6rSM022t-hDEuDzC#d+qk-4 zFIKPGLRMB!4t#l-0oV0SK5^>cj=Wv_ipGz>?=~Ss;aLSnjhqxGrT(I!yB=_RJoL=U zBsMl0UDpT(gT!|5Fn0V%Vq&8Hi*PX5g4t&B)mKO9+BJ#HOVe2K#yaZ#jZ{}P;BiNR z219SYg2cqmtaxJ$cied^l@;FBHLKS@sz<=*2qC6PsmDoOM=6ct$4b$J#^4*SB1V_A zwVFgnduVKI=EU)0;uAXIb~))B-x0Ul#f?J;0ASmSg!qmGnp?@dv>SD`LC&-UxTyFzDQ=1CyuZ0O0fb5kgR1 zRm0-vR%0tclqZVR^h@Y}O%@qFl1WRu1W%NkxVTuP<^>=jDT>pjEj;(>rHJy^G0HayeaA$nITkW4VTNn zvMp+B>dESrPGduWveUIV98RQkAf=8FU|ANH)kY|EPFZbOp;pSvi%3mNt#H^HWw@O=40f23_BWYp%^= z(BM8eoCbM252Nc2q$VTaAuP)z6lx`8wS~W-@Ym}rW7sW2d1BVXIGhgVJoyS6HmqBo zw|Co{KpEfznkAsu)%zNJUVoKsIkJECNG?Z@7Ex4KLFT0?jLx|Ur4&+1KKvjLO_K;s zpll1vGBHDK5d~T?+rho3$(@kHBUA6Es>;v&XI^jF_}=Q7hw^uA1EbjLGKU!Q*_fFQ10`CWH|9YwG#(ivmEQl)_dPq4wQJz^%y6Xa4a~ z?iw?Kg9lFV{PQczH*J3FiK3Dtdw~j|7B~Y~N+~4(3AllHpxcP-+<0Seo;uV&b=UVV1KjLVd=nf>H)1b`4|LIWYr9#Lh7!a1-* zI28n?kTK!>qFjM|K9cuo0ct(?Ak}TA81ud+2_6`?H!Q~1S9fPZr#3i=CY-0 zs}hsqnKXGcmKDObLgAp9t%S@LOfyJZTMJ&_X<}jpul{8rNnH|HFmEj@SH8J?!=_~m zfl{CnsQ)f-h;+qDDJ6sm0Rg~Q-%z8!_x?Ncb;J4G`~}lorKJ^Y+p^=V|H`(pm5twD z$>^LrnL7PJ%FBGLTCt_|?RSVUi;LEjf4bxSMMnzu>;kHQx^u(! zUEu%m@|=p;;s%m|0fPtLvGjwjpQ}Lg88z)UbJWjnpQJ_%8>0azlHamKf{xwfHYvp@azfOzS#S<3N)WlyYu#|!c(P6DW%?c zZG#$h$CMqwZNQa4mk4=zG2jalIEO?m&;z)6+&zyRC@v~jN+}g+KBMN%eN7D-FmgGN z4fG;>j9q~CeZiGd=Wj}d5bbwFG?3IGwsWuBM@)FRU;jQSUT95lh(P z5YQB<7A}_bpF$u)LL+=+9fWPM0h6%g){g;hAO8ksh}dfg1%$Bx0000w(EZ*psMAUL&X(s%#> z4I4>BK~!jg)tP&6T-ANYKj+-LFKM+}$t%f{ELoCeW62oHkC4QG-IP!R4#gl0F=Ltx z4^x_kf?o;*Ti8x$Fi;Xo(@vPSGi73$whRz531AEcL`d)hKZ0%SSX#-JWWA-;?poTt z_n!W7@2(`v7(bio(Hvdv>drae@9+0L-`_d+3Z)ePpPT%@oJPt)0$dk5hqx3Hy7i_9mLtRq z0=x=_3}g81pZ;v)%ur}TL4AGw&!pY0Y<;r z;BQ;<-7UKAURF|CgwN+eYSJ6Z%ld|t8c#pf;@1PFio7^`_Us>*mX@w8D=XV% zSym((jea16_?A*C`6nT8`z;R@0u4T2M#YR7({Q<5fFOP{Mp;=gMMV?Yv-?P1&8&qh z`}@1vBf2ocW9&##y} zw+62_6HWJ^yWB(uV(i%QDX+Zz21P}anLq!lR8~$a^!tOEFZ}F9tGh!jo|r#bZP~Kr zRlncAx~8V)XiiSf_GmQvb0LK5k`wsmZEOBV)8xNbRadz$yKEYo=0?}u=$ac%ddSHM z(c2y6SFeAF6dnfpqfE%1!0b6Q*}dyCZEEEew_H8{*6r=B@fCi*zqGctcBR|xzAGM& zPjoU8I+JUi_aa`lw60hw^P>!3M#+pBRk%G~q?8B*2tjJT;o+0S<58rh;nKYf^hfCG zZs)p1U#8*xJ(QM~5gClI=!SWG^xGZ0{@S)fv3TUgWy=>umoHzwG8hczSe6w@BoZI^ z{r+)lwCp->1R9Iy&3Wifg@AwUR;7?lwP7)BB!nM7HF!NCaKJsnO) z_EB0|%E_S^*Dab$L&NWR{ndBkNn_|YH!WGP|Ni^$xiJt3{FzefWNMDHcA-0$)=jdM z`LWmQE3BC{3y;@}vMel9VJQ>Svan1Og=M1zq!c3rqyz;*2&9l?Wo42`n7G`zB#Z=G z-~1S_*GF$pKT4R)oi~#g|Kk;EYUX5gb#>QnePd_s?3(%Jg84UJ54>_t8CbS-?E|Kn z{Kts}h1&G0Duj?Wc+0}H3=G4-vS~UE>5)f5DvF77>PUJ1yYPGaDS$k z!lE47TD#FS7cQ3@scCq3&@fGdq?y1pEOeKKloqCGV44Xm%OH^$ zX6KGiP)b#tHUqcc^3a2pGN1LhGo{a$OY8AIq_l5UN?}LEBrr{b#Bk!Yfha7> zqp&ECugt#!fTqS)`uii4mro*?lSL?$MPF|msaXi2Atbn@8@Jnyr4*)_#Ig*euuwt+ zq3G)!Br7Y>9En8w#t~S$2q7&%3gUx8B%cJDGIUAnad4D5R7qBq)gx8m+DEXqwf}w1aAGyznLtA+#`hydOX?ax)&)lyEqAfQUcpvYzf_c-(u#>yDSZ)si_r!SnMQq zE1#vecaThfCNnOtpsKo@x$~+BrReJF9~;?nJF3l1ZS?iUaJf8~ zhGPG|CjPK5%zwS~4!IMusF^*D>D6USE-NGy%4T37iWJhZ+_5ACpq%-`O>JakdRe#O zJ~A_XG&Z*I+)w^Bq&w{Y8W2)yPU=Saw~%(RQfUeZ6vvu7PAie>%cqc?9Uz&s&@??g zj#7%qz!2Nt*~j*6d!49Dgp}mw1}G@VMc2hhu$+WjmdTOB&G`LZ9r~{>HCz!#A$xH^2HA zP1De%27u+9pe)O>^^S7(O_Jzff@rh@f2NPTf*=_g9so?!;_zoJ1Ogd6vhFT2GQBi5 zwy<{94_dap`^w+;4|K%#@GCbS ze{0*zYX_tKJwQ?lA>%0$;(Xqt{D zbw1tSOk&uyO+aW!sUfBPKk0NWb-$(~oIRy&6p&0BgqvC&@OP$Vr$nZ#)cvXAmokD;E|c1!Dm(g02@=VZObBH;kv}c? z4xk5!0Z9!Av>lI4D=sd&qGC!ZH!faC!w0+Q@9V*(d+q8dG=#8$=jQsEf6WY9k9Uzs zB$zp?k}GCa^7flMFbstzH7CLvQl`L)aY0C3Q!-Ubkx0Y|MXl^;QXEcdLH(br{KH5un zR|mT0O;_hgB+k2Uf5PsahlxbuY=3tzmT7xBqvSIh_^FmWoQRT>lfh#fzD-uvxq}DL zlv37)4I4}#)yI+ei$z!QyN~wK)!l(h_X1Awks8s#IEN3lVw#NTpAqn*fsd9@3jDf_ zcb_+S7IK(+{VJ4FtbTYiEzKv$@a3XO-SKek6hBXG z1jlAz6nut;qXct&)Ni`?g20aiaIWcx1)_|GM9MiT2+FSzzPo5Y%xPZDlyMc3U<)JG0LqwyPNf}9*bKYDr<*%uM~ z83~*{i67B;^jP{7H}*^cN|^+60zCC>-9-ogg#^x;#KTW;^pD4|l!;)}0v3YY+-#ot z@uOr1vo1P#IE#n7N+|<~V{czOfUfr%UfsNDK>K@)62@Mv6r+ z=;!HYAGu`UQvlDZV?Rd?0F!|$fyE22Uh>}CZ#Ae?TmSukP%G|!M6I~zQT2D<*`WG* z2b5Au9X;BtYHz;hSe8F{CvX)|iJeh5jtb7VpWDr6LE_YQDZ!sJfpaBsslh9y&iy5y zQpylQ#7BSkUc;-K*$A;%d_j4I{d_bQi}Uo8KfU;xKc$`5TguNPVVXwV>&++wuuLje!(5Hug0{{R307*qoM6N<$f>_nA AQ~&?~ literal 0 HcmV?d00001 diff --git a/etc/images/index.pbm b/etc/images/index.pbm new file mode 100644 index 0000000000000000000000000000000000000000..d8aa08a7e53d35a4c123e945247012227e959c98 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #919191", +", c #EFEFEF", +"' c #878787", +") c #8A8A8A", +"! c #5C5C5C", +"~ c #F8F8F8", +"{ c #EAEAEA", +"] c #CCCCCC", +"^ c #CECECE", +"/ c #979797", +"( c #CDCDCD", +"_ c #A1A1A1", +": c #090600", +"< c #A3A3A3", +"[ c #C5C5C5", +"} c #C4C4C4", +"| c #D1D1D1", +"1 c #D2D2D1", +"2 c #D2D2D2", +"3 c #9A9A9A", +"4 c #E8E8E8", +"5 c #949494", +"6 c #939393", +"7 c #574F4F", +"8 c #FDFDFC", +"9 c #777777", +"0 c #7E7E7E", +"a c #9D9D9D", +"b c #6B6B6B", +"c c #F1F1F1", +"d c #ECECEC", +"e c #CFCFCF", +"f c #575050", +"g c #FDFAF8", +"h c #A5A5A5", +"i c #B9B9B9", +"j c #EEEEEE", +"k c #EDEDED", +"l c #D5D5D5", +"m c #BABABA", +"n c #6D6767", +"o c #F9F1EA", +"p c #9E9E9E", +"q c #B5B5B5", +"r c #D9D9D9", +"s c #D7D7D7", +"t c #BCBCBC", +"u c #625C5B", +"v c #F9EEE4", +"w c #4F4D4A", +"x c #646464", +"y c #747474", +"z c #D6D6D5", +"A c #DFDFDF", +"B c #A0A0A0", +"C c #615C5B", +"D c #F9F0E4", +"E c #746C67", +"F c #FEFDFC", +"G c #FFFEFD", +"H c #131210", +"I c #636363", +"J c #7C7C7C", +"K c #F3F2F2", +"L c #98948F", +"M c #F9EFE3", +"N c #A09489", +"O c #FEFDFD", +"P c #766D68", +"Q c #736961", +"R c #A3A3A2", +"S c #A6A6A6", +"T c #DBDBDB", +"U c #C7C7C7", +"V c #E8E5E2", +"W c #97938E", +"X c #F6E9D8", +"Y c #84817A", +"Z c #FBF3EA", +"` c #908C86", +" . c #F1EDE7", +".. c #7B7975", +"+. c #878786", +"@. c #070000", +"#. c #FAFAFA", +"$. c #DDDDDD", +"%. c #E2DFDC", +"&. c #A8A199", +"*. c #F0E0CE", +"=. c #C8BFB4", +"-. c #D5CCBF", +";. c #DFD7CD", +">. c #DAD3C9", +",. c #DDCFC4", +"'. c #928C84", +"). c #A8A8A8", +"!. c #959595", +"~. c #040000", +"{. c #D9D5D2", +"]. c #D9CABB", +"^. c #D7C8B8", +"/. c #DECFBF", +"(. c #D8C9B9", +"_. c #E3D3C2", +":. c #C9BBAC", +"<. c #D9CEC2", +"[. c #7F766D", +"}. c #909090", +"|. c #D3D3D3", +"1. c #060100", +"2. c #C0BDBA", +"3. c #8C8782", +"4. c #C2B5A7", +"5. c #BFB4A6", +"6. c #B8AB9D", +"7. c #BAAD9E", +"8. c #BEB0A2", +"9. c #948A7F", +"0. c #716860", +"a. c #E2E2E2", +"b. c #A9A9A8", +"c. c #332C2B", +"d. c #5D5954", +"e. c #79736C", +"f. c #958C80", +"g. c #8D8379", +"h. c #988D82", +"i. c #706760", +"j. c #787878", +"k. c #E4E4E4", +"l. c #C2C2C2", +"m. c #201A1A", +"n. c #57514F", +"o. c #625C59", +"p. c #625A53", +"q. c #6B625A", +"r. c #585251", +"s. c #696764", +"t. c #080000", +"u. c #989898", +"v. c #B0B0B0", +"w. c #AFAFAF", +"x. c #999999", +"y. c #9D9897", +"z. c #050000", +"A. c #0C0303", +"B. c #080100", +"C. c #030000", +"D. c #282523", +"E. c #5A5A5A", +"F. c #868686", +"G. c #ECE4E2", +"H. c #DED7D5", +"I. c #D8D1D0", +"J. c #E0DBD7", +"K. c #E9E6E3", +"L. c #FCFBFA", +"M. c #030500", +"N. c #0B0505", +"O. c #14100F", +"P. c #090806", +"Q. c #000100", +" ", +" . . . . . . . . . . . . . . . . . . . . ", +" . + @ @ @ @ @ @ @ # # # # # # # # # $ . ", +" . @ % % % & & & & * * * * * = = = = - . ", +" . # & & & * * * * = = = = = ; ; ; ; > . ", +" . , ' ' ' ) ) ) ) - - - - - > > > > ! . ", +" . ~ { { { { { { { { { { { { { { { { ; . ", +" . # ; ; ; ] ] ] ] ] ^ ^ ^ ^ $ $ $ $ / . ", +" . # ] ] ] ( ^ ^ ^ _ : < [ } | 1 | 2 3 . ", +" . 4 5 5 5 / / / 6 7 8 . 9 0 - a a a b . ", +" . ~ c d d d d d e f g . h i $ j j k * . ", +" . ~ 2 2 2 2 l l m n o . > p q r r r < . ", +" . ~ l l l l s s t u v w . x . y p z < . ", +" . A B B B B < 9 . C D E F . G H . I J . ", +" . ~ @ , , , j . K L M N O P F Q R . S . ", +" . ~ T T T T U . V W X Y Z ` ...+.@.< . ", +" . #.$.$.$.$.& . %.&.*.=.-.;.>.,.'.@.p . ", +" . { ).).).).!.~.{.].^./.(._.:.<.[.@.}.. ", +" . #.@ c c c |.1.2.3.4.5.6.7.8.9.0.@.] . ", +" . #.a.a.a.a.l b.c.d.e.f.g.9.h.i.. j.q . ", +" . #.a.a.a.a.k.l.j.m.n.o.p.q.r.s.t.u.q . ", +" . a.v.v.v.v.v.w.x.y.z.A.t.B.C.D.E.F.m . ", +" . . . . . . . . . ~.G.H.I.J.K.L.M.. . . ", +" ~.N.z.O.C.P.. Q. "}; diff --git a/lisp/toolbar/info.pbm b/etc/images/info.pbm similarity index 100% rename from lisp/toolbar/info.pbm rename to etc/images/info.pbm diff --git a/lisp/toolbar/info.xpm b/etc/images/info.xpm similarity index 100% rename from lisp/toolbar/info.xpm rename to etc/images/info.xpm diff --git a/etc/images/jump-to.pbm b/etc/images/jump-to.pbm new file mode 100644 index 0000000000000000000000000000000000000000..5f5921baf570bb1e73669ebd29d345253c0b27c2 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI&C$D`VZ7a6gU`2I0$e!aPT;=usBGtI2f?h74XzQ;9-8i!JHt$B=LcP{{Tc6G6?{f C#3)+; literal 0 HcmV?d00001 diff --git a/etc/images/jump-to.xpm b/etc/images/jump-to.xpm new file mode 100644 index 00000000000..8f9897974ab --- /dev/null +++ b/etc/images/jump-to.xpm @@ -0,0 +1,171 @@ +/* XPM */ +static char * jump_to_xpm[] = { +"24 24 144 2", +" c None", +". c #000000", +"+ c #9ABC82", +"@ c #C1E3AA", +"# c #A0C487", +"$ c #8F6508", +"% c #AD671D", +"& c #D6AF41", +"* c #E1B744", +"= c #B86F20", +"- c #7E5907", +"; c #D8E7CD", +"> c #D9E7CF", +", c #DDEAD2", +"' c #E4EFDA", +") c #EBF6DF", +"! c #C8EBB0", +"~ c #A2C688", +"{ c #986F26", +"] c #E2B946", +"^ c #EFCD64", +"/ c #F4D268", +"( c #F6D469", +"_ c #E7C24A", +": c #D5B044", +"< c #BC8C31", +"[ c #1A0700", +"} c #D7E6CD", +"| c #B2D29C", +"1 c #B6D69F", +"2 c #BDDEA5", +"3 c #C4E7AC", +"4 c #CAEEB1", +"5 c #A1C387", +"6 c #CBB86E", +"7 c #EDD97E", +"8 c #FEE882", +"9 c #FEE77E", +"0 c #FDDF60", +"a c #FBD14F", +"b c #E4BF49", +"c c #BB8C31", +"d c #CFE2C3", +"e c #B2D19C", +"f c #B5D59F", +"g c #BBDBA4", +"h c #C1E3A9", +"i c #C6E9AE", +"j c #C3E6AB", +"k c #A9CE8D", +"l c #DCBA5C", +"m c #FBE46B", +"n c #FFEB64", +"o c #FFE054", +"p c #FED952", +"q c #F8CF4E", +"r c #C4A13E", +"s c #8BA27B", +"t c #618249", +"u c #628349", +"v c #64864B", +"w c #66894D", +"x c #688B4E", +"y c #678B4D", +"z c #6B9251", +"A c #719755", +"B c #55833A", +"C c #ECC75E", +"D c #FFED59", +"E c #FFE757", +"F c #FFDF54", +"G c #FBD44F", +"H c #E1BD48", +"I c #B36C1F", +"J c #608148", +"K c #628449", +"L c #63854A", +"M c #65894C", +"N c #6C9151", +"O c #527E39", +"P c #B39237", +"Q c #F0C248", +"R c #FFF25B", +"S c #FFEB58", +"T c #FFE155", +"U c #FBD450", +"V c #E3BD49", +"W c #BC983B", +"X c #618349", +"Y c #628549", +"Z c #65884B", +"` c #4D7735", +" . c #907934", +".. c #DCB444", +"+. c #FCDB52", +"@. c #FFEF5A", +"#. c #FFE957", +"$. c #FEDF54", +"%. c #F9D24F", +"&. c #E0BA48", +"*. c #B08F37", +"=. c #52743B", +"-. c #456A2F", +";. c #608248", +">. c #628448", +",. c #476F31", +"'. c #7F6B32", +"). c #D0AF4B", +"!. c #F5CF4E", +"~. c #FFE255", +"{. c #FEDA52", +"]. c #EAC54B", +"^. c #D0AC42", +"/. c #9C5D1A", +"(. c #5A7B42", +"_. c #456C2F", +":. c #6F5C23", +"<. c #A78833", +"[. c #F0C54A", +"}. c #FFDA52", +"|. c #FFDE53", +"1. c #C39032", +"2. c #886423", +"3. c #BC9D3B", +"4. c #F0C84E", +"5. c #FFD551", +"6. c #FED751", +"7. c #FDD550", +"8. c #EDC74C", +"9. c #E5BF49", +"0. c #CCA941", +"a. c #AB7727", +"b. c #B1822D", +"c. c #DCB746", +"d. c #DFBA47", +"e. c #EDC64C", +"f. c #E9C34B", +"g. c #D6B144", +"h. c #C19D3D", +"i. c #AB7C2B", +"j. c #BC7222", +"k. c #BB983B", +"l. c #B09638", +"m. c #A2621B", +" ", +" ", +" . ", +" . . ", +" . + . . . . . . . ", +" . . . . . . @ # . . $ % & * = - . . ", +" . ; > , ' ) ! ! ~ . { ] ^ / ( _ : < [ . ", +" . } | 1 2 3 4 4 3 5 . 6 7 8 9 0 a b c . ", +" . d e f g h i i h j k . l m n o p q r - . ", +" . s t u v w x x y z A B . C D E F G H I . ", +" . s J t K L v v M N O . P Q R S T U V W . ", +" . s J J t X u Y Z ` . ...+.@.#.$.%.&.*.. ", +" . =.-.-.-.-.;.>.,.. '.).!.E E ~.{.].^./.. ", +" . . . . . . (._.. :.<.[.}.|.|.{.%.V 1.$ . ", +" . -.. . 2.3.4.5.6.7.8.9.0.a.. ", +" . . . . b.c.d.e.f.g.h.i.. . ", +" . . $ j.k.l.m.$ . . ", +" . . . . . . ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/left-arrow.pbm b/etc/images/left-arrow.pbm new file mode 100644 index 0000000000000000000000000000000000000000..56005e71c3f02177641f990b60df0d6d46556eac GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #BBCFBA", +", c #BBD0B9", +"' c #B2C9B0", +") c #7EAB78", +"! c #AAC7A8", +"~ c #B3CAB1", +"{ c #B0C9B0", +"] c #B0C9AE", +"^ c #AEC7AC", +"/ c #AAC5A8", +"( c #A9C4A7", +"_ c #698267", +": c #2D2D2D", +"< c #CFDFCC", +"[ c #ADC8AB", +"} c #B0C7AE", +"| c #ADC6AB", +"1 c #678C63", +"2 c #9BAD9A", +"3 c #85AE81", +"4 c #87AF84", +"5 c #87B083", +"6 c #88AF84", +"7 c #88B085", +"8 c #86AF82", +"9 c #547150", +"0 c #3C5235", +"a c #5B7950", +"b c #4A6342", +"c c #3B5035", +"d c #415639", +" ", +" ", +" ", +" . ", +" .. ", +" .+. ", +" .@#. ", +" .@$%........ ", +" .@&*=-;->,'). ", +" .@!~{]^///^(_. ", +" :<[}||[!^^}^[1. ", +" .23444445645789. ", +" .0aaaaaaaaaaab. ", +" .0aaaaaaaaaab. ", +" .0aabccccccd. ", +" .0ab........ ", +" .0b. ", +" .b. ", +" .. ", +" . ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/low-color/back-arrow.xpm b/etc/images/low-color/back-arrow.xpm new file mode 100644 index 00000000000..05a797c7a65 --- /dev/null +++ b/etc/images/low-color/back-arrow.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char *back_arrow_xpm[] = { +"24 24 6 1", +" c #000000", +". c #000100", +"X c #6B6B66", +"o c #87AF85", +"O c #FFFFFF", +"+ c None", +"++++++++++++++++++++++++", +"++++++++++++++++++++++++", +"++++++++++++++++++++++++", +"++++++++++ +++++++++++++", +"+++++++++ .+++++++++++++", +"++++++++ O.+++++++++++++", +"+++++++ Oo . ++++++++++", +"++++++ Ooooooo +++++++++", +"+++++ Ooooooooo ++++++++", +"++++ ooooooooooo.+++++++", +"+++++ oooooooooo..++++++", +"++++++.oooooooooo.++++++", +"+++++++.oo.. oooo.++++++", +"++++++++.o.+ ooo.++++++", +"+++++++++..++..oo.++++++", +"++++++++++.+++.oo.++++++", +"++++++++++++++.oo.++++++", +"++++++++++++++.o.+++++++", +"+++++++++++++.oX.+++++++", +"++++++++++++.oo.++++++++", +"+++++++++++++..+++++++++", +"++++++++++++++++++++++++", +"++++++++++++++++++++++++", +"++++++++++++++++++++++++"}; diff --git a/etc/images/low-color/copy.xpm b/etc/images/low-color/copy.xpm new file mode 100644 index 00000000000..0511ce109bf --- /dev/null +++ b/etc/images/low-color/copy.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * copy_xpm[] = { +"24 24 6 1", +" c None", +". c #000100", +"+ c #BBBDBA", +"@ c #FFFFFF", +"# c #6B6B66", +"$ c #504D46", +" ", +" ", +" ", +"............. ", +".+@@@@@@@@@@+. ", +".@@@@@@@@@@@@. ", +".@+###@+#@#+@. ", +".@@@@@@@@@@@@. ", +".@#$@##+@............ ", +".@@@@@@@.+@@@@@@@@@@+. ", +".@+##@##.@@@@@@@@@@@@. ", +".@@@@@@@.@+##+@+#@#+@. ", +".@#$$@##.@@@@@@@@@@@@. ", +".@@@@@@@.@##@##+@+#@@. ", +".@+##@##.@@@@@@@@@@@@. ", +".@@@@@@@.@+##@##+@+#@. ", +".+@@@@@@.@@@@@@@@@@@@. ", +" ........@###@##+@+#@. ", +" .@@@@@@@@@@@@. ", +" .@+##@##+@+#@. ", +" .@@@@@@@@@@@@. ", +" .+@@@@@@@@@@+. ", +" .............. ", +" "}; diff --git a/etc/images/low-color/cut.xpm b/etc/images/low-color/cut.xpm new file mode 100644 index 00000000000..750ec729f60 --- /dev/null +++ b/etc/images/low-color/cut.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char * cut2_xpm[] = { +"24 24 7 1", +" c None", +". c #000100", +"+ c #BBBDBA", +"@ c #FFFFFF", +"# c #6B6B66", +"$ c #504D46", +"% c #3E4850", +" ", +" ", +" . . ", +" . . ", +" .+. .@. ", +" .@$ #@. ", +" .@#. .@+. ", +" .@+$ #@+. ", +" #@#. .@+$ ", +" .@+$ $@+. ", +" #@#.%@+# ", +" .@+$#++. ", +" .@+$+. ", +" .++.. ", +" ..#$. ", +" ............. ", +" . ... ... ... ", +" .. .. .. .. ", +" . . . . ", +" .. .. .. .. ", +" .... .. . ", +" .... .... ", +" ", +" "}; diff --git a/etc/images/low-color/fwd-arrow.xpm b/etc/images/low-color/fwd-arrow.xpm new file mode 100644 index 00000000000..284b8c9bee7 --- /dev/null +++ b/etc/images/low-color/fwd-arrow.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char *fwd_arrow_xpm[] = { +"24 24 5 1", +" c #000000", +". c #000100", +"X c #87AF85", +"o c #FFFFFF", +"O c None", +"OOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOO OOOOOOOOOO", +"OOOOOOOOOOOOO OOOOOOOOO", +"OOOOOOOOOOOOO X OOOOOOOO", +"OOOOOOOOOO . XX.OOOOOOO", +"OOOOOOOOO oXXXXXX.OOOOOO", +"OOOOOOOO.oXXXXXXXX.OOOOO", +"OOOOOOO.oXXXXXXXXXX.OOOO", +"OOOOOO..XXXXXXXXXX.OOOOO", +"OOOOOO.XXXXXXXXXX.OOOOOO", +"OOOOOO.XXXX. XX.OOOOOOO", +"OOOOOO.XXX..O X OOOOOOOO", +"OOOOOO.XX..OO. OOOOOOOOO", +"OOOOOO.XX.OOO.OOOOOOOOOO", +"OOOOOO.XX.OOOOOOOOOOOOOO", +"OOOOOOO.X.OOOOOOOOOOOOOO", +"OOOOOOO.XX.OOOOOOOOOOOOO", +"OOOOOOOO.XX.OOOOOOOOOOOO", +"OOOOOOOOO..OOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOO"}; diff --git a/etc/images/low-color/help.xpm b/etc/images/low-color/help.xpm new file mode 100644 index 00000000000..663460c3a06 --- /dev/null +++ b/etc/images/low-color/help.xpm @@ -0,0 +1,39 @@ +/* XPM */ +static char * help2_xpm[] = { +"24 24 12 1", +" c None", +". c #000100", +"+ c #FFFFFF", +"@ c #BBBDBA", +"# c #C43107", +"$ c #EBA291", +"% c #D15237", +"& c #504D46", +"* c #751805", +"= c #6B6B66", +"- c #974F3D", +"; c #3E4850", +" .. &....& ", +" ....&.;@++++@..&.... ", +".. &.+++++++++@.. .. ", +" . .%$+++++++++@#*. . ", +" ..%$$%+@@@++++###*... ", +" -.$$%%$@@@@@+$####.. ", +" .$$$%#*.....=#%####. ", +" =+$%#*.. .*#$##$.. ", +"&++@%#.. .*$$+@.. ", +".++@@-. *$++@&. ", +".++@@@. .+++@=. ", +".++@@@. .++@@&. ", +".+++@@. =++@@.. ", +"&@++@@-. .$++@@.. ", +" .+++$%*. .-$$@@=.. ", +" .@$%%$%*...&$$$%#$.. ", +" &.###%$$++++$$###... ", +" ..*####$++++$###*... ", +" . .*###+++@@@%#... . ", +" . ..#@@@@@@@&... . ", +" .......&&&..... .. ", +" ........ .... ", +" ", +" "}; diff --git a/etc/images/low-color/home.xpm b/etc/images/low-color/home.xpm new file mode 100644 index 00000000000..c7a7ecfb634 --- /dev/null +++ b/etc/images/low-color/home.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char * home2_xpm[] = { +"24 24 11 1", +" c None", +". c #000100", +"+ c #BBBDBA", +"@ c #FFFFFF", +"# c #6B6B66", +"$ c #504D46", +"% c #974F3D", +"& c #EBA291", +"* c #87AF85", +"= c #3E4850", +"- c #D15237", +" ", +" .. ", +" .... ..=. ", +" .%%..===.. ", +" .%%..$$#$.. ", +" .%..=+#++$.. ", +" ...$#+#++@$.. ", +" ..$+#++@+@+#.. ", +" ..#+++@+@+@+@#.. ", +" ..+++@+@+@+@+@+#.. ", +" ..+++++++++.....##.. ", +" ....@@@@@@@@.++@.#.... ", +" .+@.....@.+@@.#. ", +" .+@.&&%.@.+@@.#. ", +" .#@.&-%.@.....#. ", +" ..@.&-..++####.. ", +" ..@.&-%.@@@@@+. ", +" .+.&%%.+++++#. ", +" .+.-%%.@@@@@#. ", +" .................... . ", +" .****##$$$.**#$#$. ", +" .. ......... ...... ", +" ... ", +" "}; diff --git a/etc/images/low-color/index.xpm b/etc/images/low-color/index.xpm new file mode 100644 index 00000000000..7a2464f032b --- /dev/null +++ b/etc/images/low-color/index.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char * index2_xpm[] = { +"24 24 7 1", +" c None", +". c #BBBDBA", +"+ c #000100", +"@ c #FFFFFF", +"# c #6B6B66", +"$ c #504D46", +"% c #3E4850", +" ", +" ++++++++++++++++++++ ", +" +@@@@@@@@@@@@@@@@@.+ ", +" +@................#+ ", +" +@................#+ ", +" +@#################+ ", +" +@@@@@@@@@@@@@@@@@.+ ", +" +@.................+ ", +" +@........+........+ ", +" +@.......$@+###...#+ ", +" +@@@@@@@.$@+...@@@.+ ", +" +@.......#@+#......+ ", +" +@.......#@$+#+#...+ ", +" +@.....#+#@#@+@++##+ ", +" +@@@@@@+@.@.@#@#.+.+ ", +" +@.....+@.@#@#@##+.+ ", +" +@.....+@.@.....#+.+ ", +" +@.....+........#+#+ ", +" +@@@@@.+.#.....##+.+ ", +" +@@@@@..%$######+#.+ ", +" +@@@@@@.#+$#$#$#+..+ ", +" +@........++++++$#.+ ", +" ++++++++++@...@@++++ ", +" ++++++++ "}; diff --git a/etc/images/low-color/jump-to.xpm b/etc/images/low-color/jump-to.xpm new file mode 100644 index 00000000000..cd7499396c7 --- /dev/null +++ b/etc/images/low-color/jump-to.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * jump_to2_xpm[] = { +"24 24 8 1", +" c None", +". c #D3B354", +"+ c #000100", +"@ c #87AF85", +"# c #974F3D", +"$ c #FFFFFF", +"% c #D15237", +"& c #BBBDBA", +" ", +" ", +" + ", +" ++ ", +" +@+ ++++++ ", +" ++++++@@+ +.#..%#++ ", +" +$$$$$@@@+........++ ", +" +&@@@@@@@@+........+ ", +" +&@@@@@@@@@+.......#+ ", +" +@@@@@@@@@@@+......%+ ", +" +@@@@@@@@@@+........+ ", +" +@@@@@@@@@+.........+ ", +" +@@@@@@@@+#........#+ ", +" ++++++@@+#..........+ ", +" +@++#.........+ ", +" ++ ++........++ ", +" + +.%..#.++ ", +" ++++++ ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/low-color/left-arrow.xpm b/etc/images/low-color/left-arrow.xpm new file mode 100644 index 00000000000..61dded3a5aa --- /dev/null +++ b/etc/images/low-color/left-arrow.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char * left_arrow2_xpm[] = { +"24 24 7 1", +" c None", +". c #87AF85", +"+ c #000100", +"@ c #BBBDBA", +"# c #504D46", +"$ c #6B6B66", +"% c #3E4850", +" ", +" ", +" ", +" + ", +" ++ ", +" +@+ ", +" +@@+ ", +" +@@@++++++++ ", +" +@@@@@@@@@@.+ ", +" +@.@@@@...@.$+ ", +" %@.@@@..@@@@..+ ", +" +@............$+ ", +" +#...........#+ ", +" +#..........#+ ", +" +#..########+ ", +" +#.#++++++++ ", +" +##+ ", +" +#+ ", +" ++ ", +" + ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/low-color/new.xpm b/etc/images/low-color/new.xpm new file mode 100644 index 00000000000..e2984bffd4f --- /dev/null +++ b/etc/images/low-color/new.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * new2_xpm[] = { +"24 24 6 1", +" c None", +". c #FFFFFF", +"+ c #BBBDBA", +"@ c #000100", +"# c #6B6B66", +"$ c #504D46", +" ", +" @@@@@@@@@@@@@ ", +" @+..........+$@ ", +" @...........+++@ ", +" @...........+..+@ ", +" @...........+...#@ ", +" @...........+...++@ ", +" @...........+@@@@@@@ ", +" @............++++##@ ", +" @.............++++#@ ", +" @...............++#@ ", +" @................+#@ ", +" @.................#@ ", +" @.................+@ ", +" @.................+@ ", +" @...............+++@ ", +" @..............++++@ ", +" @.............+++++@ ", +" @............++++++@ ", +" @............++++++@ ", +" @+...+.+.+.++++++++@ ", +" @+++++++++++++++++#@ ", +" @@@@@@@@@@@@@@@@@@ ", +" "}; diff --git a/etc/images/low-color/next-node.xpm b/etc/images/low-color/next-node.xpm new file mode 100644 index 00000000000..55fe7c75fe5 --- /dev/null +++ b/etc/images/low-color/next-node.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * next_node_xpm[] = { +"24 24 8 1", +" c None", +". c #BBBDBA", +"+ c #000000", +"@ c #FFFFFF", +"# c #87AF85", +"$ c #504D46", +"% c #6B6B66", +"& c #000100", +" ++++++++++++++++++ ", +" +@@@@@@@@@@@@@@@..+ ", +" +@@@@@@@@@@@@@@@.@.+ ", +" +@@@%.@@@@@@@@@@.#%&+ ", +" +@@@++..@@@@@@@@.#%&+ ", +" +@@@+#+...@.@@@@@@..+ ", +" +@..+.#+...@@.......+ ", +"+++++++.##+....@......+ ", +"+.......###+..........+ ", +"+.####.#####+.........+ ", +"+..........##+........+ ", +"+###########$+#.......+ ", +"+##########$+#........+ ", +"+#########$+%#........+ ", +"+++++++##$+#..........+ ", +" +..#+#$+%#..........+ ", +" +...+$+#............+ ", +" +@..++##............+ ", +" +@..+...............+ ", +" +@..................+ ", +" +@..................+ ", +" +++++++++++++++++++++ ", +" ", +" "}; diff --git a/etc/images/low-color/open.xpm b/etc/images/low-color/open.xpm new file mode 100644 index 00000000000..0e074830bb6 --- /dev/null +++ b/etc/images/low-color/open.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * open2_xpm[] = { +"24 24 8 1", +" c None", +". c #BBBDBA", +"+ c #000100", +"@ c #87AF85", +"# c #FFFFFF", +"$ c #6B6B66", +"% c #504D46", +"& c #3E4850", +" ", +" ", +" ", +" +++++++ ", +" +.#####$% ", +" +#.....@% ", +"+.#......%+ ", +"+..@@@...$%++++++++ ", +"+.@@@@@..@@........+ ", +"+.@@@@@@@@@@@@@@@@$+ ", +"+.$$++++++++++++++++++ ", +"+.$%################..& ", +"+.$+#.................+ ", +"+.%.#...............@$+ ", +"+.+#...............@@%+ ", +"+.$#............@@.@$+ ", +"+....@@@@@.....@@@@$%+ ", +"+.#..@@@@@@@@@@@@$$$+ ", +"+#.@@@@$$$$$$$$$$$$%+ ", +" +++++++++++++++++++ ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/low-color/paste.xpm b/etc/images/low-color/paste.xpm new file mode 100644 index 00000000000..c728f0f038c --- /dev/null +++ b/etc/images/low-color/paste.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * paste2_xpm[] = { +"24 24 8 1", +" c None", +". c #FFFFFF", +"+ c #BBBDBA", +"@ c #000100", +"# c #6B6B66", +"$ c #504D46", +"% c #D3B354", +"& c #974F3D", +" @@@@ ", +" @@@@@@+..#@@@@@@ ", +"@.....$.++#$+...+@ ", +"@.++++$.##+$#+++%@ ", +"@.+++$..+++#$#++%@ ", +"@.++$++++++#$$++%@ ", +"@.++#$$$$$$$$#++%@ ", +"@.+++########+++%@ ", +"@.+++++#$@@@@@$$@@@@@ ", +"@.+++++$+...........+@ ", +"@.+++++$.............@ ", +"@.+++++@.+##+..+#.#+.@ ", +"@.+++++@.............@ ", +"@.+++++$.##.###+.+#..@ ", +"@.+++++$.............@ ", +"@.+++++$.+##.###+.+#.@ ", +"@.+++++@.............@ ", +"@.+++++@.##.###+.+#..@ ", +"@.+++++$.............@ ", +"@.+++++$.+##.###+.+#.@ ", +"@+%%%%&@.............@ ", +" @@@@@@@+...........+@ ", +" @@@@@@@@@@@@@ ", +" "}; diff --git a/etc/images/low-color/preferences.xpm b/etc/images/low-color/preferences.xpm new file mode 100644 index 00000000000..cebac821d6e --- /dev/null +++ b/etc/images/low-color/preferences.xpm @@ -0,0 +1,37 @@ +/* XPM */ +static char * preferences2_xpm[] = { +"24 24 10 1", +" c None", +". c #000100", +"+ c #BBBDBA", +"@ c #FFFFFF", +"# c #7A98B0", +"$ c #6B6B66", +"% c #4D687C", +"& c #B0CCE2", +"* c #504D46", +"= c #3E4850", +" .. ", +" .++$. ", +" .+++. .. ", +" .@+. .@$. ", +" .. =@+. .@++. ", +" .+ ..+@+$. .++. ", +" .+++@@+++. .@.. ", +" .+++++++$. .@. ", +" .....@@+$..+. ", +" .@@+.+. ", +" .@.+.. ", +" .+.$*. ", +" ....+.$$$$. ", +" .#&#.. .+++$. ", +" .#&+&%. .@@+$. ", +" .#@#%&%. .@@+$. ", +" .#@#%&#%. .@@+$..", +" .&@#%&#%. .+$*+.", +" .#@#%&#%. .+++.", +" .&@#&#%.. ... ", +" .#&&#%.. ", +" .##%.. ", +" ... ", +" "}; diff --git a/etc/images/low-color/prev-node.xpm b/etc/images/low-color/prev-node.xpm new file mode 100644 index 00000000000..bc198d00b2d --- /dev/null +++ b/etc/images/low-color/prev-node.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char * prev_node_xpm[] = { +"24 24 7 1", +" c None", +". c #BBBDBA", +"+ c #000000", +"@ c #FFFFFF", +"# c #87AF85", +"$ c #504D46", +"% c #000100", +" ++++++++++++++++++ ", +" %@.@@@@@@@@@@@@@@.+ ", +" %@@#.@@@@@@@@@@@@@.+ ", +" +..##.@@@@@@@@@.+...+ ", +" +#....@@@@@@@@.++...+ ", +" +.@@@@@@@@@...+.+...+ ", +" +.@@@@@@@@@@.+.#+...+ ", +" +@@@@@@@@...+.##+++++++", +" +@@@@@@@...+.##......#+", +" +@@@@@@@..+@####.#####+", +" +@.@.....+...........#+", +" +@.@.....+###########$+", +" +@........+##########$+", +" +@........#+#####$$$$$+", +" +@.........#+##$+++++++", +" +@..........#+#$+###+ ", +" +@...........#+$+#..+ ", +" +@............#++...+ ", +" +@.............#+...+ ", +" +@..................+ ", +" +@..................+ ", +" +++++++++++++++++++++ ", +" ", +" "}; diff --git a/etc/images/low-color/print.xpm b/etc/images/low-color/print.xpm new file mode 100644 index 00000000000..8c67bb632f0 --- /dev/null +++ b/etc/images/low-color/print.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * print2_xpm[] = { +"24 24 6 1", +" c None", +". c #FFFFFF", +"+ c #000100", +"@ c #BBBDBA", +"# c #6B6B66", +"$ c #504D46", +" ", +" ++++++++++++ ", +" +@..........@+ ", +" +.........@@@+ ", +" +.###.#@@...@+ ", +" +...........@+ ", +" +.##@.#@.@#.@+ ", +" +...........@+ ", +" +.@@.@.@@@..@+ ", +" +....@......@+ ", +" ++.###@##@#@@@++ ", +" +.+@@@@@@@@@@@@+#+ ", +" +..#$++++++++++##@@+ ", +" +....................+ ", +" +@#...............@@@+ ", +" +@#.@@@@@@@@@@@@@@#@#+ ", +" +@#...............$##+ ", +" +@#$$$$$$$$$$$$$$$$##+ ", +" +@@###$#$$$$$$$$$$###+ ", +" +#@@#########$#######+ ", +" ++++++++++++++++++++ ", +" +#@@@@@@@@@@@@@@@##+ ", +" ++++++++++++++++++ ", +" "}; diff --git a/etc/images/low-color/right-arrow.xpm b/etc/images/low-color/right-arrow.xpm new file mode 100644 index 00000000000..a74b70c74b3 --- /dev/null +++ b/etc/images/low-color/right-arrow.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * right_arrow2_xpm[] = { +"24 24 6 1", +" c None", +". c #87AF85", +"+ c #000100", +"@ c #BBBDBA", +"# c #6B6B66", +"$ c #504D46", +" ", +" ", +" ", +" + ", +" ++ ", +" +.+ ", +" +..+ ", +" ++++++++@..+ ", +" +@@@@@@@@@..+ ", +" +@@..........+ ", +" +..........@..+ ", +" +.............$+ ", +" +............$+ ", +" +...........$+ ", +" +.######...$+ ", +" ++++++++#.$+ ", +" +#$+ ", +" +$+ ", +" ++ ", +" + ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/low-color/save.xpm b/etc/images/low-color/save.xpm new file mode 100644 index 00000000000..34004859bd6 --- /dev/null +++ b/etc/images/low-color/save.xpm @@ -0,0 +1,39 @@ +/* XPM */ +static char * save_xpm[] = { +"24 24 12 1", +" c None", +". c #000100", +"+ c #B0CCE2", +"@ c #6B6B66", +"# c #EBA291", +"$ c #BBBDBA", +"% c #7A98B0", +"& c #974F3D", +"* c #4D687C", +"= c #FFFFFF", +"- c #3E4850", +"; c #504D46", +" ", +" ", +" ................... ", +" .++@############$@++. ", +" .+%@########&&#&&@%*. ", +" .+%@######&#&#&&&@%*. ", +" .+%@=============@%*. ", +" .+%@=============@%*. ", +" .+%@$$$$$$$$$$$$$@%*. ", +" .+%@=============@%*. ", +" .+%@=============@%*. ", +" .+%@$$$$$$$$$$$$$@%@. ", +" .+%@=============@%-. ", +" .+%%@@@@@@@@@@@@@@%-. ", +" .+%%%%%%%%%%%%%%%%%-. ", +" .+%%%---**@@@@---%+-. ", +" .+%%-$$====$$$$@**+-. ", +" .+%%-$=@;;$$$$$-**+-. ", +" .+%%-==@;;$$$$$-**+-. ", +" .+%%-==;;;$$$==-**+-. ", +" .%%%-$$;;;$$===-**+-. ", +" .**-$$$$$$==$$-**+-. ", +" ................-. ", +" "}; diff --git a/etc/images/low-color/saveas.xpm b/etc/images/low-color/saveas.xpm new file mode 100644 index 00000000000..11cc684c22d --- /dev/null +++ b/etc/images/low-color/saveas.xpm @@ -0,0 +1,40 @@ +/* XPM */ +static char * saveas2_xpm[] = { +"24 24 13 1", +" c None", +". c #000100", +"+ c #BBBDBA", +"@ c #7A98B0", +"# c #FFFFFF", +"$ c #6B6B66", +"% c #3E4850", +"& c #B0CCE2", +"* c #4D687C", +"= c #EBA291", +"- c #504D46", +"; c #D3B354", +"> c #974F3D", +" .. ", +" .;;. ", +" .............;;-... ", +" .&&$========.;;-.%@@. ", +" .&@$=======.;;-.>-@*. ", +" .&@$======.;;-.>>%@*. ", +" .&@$#####.;;-.++#$@*. ", +" .&@$####.;;-.++##$@*. ", +" .&@$+++.;;-.+++++$@*. ", +" .&@$###.;-.++####$@*. ", +" .&@$##.-..++#####$@*. ", +" .&@$++..+++++++++$@$. ", +" .&@$###++########$@%. ", +" .&@@$$$$$$$$$$$$$$@%. ", +" .&@@@@@@@@@@@@@@@@@%. ", +" .&@@@%%%**$$$$%%%@&%. ", +" .&@@%++####++++$**&%. ", +" .&@@%+#$--+++++%**&%. ", +" .&@@%##$--+++++%**&%. ", +" .&@@%##---+++##%**&%. ", +" .@@@%++---++###%**&%. ", +" .**%++++++##++%**&%. ", +" ................%. ", +" "}; diff --git a/etc/images/low-color/search.xpm b/etc/images/low-color/search.xpm new file mode 100644 index 00000000000..478b63ff648 --- /dev/null +++ b/etc/images/low-color/search.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * search2_xpm[] = { +"24 24 6 1", +" c None", +". c #FFFFFF", +"+ c #BBBDBA", +"@ c #000100", +"# c #6B6B66", +"$ c #504D46", +" ", +" @@@@@@@@@@@@@ ", +" @+..........+$@ ", +" @...........+++@ ", +" @...........+..+@ ", +" @...........+...#@ ", +" @...........+...++@ ", +" @....+$@@$+.+@@@@@@@ ", +" @...+$+++#$+.++++##@ ", +" @...$+..++#$..++++#@ ", +" @...@+.++++@+...++#@ ", +" @...@++++++@++...+#@ ", +" @...$#+++++$++....#@ ", +" @...+$#+++@@++....+@ ", +" @...+#$@@$#@@+....+@ ", +" @....++++++@@@+++++@ ", +" @....++++++#@@@++++@ ", +" @.....++++++#@@@+++@ ", +" @..........++#@@+++@ ", +" @..........++++++++@ ", +" @+...+.+.+.++++++++@ ", +" @+++++++++++++#####@ ", +" @@@@@@@@@@@@@@@@@@ ", +" "}; diff --git a/etc/images/low-color/spell.xpm b/etc/images/low-color/spell.xpm new file mode 100644 index 00000000000..ec952467cc5 --- /dev/null +++ b/etc/images/low-color/spell.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * spell2_xpm[] = { +"24 24 8 1", +" c None", +". c #000100", +"+ c #87AF85", +"@ c #504D46", +"# c #BBBDBA", +"$ c #6B6B66", +"% c #3E4850", +"& c #FFFFFF", +" ", +" ", +" ", +" ", +" ... .... ... ", +" .. . .. . .. . ", +" .. . .... .. ", +" ..... .. . .. ", +" .. . .. . .. . . ", +" .. . .... ... ... ", +" .+. ", +" .. .+@ ", +" .+. .++. ", +" @+. %#+. ", +" .++. .#+$. ", +" .++.&++. ", +" .+++++$. ", +" .++++. ", +" .+++@. ", +" .++. ", +" .+@. ", +" .. ", +" ", +" "}; diff --git a/etc/images/low-color/undo.xpm b/etc/images/low-color/undo.xpm new file mode 100644 index 00000000000..8172fb2c951 --- /dev/null +++ b/etc/images/low-color/undo.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * undo2_xpm[] = { +"24 24 5 1", +" c None", +". c #D3B354", +"+ c #000100", +"@ c #FFFFFF", +"# c #6B6B66", +" ", +" ", +" ", +" + ", +" ++ ", +" +@+ ", +" +@.++++ ", +" +@......+ ", +" +@........+ ", +" +...........+ ", +" +..........++ ", +" +..........+ ", +" +..+++....+ ", +" +.+ ++...+ ", +" ++ ++..+ ", +" + +..+ ", +" +..+ ", +" +.+ ", +" +.#+ ", +" +..+ ", +" ++ ", +" ", +" ", +" "}; diff --git a/etc/images/low-color/up-arrow.xpm b/etc/images/low-color/up-arrow.xpm new file mode 100644 index 00000000000..ed4b7526015 --- /dev/null +++ b/etc/images/low-color/up-arrow.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * up_arrow2_xpm[] = { +"24 24 8 1", +" c None", +". c #87AF85", +"+ c #000100", +"@ c #504D46", +"# c #6B6B66", +"$ c #BBBDBA", +"% c #FFFFFF", +"& c #3E4850", +" ", +" ", +" + ", +" &$+ ", +" +%.@+ ", +" +%...@+ ", +" +%.....@+ ", +" +%......#@+ ", +" +%.......##@+ ", +" +%$$.....#@@@@+ ", +" +++++$.....@+++++ ", +" +$....#@+ ", +" +$....#@+ ", +" +$...##@+ ", +" +$...##@+ ", +" +$...##@+ ", +" +...#@@@+ ", +" +++++++++ ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/low-color/up-node.xpm b/etc/images/low-color/up-node.xpm new file mode 100644 index 00000000000..906711efee7 --- /dev/null +++ b/etc/images/low-color/up-node.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * up_node_xpm[] = { +"24 24 8 1", +" c None", +". c #FFFFFF", +"+ c #BBBDBA", +"@ c #000000", +"# c #87AF85", +"$ c #504D46", +"% c #6B6B66", +"& c #000100", +" @@@@@@@@@@@@@@@@@@ ", +" @...............++@ ", +" @...............+.+@ ", +" @...............+#%&@ ", +" @...............+#%&@ ", +" @.................++@ ", +" @............+++++++@ ", +" @.............++++++@ ", +" @............+++++++@ ", +" @.....++++#+++++++++@ ", +" @...+.+++@@##+++++++@ ", +" @....+++@#$@%+++++++@ ", +" @...+++@###$@##+++++@ ", +" @...++@##+##$@%+++++@ ", +" @..++@###+###$@##+++@ ", +" @..+@####+####$@#+++@ ", +" @.+@#+++#+#####$@+++@ ", +" @.%@@@@+++###@@@@@++@ ", +" @....+@+#+###@#+++++@ ", +" @....+@+#+###@++++++@ ", +" @.....@+#+###@++..++@ ", +" @@@@@@@+#+###@@@@@@@@ ", +" @+++###@ ", +" @@@@@@@@ "}; diff --git a/lisp/toolbar/mail.pbm b/etc/images/mail.pbm similarity index 100% rename from lisp/toolbar/mail.pbm rename to etc/images/mail.pbm diff --git a/lisp/toolbar/mail.xpm b/etc/images/mail.xpm similarity index 100% rename from lisp/toolbar/mail.xpm rename to etc/images/mail.xpm diff --git a/etc/images/mail/alias.pbm b/etc/images/mail/alias.pbm new file mode 100644 index 0000000000000000000000000000000000000000..cdd42c3632c30f2c7ab5d659e6da4b5eaba280e3 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{fC2Ug3^E1`_Wu|P>=_dH4{0HXyQj0qeMAF%JAz`jp_;~@tJ XBM1pF02Ry-VAx>5@WB560f-3zyX6um literal 0 HcmV?d00001 diff --git a/lisp/toolbar/repack.xpm b/etc/images/mail/repack.xpm similarity index 100% rename from lisp/toolbar/repack.xpm rename to etc/images/mail/repack.xpm diff --git a/etc/images/mail/reply-all.pbm b/etc/images/mail/reply-all.pbm new file mode 100644 index 0000000000000000000000000000000000000000..57503cbea7c2b458008516448690ec3bf29a8b86 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{fB@zL40Q_p2NWb2CWtXi5Ns6SQ10OWURN}0RUxz5On|m literal 0 HcmV?d00001 diff --git a/lisp/toolbar/reply-from.xpm b/etc/images/mail/reply-from.xpm similarity index 100% rename from lisp/toolbar/reply-from.xpm rename to etc/images/mail/reply-from.xpm diff --git a/etc/images/mail/reply-to.pbm b/etc/images/mail/reply-to.pbm new file mode 100644 index 0000000000000000000000000000000000000000..d7dc6391b69a3ae3b8705facf887e4df3c77d6db GIT binary patch literal 81 zcmWGA;W9E&Ff!p{fB@zL40Q_p2NWb2CWtXi5Ns6SQ10OWegH1q$M}Wt`punNH UL17Pr-~$G31_pKp1}3lx0OPt0MF0Q* literal 0 HcmV?d00001 diff --git a/lisp/mail/reply2.xpm b/etc/images/mail/reply.xpm similarity index 100% rename from lisp/mail/reply2.xpm rename to etc/images/mail/reply.xpm diff --git a/lisp/toolbar/mail_send.pbm b/etc/images/mail/send.pbm similarity index 100% rename from lisp/toolbar/mail_send.pbm rename to etc/images/mail/send.pbm diff --git a/lisp/toolbar/mail_send.xpm b/etc/images/mail/send.xpm similarity index 100% rename from lisp/toolbar/mail_send.xpm rename to etc/images/mail/send.xpm diff --git a/lisp/toolbar/mh-logo.xpm b/etc/images/mh-logo.xpm similarity index 100% rename from lisp/toolbar/mh-logo.xpm rename to etc/images/mh-logo.xpm diff --git a/etc/images/new.pbm b/etc/images/new.pbm new file mode 100644 index 0000000000000000000000000000000000000000..1fae8c09eecfa887bb9a05708508ed2f46681bc9 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #FDFDFD", +", c #C0C0C0", +"' c #E1E1E1", +") c #F0F0F0", +"! c #9B9B9B", +"~ c #FCFCFB", +"{ c #FBFBFB", +"] c #AFAFAE", +"^ c #E9E9E9", +"/ c #DFDFDF", +"( c #8F8F8F", +"_ c #FAFAF9", +": c #F9F9F8", +"< c #A4A4A3", +"[ c #F4F4F4", +"} c #CFCFCF", +"| c #A2A2A2", +"1 c #F8F8F7", +"2 c #F8F7F6", +"3 c #9E9E9E", +"4 c #F7F6F5", +"5 c #F6F6F4", +"6 c #F4F3F2", +"7 c #DEDDDC", +"8 c #D3D2D0", +"9 c #B7B7B5", +"0 c #9F9E9D", +"a c #706F6F", +"b c #65625A", +"c c #F5F4F3", +"d c #F2F2F0", +"e c #E4E4E2", +"f c #DAD9D7", +"g c #D8D8D6", +"h c #CDCCCA", +"i c #AFAEAC", +"j c #88847B", +"k c #F3F3F1", +"l c #EFEFED", +"m c #EEEDEB", +"n c #EDECEA", +"o c #E9E8E6", +"p c #D5D4D3", +"q c #C4C3C2", +"r c #8F8A81", +"s c #F6F5F4", +"t c #F5F5F3", +"u c #F1F1EF", +"v c #F1F0EE", +"w c #ECEBE9", +"x c #EAE9E7", +"y c #E5E4E2", +"z c #E4E3E0", +"A c #D2D1CE", +"B c #8D887E", +"C c #F3F2F1", +"D c #F0F0EE", +"E c #F0EFED", +"F c #EFEEEC", +"G c #E8E7E5", +"H c #E5E4E1", +"I c #E2E1DE", +"J c #E1DFDC", +"K c #979288", +"L c #A49E93", +"M c #E8E7E4", +"N c #E7E6E3", +"O c #E3E2DF", +"P c #E2E0DD", +"Q c #E1E0DC", +"R c #E0DFDB", +"S c #A19C90", +"T c #EDEDEB", +"U c #EBEAE8", +"V c #E9E8E5", +"W c #E6E4E1", +"X c #E3E2DE", +"Y c #DFDEDA", +"Z c #DEDDD9", +"` c #DDDCD8", +" . c #A19B90", +".. c #E7E5E2", +"+. c #E4E3DF", +"@. c #DCDBD7", +"#. c #E6E5E2", +"$. c #E5E4E0", +"%. c #E2E1DD", +"&. c #DBD9D5", +"*. c #D9D7D3", +"=. c #9F998D", +"-. c #E4E2DF", +";. c #DDDBD7", +">. c #DCDAD6", +",. c #D8D6D2", +"'. c #9E988D", +"). c #EDEDED", +"!. c #E1E0DD", +"~. c #E0DEDA", +"{. c #D8D6D1", +"]. c #D7D5D1", +"^. c #9D978B", +"/. c #E1DFDB", +"(. c #DEDCD8", +"_. c #D7D6D1", +":. c #D5D3CE", +"<. c #9B958A", +"[. c #999891", +"}. c #A39E92", +"|. c #A39D92", +"1. c #A39D91", +"2. c #A29C90", +"3. c #A19B8F", +"4. c #9D978C", +"5. c #9B968A", +"6. c #676359", +" ", +" . . . . . . . . . . . . . ", +" . + @ # # # # # # # # $ % & . ", +" . @ # # # # # # # # # # * = - . ", +" . # # # # # # # ; # ; > , ' ) ! . ", +" . # # # # # ; > ~ > ~ { ] ^ # / ( . ", +" . # # # ; > ~ { _ { _ : < ) # [ } | . ", +" . # ; > ~ { _ : 1 : 1 2 3 . . . . . . . ", +" . # ~ { _ : 1 2 4 2 4 5 6 7 8 9 0 a b . ", +" . # _ : 1 2 4 5 c 5 c 6 d e f g h i j . ", +" . # 1 2 4 5 c 6 k 6 k d l m n o p q r . ", +" . # s t 6 6 k d u d u v m w x y z A B . ", +" . # 6 C d D l v E v E F w G H z I J K . ", +" . # 6 C d D l v E v E F w G H z I J L . ", +" . # D l l F m n n n n w M N O P Q R S . ", +" . # T n w w w U V U V V H W X Y Z ` .. ", +" . # U o o G M M N M N ..+.X R Z ` @. .. ", +" . # N #.#.#.H W $.W $.+.%.R Z @.&.*.=.. ", +" . $ z O X -.+.%.X %.X Q Q Z ;.>.*.,.'.. ", +" . ).!.J Q R %.R Q R Q Y ~.;.>.*.{.].^.. ", +" . = /.~.Y Z R Z ~.Z ~.(.(.>.>.,._.:.<.. ", +" . [.}.L |.1.|.S 2.S 2.3. .=.=.4.4.5.6.. ", +" . . . . . . . . . . . . . . . . . . ", +" "}; diff --git a/etc/images/next-node.pbm b/etc/images/next-node.pbm new file mode 100644 index 0000000000000000000000000000000000000000..8a33da5bda4a6d3a46cd22d8db5f672fcb65994c GIT binary patch literal 1786 zcmc(b!3x4K42C`TDFPn6iH^;KHxU&N(=mo`FmNCWoA0lgkq{S~m4Vnp`I~(C+AUkS zF|6~=syOCLD9$D9_Gvb0AUmY6tuFVnhErKL)$I!N>C8njM6rvK#64bXG-%PR+)*Qs zfmu)K$}pAm$ZXq?q{SE>WtK;->+rUG&N4=lKow3&@@tkwzC{PZaMz1rY;pDlVtUCy zpclhu*bH@ThQGzY!aYb5%vu?!WdH=X3iEGMx0h)xVICso9{3W*_%r2=lv&G+FX&nJ ilf*aJsoS0oY#a@bF{N8Rk0$NPk36UyyzB@6rTYYJvr{wx literal 0 HcmV?d00001 diff --git a/etc/images/next-node.xpm b/etc/images/next-node.xpm new file mode 100644 index 00000000000..385766e5e66 --- /dev/null +++ b/etc/images/next-node.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static char * next_node2_xpm[] = { +"24 24 18 1", +" c None", +". c #000000", +"+ c #FFFFFF", +"@ c #DADAD6", +"# c #BCBCB8", +"$ c #506B46", +"% c #778E6F", +"& c #0F1308", +"* c #77A16E", +"= c #C2D7BE", +"- c #6B9060", +"; c #A9C7A6", +"> c #C1D6BD", +", c #BDD3B8", +"' c #B0CAAD", +") c #A4C3A2", +"! c #445B2C", +"~ c #8CA782", +" .................. ", +" .+++++++++++++++@#. ", +" .+++++++++++++++#+#. ", +" .+++$#++++++++++#%$&. ", +" .+++..#@++++++++@%$&. ", +" .+++.*.#@@+@++++++@#. ", +" .+@@.=-.#@@++@@@@@@#. ", +".......=;-.#@@@+@@@@@#. ", +".=>>>>>,;;-.#@@@@@@@@#. ", +".=;;;;';;;;-.##@@@@@@#. ", +".@>,,,>,,,,;-.#@@@@@@#. ", +".)----------!.%#@@@@@#. ", +".~---------!.%##@@@@##. ", +".*--------!.$%##@@@@@#. ", +".......--!.%####@@@@@#. ", +" .##%.-!.$%####@@@@##. ", +" .@##.!.%####@####@##. ", +" .+##..%%#####@@@@@@#. ", +" .+@#.#####@@@####@@#. ", +" .+@@#####@@@@####@##. ", +" .+##################. ", +" ..................... ", +" ", +" "}; diff --git a/etc/images/open.pbm b/etc/images/open.pbm new file mode 100644 index 0000000000000000000000000000000000000000..9c614e43f311f268abbd5def8c018253930dec46 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #2D2D25", +", c #23241D", +"' c #9D9F90", +") c #C6CAA6", +"! c #C4C9A5", +"~ c #C6CBA7", +"{ c #C7CCA8", +"] c #C9CEA9", +"^ c #555847", +"/ c #1A1B15", +"( c #20201A", +"_ c #D4D6C2", +": c #BEC2A0", +"< c #B3B896", +"[ c #B0B595", +"} c #B3B797", +"| c #B6BB99", +"1 c #BBC09E", +"2 c #BCC19F", +"3 c #81856C", +"4 c #3E3F32", +"5 c #010101", +"6 c #DADDC8", +"7 c #AFB494", +"8 c #AAAF8F", +"9 c #A3A789", +"0 c #A6AA8B", +"a c #A9AD8E", +"b c #A7AB8D", +"c c #A4A88A", +"d c #A1A588", +"e c #AAAD96", +"f c #B3B5A5", +"g c #B8BBAA", +"h c #BABCAB", +"i c #C1C3B2", +"j c #C7CAB7", +"k c #CACDBB", +"l c #BABDA8", +"m c #0C0C09", +"n c #DDDFCB", +"o c #969B7E", +"p c #9DA286", +"q c #95987C", +"r c #96997E", +"s c #9A9D81", +"t c #999D80", +"u c #9DA184", +"v c #A5AA8B", +"w c #A4A98A", +"x c #A3A889", +"y c #A2A588", +"z c #A2A587", +"A c #9FA386", +"B c #9B9E83", +"C c #898D74", +"D c #D8DBC9", +"E c #84866E", +"F c #7D8169", +"G c #151612", +"H c #D7DAC9", +"I c #797D67", +"J c #3D3F34", +"K c #E0E0D9", +"L c #EBEDDD", +"M c #E8EBD9", +"N c #E7EAD8", +"O c #E3E6D4", +"P c #DEE1D0", +"Q c #DADCCC", +"R c #DADCD1", +"S c #2B2C28", +"T c #D7DAC6", +"U c #6F735E", +"V c #0D0D0D", +"W c #F4F4EC", +"X c #CACFAB", +"Y c #C6CBA8", +"Z c #C2C6A4", +"` c #ABB091", +" . c #23251E", +".. c #494B3D", +"+. c #DCDCD4", +"@. c #EAECDD", +"#. c #CDD2AD", +"$. c #CCD1AC", +"%. c #CACFAA", +"&. c #BABF9D", +"*. c #B5B999", +"=. c #81836C", +"-. c #070806", +";. c #D5D8C4", +">. c #161616", +",. c #F2F2EA", +"'. c #C9CEAA", +"). c #C8CDA9", +"!. c #C4C9A6", +"~. c #C1C5A3", +"{. c #BCC09F", +"]. c #B6BB9A", +"^. c #B0B494", +"/. c #9DA185", +"(. c #535445", +"_. c #B6B8A7", +":. c #747470", +"<. c #ECECE2", +"[. c #C3C8A5", +"}. c #C2C7A4", +"|. c #C0C5A2", +"1. c #BFC4A1", +"2. c #BDC2A0", +"3. c #B9BD9C", +"4. c #B9BE9D", +"5. c #A9AD8F", +"6. c #A3A78A", +"7. c #80836D", +"8. c #020201", +"9. c #A6A998", +"0. c #B8BC9B", +"a. c #AFB394", +"b. c #ACB091", +"c. c #A8AC8E", +"d. c #A6AA8C", +"e. c #9FA286", +"f. c #9B9F83", +"g. c #9A9D82", +"h. c #8A8D75", +"i. c #4F5243", +"j. c #070705", +"k. c #9E9F91", +"l. c #E5E6DA", +"m. c #ADB192", +"n. c #A5A98C", +"o. c #9FA387", +"p. c #999D81", +"q. c #95987E", +"r. c #92957B", +"s. c #8C8F76", +"t. c #8A8D74", +"u. c #71735F", +"v. c #080908", +"w. c #E3E5D9", +"x. c #C0C3AF", +"y. c #94987C", +"z. c #8F9379", +"A. c #8B8F75", +"B. c #8A8E74", +"C. c #888C73", +"D. c #858970", +"E. c #868971", +"F. c #82866E", +"G. c #80836C", +"H. c #7D8069", +"I. c #797C66", +"J. c #727560", +"K. c #717460", +"L. c #71745F", +"M. c #6A6D59", +"N. c #434538", +"O. c #080907", +"P. c #050504", +" ", +" ", +" ", +" . . . . . . . ", +" + @ # # # # # $ % ", +" & * = = = - - ; > ", +", ' * ) ! ~ { ] ] ^ / ", +"( _ : < [ } | 1 2 3 4 5 . . . . . . . ", +", 6 7 8 9 0 8 a b c d e f g h i j k l . ", +"m n o p q r s t r u v w x y 9 z A B C . ", +". D E F G . . . . . . . . . . . . . . . 5 5 ", +". H I J K L M M M M M M M M M M M N O P Q R S ", +". T U V W = = = = = = = = = - - - X Y Z 1 ` . ", +". T ..+.@.#.- - #.- #.#.#.#.#.$.%.Y Z &.*.=.-. ", +". ;.>.,.X %.X %.'.%.'.{ ).).Y !.~.{.].^./.(.m ", +". _.:.<.[.}.}.Z |.Z 1.2.|.2.3.4.} [ 5.6.7.8. ", +". 9.+.0.0.*.} } [ [ a.a.a.b.c.d.e.f.g.h.i.j. ", +". k.l.m.5.d.n.6.6.d o.e.f.p.q.r.s.t.t.u.v. ", +". w.x.y.z.A.B.C.C.D.E.F.G.H.I.J.K.L.M.N.O. ", +" . . . . . . . . . . . . . . . . . . P. ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/page-down.pbm b/etc/images/page-down.pbm new file mode 100644 index 0000000000000000000000000000000000000000..2f577146b6353e77d04d2bda1607466f9d148ee2 GIT binary patch literal 81 xcmWGA;W9E&Ff!p{00a5|KLi*!P!MB>05W1-A;5k@fcXSS5T+8S3!)uJ0s#D(41NFr literal 0 HcmV?d00001 diff --git a/lisp/toolbar/page-down.xpm b/etc/images/page-down.xpm similarity index 100% rename from lisp/toolbar/page-down.xpm rename to etc/images/page-down.xpm diff --git a/etc/images/paste.pbm b/etc/images/paste.pbm new file mode 100644 index 0000000000000000000000000000000000000000..17e3a82c0c6644349a1fc26c7788da67bdd3ec95 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI&D_ literal 0 HcmV?d00001 diff --git a/etc/images/paste.xpm b/etc/images/paste.xpm new file mode 100644 index 00000000000..cdd86366d66 --- /dev/null +++ b/etc/images/paste.xpm @@ -0,0 +1,116 @@ +/* XPM */ +static char * paste_xpm[] = { +"24 24 89 1", +" c None", +". c #000000", +"+ c #B9B9B9", +"@ c #FEFEFE", +"# c #F9F9F9", +"$ c #757575", +"% c #F5F5E8", +"& c #565651", +"* c #FFFFFF", +"= c #A0A0A0", +"- c #939393", +"; c #7C7C7C", +"> c #C5C5BB", +", c #CFC6A0", +"' c #D7CEAA", +") c #ADA689", +"! c #4B483C", +"~ c #6D6D6D", +"{ c #6C6C6C", +"] c #A9A9A9", +"^ c #3D3A30", +"/ c #979178", +"( c #C1B898", +"_ c #8A793D", +": c #C3BB9A", +"< c #AFA78A", +"[ c #444236", +"} c #FAFAFA", +"| c #EFEFEF", +"1 c #C7C7C7", +"2 c #D8D8D8", +"3 c #D2D2D2", +"4 c #7B7B7B", +"5 c #302E26", +"6 c #89846C", +"7 c #C4BC9A", +"8 c #847235", +"9 c #C5C5C5", +"0 c #A7A7A7", +"a c #ADADAD", +"b c #9A9A9A", +"c c #9B9B9B", +"d c #868686", +"e c #424242", +"f c #847033", +"g c #C9C09E", +"h c #464337", +"i c #35332A", +"j c #2D2B23", +"k c #C6BE9D", +"l c #826F33", +"m c #7F7964", +"n c #4C493C", +"o c #171612", +"p c #13120F", +"q c #3E3B31", +"r c #282210", +"s c #474438", +"t c #B3B3B3", +"u c #D6D6D6", +"v c #B7AE90", +"w c #B1AA8C", +"x c #37352B", +"y c #151410", +"z c #8F8F8F", +"A c #989898", +"B c #C6C6C6", +"C c #B9B293", +"D c #11100D", +"E c #434035", +"F c #636363", +"G c #767676", +"H c #AAA48B", +"I c #A5A086", +"J c #A19A7F", +"K c #312F26", +"L c #AFA88C", +"M c #050403", +"N c #12110E", +"O c #A9A489", +"P c #A39E85", +"Q c #EBE7D0", +"R c #D2C9A5", +"S c #A29053", +"T c #8E7C3D", +"U c #88793B", +"V c #806C2F", +"W c #78652B", +"X c #251F0C", +" .... ", +" ......+@#$...... ", +".%%%%%&*=-;&>%%%,. ", +".%''')!*~{]^/(''_. ", +".%::<[}|123456<78. ", +".%''!900abcde!)'f. ", +".%g:6hijjjjj56OX literal 0 HcmV?d00001 diff --git a/etc/images/preferences.xpm b/etc/images/preferences.xpm new file mode 100644 index 00000000000..3cdc884dd4d --- /dev/null +++ b/etc/images/preferences.xpm @@ -0,0 +1,114 @@ +/* XPM */ +static char * preferences_xpm[] = { +"24 24 87 1", +" c None", +". c #000000", +"+ c #BAB5AB", +"@ c #D0CDC6", +"# c #88857D", +"$ c #C9C6BE", +"% c #CCC8C1", +"& c #E5E3E0", +"* c #FFFFFF", +"= c #757575", +"- c #2E2E2E", +"; c #F6F5F5", +"> c #CCCCCC", +", c #AFAFAF", +"' c #D3D1CB", +") c #C1C0BF", +"! c #F0EFED", +"~ c #797772", +"{ c #DCDCDC", +"] c #A5A19C", +"^ c #EAE9E5", +"/ c #F3F1F0", +"( c #EDEDED", +"_ c #A19D96", +": c #C1BDB4", +"< c #DBD8D3", +"[ c #D9D6D1", +"} c #89857E", +"| c #FCFCFC", +"1 c #EAE9E6", +"2 c #F5F4F3", +"3 c #C6C2BA", +"4 c #F0EFEE", +"5 c #F4F4F3", +"6 c #CBC7C0", +"7 c #ECECEB", +"8 c #676560", +"9 c #54524D", +"0 c #777676", +"a c #797978", +"b c #85827E", +"c c #79756F", +"d c #7590AE", +"e c #A4BAD0", +"f c #90A6BE", +"g c #9F9F9E", +"h c #BEBDBC", +"i c #B8B4AD", +"j c #87837C", +"k c #D3DFEA", +"l c #A2AEBC", +"m c #9DB6CE", +"n c #637B95", +"o c #E2E2E2", +"p c #EEEEED", +"q c #849CB6", +"r c #D7E2ED", +"s c #8D98A5", +"t c #9DB8D2", +"u c #607791", +"v c #EDEDEC", +"w c #99ADC3", +"x c #DFE7F0", +"y c #8193A9", +"z c #586D84", +"A c #5B7189", +"B c #F1F1F1", +"C c #EEEDEB", +"D c #A7A6A5", +"E c #726F6A", +"F c #A1B4C8", +"G c #EEF3F6", +"H c #60768F", +"I c #DEDDDC", +"J c #787776", +"K c #4E4E4D", +"L c #91A6BE", +"M c #F0F4F7", +"N c #97A5B6", +"O c #BFBEBD", +"P c #AAAAA9", +"Q c #ACACAB", +"R c #B0C6DB", +"S c #EDF2F6", +"T c #818A95", +"U c #6C85A1", +"V c #C0D1E2", +" .. ", +" .+@#. ", +" .$%+. .. ", +" .&$. .*=. ", +" .. -;$. .*>,. ", +" .' ..)!+~. .{,. ", +" .]%%^/+++. .(.. ", +" ._:%$<[+}. .|. ", +" .....123}..>. ", +" .456.,. ", +" .7.,.. ", +" .,.89. ", +" ....,.0abc. ", +" .def.. .ghij. ", +" .dklmn. .op6}. ", +" .qrsntu. .v/$}. ", +" .wxyztdA. .BCDE..", +" .FGyHtdA. .IJK,.", +" .LMNHtdA. .OPQ.", +" .RSTtdA.. ... ", +" .UtVLA.. ", +" .UUn.. ", +" ... ", +" "}; diff --git a/etc/images/prev-node.pbm b/etc/images/prev-node.pbm new file mode 100644 index 0000000000000000000000000000000000000000..bf7aa14515c767c9c42e4eb7fa5eedef117eccac GIT binary patch literal 1786 zcmc(b!3x4K42C`TDFPn6iI&ZSHxU&N(=mo`FmNCWoA0mDKnS7D%0TR){7L@*Te@=P zrm(GcoBCX>p}sb7I2Prshw@awzP&x04lYgCw~sq4=L_dE@R{>@?q1?dMjZk8NMxu^ zN~uz+Od*g*2Bl6RNPkQZaxfUn%D&AZr}W3P!QluCG{cq+3}v%wJ3AJaxWIQkI>v7=9L&%Za{aV|$d literal 0 HcmV?d00001 diff --git a/etc/images/prev-node.xpm b/etc/images/prev-node.xpm new file mode 100644 index 00000000000..586bf9c4b32 --- /dev/null +++ b/etc/images/prev-node.xpm @@ -0,0 +1,44 @@ +/* XPM */ +static char * prev_node3_xpm[] = { +"24 24 17 1", +" c None", +". c #000000", +"+ c #0F1308", +"@ c #FFFFFF", +"# c #BCBCB8", +"$ c #DADAD6", +"% c #778E6F", +"& c #C2D7BE", +"* c #A6BFA0", +"= c #A9C7A6", +"- c #BDD3B8", +"; c #B0CAAD", +"> c #C1D6BD", +", c #8CA782", +"' c #5B7950", +") c #6B9060", +"! c #445B2C", +" .................. ", +" +@#@@@@@@@@@@@@@@$. ", +" +@@%$@@@@@@@@@@@@@$. ", +" .$#%%$@@@@@@@@@$.$$$. ", +" .%$##$@@@@@@@@#..$$$. ", +" .#@@@@@@@@@$$#.&.#$$. ", +" .$@@@@@@@@@@#.$*.##$. ", +" .@@@@@@@@$$#.$=*.......", +" .@@@@@@@$$#.$==-&&&&&*.", +" .@@@@@@@$#.@====;====%.", +" .@$@$$$$#.$>>>>>>>>>>,.", +" .@$@$$$$#.'))))))))))!.", +" .@$$$$$$##.')))))))))!.", +" .@$$$$$$##%.')))'!!!!!.", +" .@$$$$$##$#%.')!.......", +" .@$$$$$$$###%.'!.%%%. ", +" .@$$#####$$##%.!.%##. ", +" .@$$$$$$$#####%..###. ", +" .@$$#####$$$###%.###. ", +" .@$$$$$$$$$$$#######. ", +" .@##################. ", +" ..................... ", +" ", +" "}; diff --git a/etc/images/print.pbm b/etc/images/print.pbm new file mode 100644 index 0000000000000000000000000000000000000000..a4ab55c2cd87d87023b1dd3c81527c5d9d9d98c9 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI&WB3T;1Bv^!Jf`JHwhVuUw2L>h}3SbZdqWJ%x-2eY``2WxT{~rYg7Ww}_ HfQA471o<%i literal 0 HcmV?d00001 diff --git a/etc/images/print.xpm b/etc/images/print.xpm new file mode 100644 index 00000000000..95f2f400800 --- /dev/null +++ b/etc/images/print.xpm @@ -0,0 +1,202 @@ +/* XPM */ +static char * print_xpm[] = { +"24 24 175 2", +" c None", +". c #000000", +"+ c #C7C7C7", +"@ c #FAFAFA", +"# c #FCFCFC", +"$ c #FBFBFB", +"% c #F8F8F8", +"& c #AFAFAF", +"* c #F9F9F9", +"= c #E5E5E5", +"- c #E3E3E3", +"; c #E2E2E2", +"> c #E0E0E0", +", c #DFDFDF", +"' c #DCDCDC", +") c #DBDBDB", +"! c #B6B6B6", +"~ c #6B6B6B", +"{ c #676767", +"] c #818181", +"^ c #E7E7E7", +"/ c #606060", +"( c #A0A0A0", +"_ c #DADADA", +": c #E1E1E1", +"< c #B7B7B7", +"[ c #FDFDFD", +"} c #EFEFEF", +"| c #EEEEEE", +"1 c #EDEDED", +"2 c #ECECEC", +"3 c #EBEBEB", +"4 c #E9E9E9", +"5 c #E8E8E8", +"6 c #BFBFBF", +"7 c #8A8A8A", +"8 c #6A6A6A", +"9 c #9E9E9E", +"0 c #F6F6F6", +"a c #909090", +"b c #A2A2A2", +"c c #AAAAAA", +"d c #F4F4F4", +"e c #CECECE", +"f c #ADADAD", +"g c #AEAEAE", +"h c #BEBEBE", +"i c #A6A6A6", +"j c #CDCDCD", +"k c #F5F5F5", +"l c #DEDEDE", +"m c #DDDDDD", +"n c #C9C9C9", +"o c #878787", +"p c #888888", +"q c #D0D0D0", +"r c #6E6E6E", +"s c #797979", +"t c #D1D1D1", +"u c #A1A1A1", +"v c #B3B3B3", +"w c #FFFFFF", +"x c #CACACA", +"y c #A7A7A7", +"z c #A5A5A5", +"A c #A4A4A4", +"B c #A3A3A3", +"C c #87847C", +"D c #EAE8E3", +"E c #8D8982", +"F c #53524C", +"G c #807D74", +"H c #AAA9A5", +"I c #BAB5AB", +"J c #F3F3F3", +"K c #C3C1BD", +"L c #8B8B89", +"M c #E6E5E1", +"N c #F9F9F8", +"O c #FAFAF9", +"P c #F9F9F7", +"Q c #F7F6F5", +"R c #F7F7F4", +"S c #F6F5F4", +"T c #F2F1EE", +"U c #F0EFEC", +"V c #E5E5E4", +"W c #9F9F9F", +"X c #DFDED9", +"Y c #A4A3A1", +"Z c #6C6B6A", +"` c #F5F4F3", +" . c #D5D5D5", +".. c #D3D3D3", +"+. c #D4D4D3", +"@. c #D4D4D4", +"#. c #A9A9A9", +"$. c #B5B5B5", +"%. c #CDCDCB", +"&. c #B5B5B4", +"*. c #DCDAD3", +"=. c #6B6B6A", +"-. c #999896", +";. c #918F87", +">. c #999895", +",. c #E6E4E1", +"'. c #F0EEEC", +"). c #FAF9F9", +"!. c #F9F8F7", +"~. c #F8F7F6", +"{. c #F8F8F7", +"]. c #F4F3F1", +"^. c #F2F1EF", +"/. c #565655", +"(. c #858482", +"_. c #9C9B99", +":. c #6B6A68", +"<. c #585858", +"[. c #5E5C57", +"}. c #524F4B", +"|. c #4A4845", +"1. c #4B4A46", +"2. c #4B4946", +"3. c #4A4844", +"4. c #494743", +"5. c #484642", +"6. c #474541", +"7. c #464440", +"8. c #514F4B", +"9. c #53514E", +"0. c #7B7A77", +"a. c #797771", +"b. c #949391", +"c. c #989694", +"d. c #868480", +"e. c #6E6C66", +"f. c #706D67", +"g. c #5C5955", +"h. c #67645F", +"i. c #5B5954", +"j. c #585651", +"k. c #5D5B56", +"l. c #595652", +"m. c #53504C", +"n. c #575450", +"o. c #595752", +"p. c #5C5956", +"q. c #5B5956", +"r. c #61615E", +"s. c #696861", +"t. c #77756F", +"u. c #7E7B77", +"v. c #979690", +"w. c #96938D", +"x. c #807E77", +"y. c #7D7A74", +"z. c #787770", +"A. c #716F6A", +"B. c #6E6C67", +"C. c #595753", +"D. c #63615C", +"E. c #686661", +"F. c #6F6E68", +"G. c #6D6C66", +"H. c #72716B", +"I. c #76746F", +"J. c #6A6963", +"K. c #8B8880", +"L. c #B2AFA8", +"M. c #B6B3AD", +"N. c #BFBDB6", +"O. c #BDBBB4", +"P. c #B0AEA6", +"Q. c #ABA8A2", +"R. c #9C9991", +" ", +" . . . . . . . . . . . . ", +" . + @ # # # # # # # $ % & . ", +" . * = - - - ; > , , ' ) ! . ", +" . # ~ { ] ^ / ( _ : > > < . ", +" . [ } | 1 1 | 2 2 3 4 5 6 . ", +" . [ 7 8 9 0 a b 4 c a d + . ", +" . [ # # # # $ $ # # $ $ e . ", +" . [ f g = h % h i j 3 # j . ", +" . k l l l m l l , l 5 : n . ", +" . . @ o ~ p q r s t p u q v . . ", +" . w . x y z A z z i B b u u 9 . C . ", +" . w D E F . . . . . . . . . . G C H I . ", +" . w w J w w w w w w w w w w w w w w w w D . ", +" . K L M N O N P Q R O O S T T U V D W X I . ", +" . Y Z ` h .! ..! +.< @.#...$.%.&.*.=.-.;.. ", +" . >.=.,.'.Q N @ ).N !.~.{.{.].].].^./.(.;.. ", +" . _.:.<.[.}.|.1.2.2.2.3.4.5.6.4.7.8.9.0.a.. ", +" . b.c.d.e.f.g.h.i.j.i.k.l.m.n.o.p.q.r.s.t.. ", +" . u.v.w.;.x.y.z.t.A.t.A.B.C.D.E.F.G.H.I.J.. ", +" . . . . . . . . . . . . . . . . . . . . ", +" . K.L.M.N.N.N.N.N.O.P.L.Q.P.R.R.R.G G . ", +" . . . . . . . . . . . . . . . . . . ", +" "}; diff --git a/etc/images/refresh.pbm b/etc/images/refresh.pbm new file mode 100644 index 0000000000000000000000000000000000000000..57a67cfde2271a3fbb377a9fb6e89c439db27b74 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{WME)yU|@7$;8$P}5J*tqnBc$?;UJ;WV4%~Vq%!lE%ET_0iNY-x g6nFw0crqF!OdKpE6h1HrA7J2OU|?flU}As(0H;9^7XSbN literal 0 HcmV?d00001 diff --git a/etc/images/refresh.xpm b/etc/images/refresh.xpm new file mode 100644 index 00000000000..cf7d05d194c --- /dev/null +++ b/etc/images/refresh.xpm @@ -0,0 +1,113 @@ +/* XPM */ +static char * refresh_xpm[] = { +"24 24 86 1", +" c None", +". c #000000", +"+ c #F3F6F8", +"@ c #C8D4DF", +"# c #F7F9FA", +"$ c #0D110C", +"% c #6286A5", +"& c #A0B6C9", +"* c #C9D5E0", +"= c #F2F5F7", +"- c #172116", +"; c #819EB6", +"> c #CAD6E1", +", c #CCD7E1", +"' c #CED9E3", +") c #F6F8F9", +"! c #7192AE", +"~ c #587B99", +"{ c #CDD8E2", +"] c #CFDAE4", +"^ c #D3DDE6", +"/ c #D5DEE6", +"( c #ADC0D0", +"_ c #90A9BF", +": c #537490", +"< c #23323E", +"[ c #85A1B8", +"} c #5E83A3", +"| c #6084A3", +"1 c #6689A7", +"2 c #678AA8", +"3 c #48657D", +"4 c #A8BCCD", +"5 c #7393AE", +"6 c #6B8DAA", +"7 c #5C81A1", +"8 c #5D82A2", +"9 c #6588A6", +"0 c #435F76", +"a c #B1C3D2", +"b c #50718D", +"c c #9FB5C8", +"d c #94ACC1", +"e c #425D73", +"f c #435E74", +"g c #B4C5D3", +"h c #6C8EAB", +"i c #C4D2DD", +"j c #5B80A0", +"k c #456178", +"l c #7595B0", +"m c #BFCEDA", +"n c #597D9C", +"o c #A3B8CA", +"p c #B0C2D1", +"q c #86A2B9", +"r c #6E8FAB", +"s c #E1E8EE", +"t c #B9C9D6", +"u c #6387A6", +"v c #4C6B85", +"w c #7F9DB6", +"x c #BCCCD9", +"y c #DDE5EC", +"z c #E4EAEF", +"A c #D8E1E9", +"B c #D1DBE4", +"C c #C7D3DE", +"D c #B7C8D6", +"E c #7091AD", +"F c #537592", +"G c #9DB3C6", +"H c #8CA7BD", +"I c #304353", +"J c #4E6E89", +"K c #829FB7", +"L c #92ABC0", +"M c #C5D3DE", +"N c #7C9AB3", +"O c #5A7E9D", +"P c #47647C", +"Q c #6185A4", +"R c #5B7F9E", +"S c #4F6F8A", +"T c #405A71", +"U c #283926", +" . ", +" .. ", +" .+. ", +" ....@#. ", +" $%&@@**=. .. ", +" -;@@**>,'). .!~. ", +" .%@**>,{]^/(. ._:. ", +" <&@[}}|%123. .4. ", +".5@678|%920. .ab. ", +".cd7e...1f. . .gh. ", +".ijb. .k. .. .al. ", +".mn. .. .'. .op5. ", +".qr. . .*s...at4u. ", +".vw. .xyzyABCDEF. ", +" .G. .p'B,@ixaH2I. ", +" .JK. .LM@,>>MmNOP. ", +" .F9. .9|%Q|}7RS.. ", +" .. .|R~~nJT.. ", +" .j~.... ", +" UO. ", +" .. ", +" . ", +" ", +" "}; diff --git a/etc/images/right-arrow.pbm b/etc/images/right-arrow.pbm new file mode 100644 index 0000000000000000000000000000000000000000..cd32579c6bd3bb7d3741c39c4dd81646bbea7030 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #B0CAAD", +", c #B2CBB0", +"' c #AAC7A8", +") c #0F1308", +"! c #AEC5A8", +"~ c #AEC8AD", +"{ c #ABC7A8", +"] c #AAC6A7", +"^ c #A8C6A5", +"/ c #ADC8AD", +"( c #A8C7A8", +"_ c #A5C4A3", +": c #7F9F76", +"< c #A6BFA0", +"[ c #ABC7AA", +"} c #A7C5A4", +"| c #A9C7A6", +"1 c #AFC8AD", +"2 c #A4C3A2", +"3 c #6B9060", +"4 c #778E6F", +"5 c #698D60", +"6 c #6B9063", +"7 c #445B2C", +"8 c #6B8661", +"9 c #5B7950", +"0 c #6C8562", +"a c #65815C", +"b c #506B46", +" ", +" ", +" ", +" . ", +" .. ", +" .+. ", +" .@#. ", +" ........$%&. ", +" .*=-;;;;>,'&) ", +" .!~{{{]^'/(_:. ", +" .<[^}^|{%'{123. ", +" .45666666666657. ", +" .8999999999997. ", +" .099999999997. ", +" .abbbbbb9997. ", +" ........b97. ", +" .b7. ", +" .7. ", +" .. ", +" . ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/save.pbm b/etc/images/save.pbm new file mode 100644 index 0000000000000000000000000000000000000000..49d8346d3fa28803680757418ff0789244149399 GIT binary patch literal 1786 zcmeH^y$ZrW5QMGoDHbg3L_=a>C!%5z4I%gj0Rv(n@%{C1WLP#K{xynTv3z$oJDZy% z6W5n{x|n6#bSl|Cm(@B>2DK!cSeC`%lvlFLtGXzUG9Hdx5K0ibAd1}iBUkU$rC;Mc zuqEi*R;H5RWn@BYuRes*R{*Za1l`igQ2Gk^`?RWX$`|;|# z6@lm|G&iH@IKeCmj1O+RD|$P8j3;Li= c #E9B7AD", +", c #E9B8AF", +"' c #E9B9B1", +") c #E5BFBA", +"! c #737277", +"~ c #B3CDE3", +"{ c #A1BED6", +"] c #BBD6E8", +"^ c #8AAAC5", +"/ c #605F68", +"( c #E08D7E", +"_ c #E0826E", +": c #E0806E", +"< c #DC7A68", +"[ c #DC8171", +"} c #DA7868", +"| c #D48173", +"1 c #D47D6E", +"2 c #CE7265", +"3 c #CF7264", +"4 c #CE7567", +"5 c #C4675B", +"6 c #C36558", +"7 c #626169", +"8 c #87A3B7", +"9 c #567187", +"0 c #BAD5E9", +"a c #88A7C3", +"b c #686670", +"c c #C8817B", +"d c #CB7C74", +"e c #CB7A73", +"f c #CB7B73", +"g c #CC7C72", +"h c #CB7D73", +"i c #BF6B64", +"j c #CC7A70", +"k c #C16A62", +"l c #CC7C73", +"m c #C2655B", +"n c #C36459", +"o c #BA6C6A", +"p c #819EB6", +"q c #547086", +"r c #B6D3E7", +"s c #87ABC1", +"t c #737373", +"u c #FFFFFF", +"v c #83A0B8", +"w c #526C80", +"x c #B9D3E7", +"y c #85A4BF", +"z c #4F697C", +"A c #B9D3E6", +"B c #84A3BF", +"C c #CECECE", +"D c #CDCDCD", +"E c #BFBFBF", +"F c #88A4BB", +"G c #486276", +"H c #B7D2E7", +"I c #82A0BB", +"J c #636363", +"K c #465E70", +"L c #B5CAE5", +"M c #7FA2B9", +"N c #87A3BA", +"O c #455C6D", +"P c #AECCE5", +"Q c #7DA0B6", +"R c #C5C5C5", +"S c #546069", +"T c #B0D1E4", +"U c #83A1B6", +"V c #735B5B", +"W c #515C64", +"X c #AACEE3", +"Y c #7B9BB2", +"Z c #7A8E9A", +"` c #7A7A7A", +" . c #6B6F72", +".. c #6F6F6F", +"+. c #696969", +"@. c #6F777E", +"#. c #86A2B9", +"$. c #3A515D", +"%. c #A9C9E2", +"&. c #7494AF", +"*. c #829FB7", +"=. c #7F9DB6", +"-. c #7E9CB5", +";. c #7998B2", +">. c #85A1B8", +",. c #8CA7BD", +"'. c #8AA5BB", +"). c #364A59", +"!. c #ABC4E2", +"~. c #7294AD", +"{. c #6F90AC", +"]. c #7192AE", +"^. c #414A4E", +"/. c #424A51", +"(. c #525B63", +"_. c #626F79", +":. c #5F6C76", +"<. c #5C6971", +"[. c #5A666F", +"}. c #58636B", +"|. c #57636A", +"1. c #3B5360", +"2. c #39424B", +"3. c #7897B3", +"4. c #A4B9CB", +"5. c #364853", +"6. c #AAC9E2", +"7. c #7091AA", +"8. c #6F8FA7", +"9. c #4A5359", +"0. c #97938C", +"a. c #DFDDDA", +"b. c #E3E1DE", +"c. c #EBEAE8", +"d. c #EAE9E7", +"e. c #CFCEC9", +"f. c #C9C6C0", +"g. c #9B968E", +"h. c #566168", +"i. c #4B657A", +"j. c #54738C", +"k. c #AAC6DD", +"l. c #34464E", +"m. c #AAC9E1", +"n. c #6C8EA6", +"o. c #6C8CA4", +"p. c #40474D", +"q. c #DAD8D3", +"r. c #E7E6E2", +"s. c #67655E", +"t. c #524F47", +"u. c #D9D7D4", +"v. c #C7C5BF", +"w. c #C0BCB5", +"x. c #B8B3AB", +"y. c #434C54", +"z. c #4D697F", +"A. c #4F6F84", +"B. c #B3CADC", +"C. c #313E49", +"D. c #A8C8E1", +"E. c #6B8DA6", +"F. c #728FA4", +"G. c #E2E1DD", +"H. c #F0EFEC", +"I. c #CDCAC6", +"J. c #C2BFB9", +"K. c #CAC6C0", +"L. c #DCDAD7", +"M. c #4B555D", +"N. c #4E697F", +"O. c #BACCDC", +"P. c #A4C4DE", +"Q. c #698BA3", +"R. c #708AA1", +"S. c #383E43", +"T. c #E0DEDA", +"U. c #514E46", +"V. c #4F4C44", +"W. c #C7C4BE", +"X. c #CBC8C2", +"Y. c #E1E0DC", +"Z. c #E9E8E6", +"`. c #475158", +" + c #4E6879", +".+ c #4D6C80", +"++ c #A3C3DB", +"@+ c #383F43", +"#+ c #778999", +"$+ c #6E899E", +"%+ c #65859C", +"&+ c #33383C", +"*+ c #D7D4D0", +"=+ c #D6D4D0", +"-+ c #4E4A43", +";+ c #4D4942", +">+ c #D1CEC9", +",+ c #E6E5E2", +"'+ c #EDECEA", +")+ c #454F55", +"!+ c #486173", +"~+ c #4D6678", +"{+ c #A1C1DA", +"]+ c #373C40", +"^+ c #0C0D0F", +"/+ c #4E5E6A", +"(+ c #5B6E7C", +"_+ c #4F5B62", +":+ c #A4A099", +"<+ c #CCC9C3", +"[+ c #D7D5D1", +"}+ c #E4E2E0", +"|+ c #DDDBD7", +"1+ c #B8B5B0", +"2+ c #3E474D", +"3+ c #4A6176", +"4+ c #4A6070", +"5+ c #9BC3D8", +"6+ c #363C41", +"7+ c #28323E", +" ", +" ", +" . . . . . . . . . . . . . . . . . . . ", +" . + @ # $ % & * = - ; > , > , ' ) ! ~ { . ", +" . ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 . ", +" . 0 a b c d e f g h i j k l m n o b p q . ", +" . r s t u u u u u u u u u u u u u t v w . ", +" . x y t u u u u u u u u u u u u u t v z . ", +" . A B t C D D D D D D D D D D D E t F G . ", +" . H I J u u u u u u u u u u u u u t F K . ", +" . L M t u u u u u u u u u u u u u t N O . ", +" . P Q t C D D D D D D D D D D D R t N S . ", +" . T U V u u u u u u u u u u u u u t v W . ", +" . X Y Z ` t t t t t ...t t t t +.@.#.$.. ", +" . %.&.p v #.*.=.-.*.;.#.>.>.N *.,.v '.).. ", +" . !.~.{.].^./.(._.:.<.[.}.|.(.1.2.3.4.5.. ", +" . 6.7.8.9.0.a.b.c.c.d.a.e.f.g.h.i.j.k.l.. ", +" . m.n.o.p.q.r.s.t.t.u.v.w.x.e.y.z.A.B.C.. ", +" . D.E.F.p.G.H.s.t.t.I.J.w.K.L.M.N.A.O.C.. ", +" . P.Q.R.S.T.c.U.V.V.W.w.X.Y.Z.`. +.+++@+. ", +" . #+$+%+&+*+=+-+;+;+w.>+,+'+,+)+!+~+{+]+. ", +" ^+/+(+_+:+w.x.<+<+[+}+d.|+1+2+3+4+5+6+. ", +" . . . . . . . . . . . . . . . . 7+. ", +" "}; diff --git a/etc/images/saveas.pbm b/etc/images/saveas.pbm new file mode 100644 index 0000000000000000000000000000000000000000..6bf6b8f25ebfe02c5d809015da71e4cc1a4fd83c GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #F0C6BC", +", c #EEBCB2", +"' c #EEBEB5", +") c #EEC1B8", +"! c #EDBFB6", +"~ c #E8B6AC", +"{ c #FCE93B", +"] c #F7B545", +"^ c #6C5F34", +"/ c #434345", +"( c #92A7B9", +"_ c #96B1C7", +": c #BBD6E8", +"< c #8AAAC5", +"[ c #605F68", +"} c #E08D7E", +"| c #E0826E", +"1 c #E0806E", +"2 c #DC7A68", +"3 c #DC8171", +"4 c #DA7868", +"5 c #D38072", +"6 c #FAE43A", +"7 c #F4B244", +"8 c #615030", +"9 c #783E35", +"0 c #4D4C52", +"a c #7790A2", +"b c #526D82", +"c c #BAD5E9", +"d c #88A7C3", +"e c #686670", +"f c #C8817B", +"g c #CB7C74", +"h c #CB7A73", +"i c #CB7B73", +"j c #CC7C72", +"k c #CA7C72", +"l c #F9DF39", +"m c #F3AF42", +"n c #614F2F", +"o c #8F4941", +"p c #945554", +"q c #5B5A62", +"r c #7B97AE", +"s c #536F84", +"t c #B6D3E7", +"u c #87ABC1", +"v c #737373", +"w c #FFFFFF", +"x c #FEFEFE", +"y c #F9DC38", +"z c #EFB44D", +"A c #665A32", +"B c #BBBBBB", +"C c #CDCDCD", +"D c #E4E4E4", +"E c #6E6E6E", +"F c #819EB6", +"G c #526C80", +"H c #B9D3E7", +"I c #85A4BF", +"J c #F8D837", +"K c #F0A93F", +"L c #655930", +"M c #BABABA", +"N c #CCCCCC", +"O c #E5E5E5", +"P c #F7F7F7", +"Q c #727272", +"R c #83A0B8", +"S c #4F697C", +"T c #B9D3E6", +"U c #84A3BF", +"V c #CECECE", +"W c #F6D236", +"X c #EDA43E", +"Y c #5C5130", +"Z c #949494", +"` c #A3A3A3", +" . c #B7B7B7", +".. c #C6C6C6", +"+. c #BDBDBD", +"@. c #88A4BB", +"#. c #486276", +"$. c #B7D2E7", +"%. c #82A0BB", +"&. c #636363", +"*. c #FDFDFD", +"=. c #D7AE74", +"-. c #61562F", +";. c #465E70", +">. c #B5CAE5", +",. c #7FA2B9", +"'. c #4F4115", +"). c #87A3BA", +"!. c #455C6D", +"~. c #AECCE5", +"{. c #7DA0B6", +"]. c #CBCBCB", +"^. c #9B9B9B", +"/. c #9C9C9C", +"(. c #A7A7A7", +"_. c #B8B8B8", +":. c #C5C5C5", +"<. c #546069", +"[. c #B0D1E4", +"}. c #83A1B6", +"|. c #735B5B", +"1. c #F0F0F0", +"2. c #D9D9D9", +"3. c #D3D3D3", +"4. c #E1E1E1", +"5. c #EDEDED", +"6. c #F8F8F8", +"7. c #515C64", +"8. c #AACEE3", +"9. c #7B9BB2", +"0. c #7A8E9A", +"a. c #7A7A7A", +"b. c #707070", +"c. c #6C6C6C", +"d. c #6F6F6F", +"e. c #6A6E71", +"f. c #696969", +"g. c #6F777E", +"h. c #86A2B9", +"i. c #3A515D", +"j. c #A9C9E2", +"k. c #7494AF", +"l. c #7E9BB4", +"m. c #7D9AB3", +"n. c #7998B2", +"o. c #85A1B8", +"p. c #829FB7", +"q. c #8CA7BD", +"r. c #8AA5BB", +"s. c #364A59", +"t. c #ABC4E2", +"u. c #7294AD", +"v. c #6F90AC", +"w. c #7192AE", +"x. c #414A4E", +"y. c #424A51", +"z. c #525B63", +"A. c #626F79", +"B. c #5F6C76", +"C. c #5C6971", +"D. c #5A666F", +"E. c #58636B", +"F. c #57636A", +"G. c #3B5360", +"H. c #39424B", +"I. c #7897B3", +"J. c #A4B9CB", +"K. c #364853", +"L. c #AAC9E2", +"M. c #7091AA", +"N. c #6F8FA7", +"O. c #4A5359", +"P. c #97938C", +"Q. c #DFDDDA", +"R. c #E3E1DE", +"S. c #EBEAE8", +"T. c #EAE9E7", +"U. c #CFCEC9", +"V. c #C9C6C0", +"W. c #9B968E", +"X. c #566168", +"Y. c #4B657A", +"Z. c #54738C", +"`. c #AAC6DD", +" + c #34464E", +".+ c #AAC9E1", +"++ c #6C8EA6", +"@+ c #6C8CA4", +"#+ c #40474D", +"$+ c #DAD8D3", +"%+ c #E7E6E2", +"&+ c #67655E", +"*+ c #524F47", +"=+ c #D9D7D4", +"-+ c #C7C5BF", +";+ c #C0BCB5", +">+ c #B8B3AB", +",+ c #434C54", +"'+ c #4D697F", +")+ c #4F6F84", +"!+ c #B3CADC", +"~+ c #313E49", +"{+ c #A8C8E1", +"]+ c #6B8DA6", +"^+ c #728FA4", +"/+ c #E2E1DD", +"(+ c #F0EFEC", +"_+ c #CDCAC6", +":+ c #C2BFB9", +"<+ c #CAC6C0", +"[+ c #DCDAD7", +"}+ c #4B555D", +"|+ c #4E697F", +"1+ c #BACCDC", +"2+ c #A4C4DE", +"3+ c #698BA3", +"4+ c #708AA1", +"5+ c #383E43", +"6+ c #E0DEDA", +"7+ c #514E46", +"8+ c #4F4C44", +"9+ c #C7C4BE", +"0+ c #CBC8C2", +"a+ c #E1E0DC", +"b+ c #E9E8E6", +"c+ c #475158", +"d+ c #4E6879", +"e+ c #4D6C80", +"f+ c #A3C3DB", +"g+ c #383F43", +"h+ c #778999", +"i+ c #6E899E", +"j+ c #65859C", +"k+ c #33383C", +"l+ c #D7D4D0", +"m+ c #D6D4D0", +"n+ c #4E4A43", +"o+ c #4D4942", +"p+ c #D1CEC9", +"q+ c #E6E5E2", +"r+ c #EDECEA", +"s+ c #454F55", +"t+ c #486173", +"u+ c #4D6678", +"v+ c #A1C1DA", +"w+ c #373C40", +"x+ c #0C0D0F", +"y+ c #4E5E6A", +"z+ c #5B6E7C", +"A+ c #4F5B62", +"B+ c #A4A099", +"C+ c #CCC9C3", +"D+ c #D7D5D1", +"E+ c #E4E2E0", +"F+ c #DDDBD7", +"G+ c #B8B5B0", +"H+ c #3E474D", +"I+ c #4A6176", +"J+ c #4A6070", +"K+ c #9BC3D8", +"L+ c #363C41", +"M+ c #28323E", +" . . ", +" . + @ . ", +" . . . . . . . . . . . . . # $ % . . . ", +" . & * = - ; > , ' ) ! ~ . { ] ^ . / ( _ . ", +" . : < [ } | 1 2 3 4 5 . 6 7 8 . 9 0 a b . ", +" . c d e f g h i j k . l m n . o p q r s . ", +" . t u v w w w w x . y z A . B C D E F G . ", +" . H I v w w w x . J K L . M N O P Q R S . ", +" . T U v V C N . W X Y . Z ` ...+.v @.#.. ", +" . $.%.&.w w *.. =.-.. M N D P *.w v @.;.. ", +" . >.,.v w x . '.. . M N D P *.w w v ).!.. ", +" . ~.{.v V ].. . ^./.(._...].C C :.v ).<.. ", +" . [.}.|.w *.1.2.3.4.5.6.x w w w w v R 7.. ", +" . 8.9.0.a.Q b.c.c.d.e.E v v v v f.g.h.i.. ", +" . j.k.F R h.F l.m.F n.h.o.o.).p.q.R r.s.. ", +" . t.u.v.w.x.y.z.A.B.C.D.E.F.z.G.H.I.J.K.. ", +" . L.M.N.O.P.Q.R.S.S.T.Q.U.V.W.X.Y.Z.`. +. ", +" . .+++@+#+$+%+&+*+*+=+-+;+>+U.,+'+)+!+~+. ", +" . {+]+^+#+/+(+&+*+*+_+:+;+<+[+}+|+)+1+~+. ", +" . 2+3+4+5+6+S.7+8+8+9+;+0+a+b+c+d+e+f+g+. ", +" . h+i+j+k+l+m+n+o+o+;+p+q+r+q+s+t+u+v+w+. ", +" x+y+z+A+B+;+>+C+C+D+E+T.F+G+H+I+J+K+L+. ", +" . . . . . . . . . . . . . . . . M+. ", +" "}; diff --git a/lisp/toolbar/search-replace.pbm b/etc/images/search-replace.pbm similarity index 100% rename from lisp/toolbar/search-replace.pbm rename to etc/images/search-replace.pbm diff --git a/lisp/toolbar/search-replace.xpm b/etc/images/search-replace.xpm similarity index 100% rename from lisp/toolbar/search-replace.xpm rename to etc/images/search-replace.xpm diff --git a/etc/images/search.pbm b/etc/images/search.pbm new file mode 100644 index 0000000000000000000000000000000000000000..0e8a15e6a2ed38c71e03caa07af63b78015cd767 GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI&~95PBQEO4aA!=mtyMS&fNS`?U%C@=sK3mEap|Nj9r F1OT3UDgFQe literal 0 HcmV?d00001 diff --git a/etc/images/search.xpm b/etc/images/search.xpm new file mode 100644 index 00000000000..ad6300528e9 --- /dev/null +++ b/etc/images/search.xpm @@ -0,0 +1,234 @@ +/* XPM */ +static char * search_xpm[] = { +"24 24 207 2", +" c None", +". c #000000", +"+ c #D3D3D3", +"@ c #F6F6F6", +"# c #FFFFFF", +"$ c #F9F9F9", +"% c #DADADA", +"& c #585858", +"* c #C7C7C7", +"= c #D1D1D1", +"- c #D6D6D6", +"; c #FEFEFE", +"> c #FDFDFD", +", c #C0C0C0", +"' c #E1E1E1", +") c #F0F0F0", +"! c #9B9B9B", +"~ c #FCFCFB", +"{ c #FBFBFB", +"] c #AFAFAE", +"^ c #E9E9E9", +"/ c #DFDFDF", +"( c #8F8F8F", +"_ c #FAFAF9", +": c #F9F9F8", +"< c #A4A4A3", +"[ c #F4F4F4", +"} c #CFCFCF", +"| c #A2A2A2", +"1 c #B8B8B8", +"2 c #47473F", +"3 c #0A0A09", +"4 c #4B4B43", +"5 c #B4B4B3", +"6 c #F7F6F5", +"7 c #9E9E9E", +"8 c #A9A9A8", +"9 c #34342E", +"0 c #9D9D8D", +"a c #CFCFB9", +"b c #C4C4AF", +"c c #8D8D7F", +"d c #353530", +"e c #ACACAA", +"f c #F1F0EF", +"g c #DEDDDC", +"h c #D3D2D0", +"i c #B7B7B5", +"j c #9F9E9D", +"k c #706F6F", +"l c #65625A", +"m c #46463F", +"n c #9C9C8C", +"o c #E2E2D0", +"p c #EDEDE7", +"q c #C0C0AC", +"r c #B2B29F", +"s c #828274", +"t c #4C4C44", +"u c #E4E4E2", +"v c #E1E1DF", +"w c #DAD9D7", +"x c #D8D8D6", +"y c #CDCCCA", +"z c #AFAEAC", +"A c #88847B", +"B c #F8F8F7", +"C c #090908", +"D c #D5D5BF", +"E c #FBFBFA", +"F c #C3C3AE", +"G c #B5B5A2", +"H c #A6A695", +"I c #9C9C8F", +"J c #080807", +"K c #CFCFCD", +"L c #E3E2E0", +"M c #ECEBE9", +"N c #E9E8E6", +"O c #D5D4D3", +"P c #C4C3C2", +"Q c #8F8A81", +"R c #F6F5F4", +"S c #F3F3F1", +"T c #090909", +"U c #CACAB5", +"V c #DDDDD0", +"W c #B7B7A4", +"X c #AAAA98", +"Y c #9B9B8B", +"Z c #AEAEA3", +"` c #BBBAB9", +" . c #E8E7E5", +".. c #E5E4E2", +"+. c #E4E3E0", +"@. c #D2D1CE", +"#. c #8D887E", +"$. c #F4F3F2", +"%. c #F0EFEE", +"&. c #474740", +"*. c #929283", +"=. c #BABAA7", +"-. c #ADAD9B", +";. c #9F9F8E", +">. c #ACACA1", +",. c #CFCFCB", +"'. c #4C4C45", +"). c #B3B2B1", +"!. c #E2E1DE", +"~. c #E1DFDC", +"{. c #979288", +"]. c #949493", +"^. c #34342F", +"/. c #878779", +"(. c #A0A090", +"_. c #AEAEA2", +":. c #C3C3BE", +"<. c #010101", +"[. c #B1B0AF", +"}. c #D2D1CF", +"|. c #A49E93", +"1. c #F0F0EE", +"2. c #EDEDEB", +"3. c #DDDDDB", +"4. c #898988", +"5. c #414141", +"6. c #737271", +"7. c #A4A3A1", +"8. c #DFDEDB", +"9. c #E2E0DD", +"0. c #E1E0DC", +"a. c #E0DFDB", +"b. c #A19C90", +"c. c #E1E0DE", +"d. c #CBCAC9", +"e. c #B2B1B0", +"f. c #A3A2A1", +"g. c #9D9C9A", +"h. c #9E9D9C", +"i. c #9F9F9D", +"j. c #ABAAA7", +"k. c #DCDBD7", +"l. c #DEDDD9", +"m. c #DDDCD8", +"n. c #A19B90", +"o. c #EBEAE8", +"p. c #E6E5E3", +"q. c #C8C7C4", +"r. c #B6B6B3", +"s. c #B0AFAD", +"t. c #B3B2B0", +"u. c #747371", +"v. c #9D9C99", +"w. c #DAD9D5", +"x. c #E7E6E3", +"y. c #E6E5E2", +"z. c #E3E2DF", +"A. c #DBDAD7", +"B. c #D4D3D0", +"C. c #D0CFCB", +"D. c #D1CFCC", +"E. c #D1D0CC", +"F. c #C9C8C4", +"G. c #6B6B69", +"H. c #CECDC9", +"I. c #D6D4D0", +"J. c #9F998D", +"K. c #E3E2DE", +"L. c #E4E2DF", +"M. c #DFDEDA", +"N. c #D5D4D0", +"O. c #C0BFBC", +"P. c #7B7A78", +"Q. c #BCBAB6", +"R. c #CECCC8", +"S. c #9D978C", +"T. c #EDEDED", +"U. c #E1E0DD", +"V. c #E2E1DD", +"W. c #DBDAD6", +"X. c #BBB9B6", +"Y. c #A6A4A1", +"Z. c #9E9C99", +"`. c #ACABA7", +" + c #C7C5C2", +".+ c #9B9589", +"++ c #E1DFDB", +"@+ c #E0DEDA", +"#+ c #DEDCD8", +"$+ c #DAD8D4", +"%+ c #BDBCB8", +"&+ c #ACABA8", +"*+ c #B2B1AD", +"=+ c #C6C4C0", +"-+ c #999388", +";+ c #999891", +">+ c #A39E92", +",+ c #A39D92", +"'+ c #A39D91", +")+ c #A29C90", +"!+ c #A19B8F", +"~+ c #9D978B", +"{+ c #989286", +"]+ c #918C82", +"^+ c #938D83", +"/+ c #979286", +"(+ c #666258", +" ", +" . . . . . . . . . . . . . ", +" . + @ # # # # # # # # $ % & . ", +" . @ # # # # # # # # # # * = - . ", +" . # # # # # # # ; # ; > , ' ) ! . ", +" . # # # # # ; > ~ > ~ { ] ^ # / ( . ", +" . # # # ; > ~ { _ { _ : < ) # [ } | . ", +" . # ; > ~ 1 2 3 3 4 5 6 7 . . . . . . . ", +" . # ~ { 8 9 0 a b c d e f g h i j k l . ", +" . # _ : m n o p q r s t u v w x y z A . ", +" . # B 6 C D E F G H I J K L M N O P Q . ", +" . # R S T U V W X Y Z 3 ` w ...+.@.#.. ", +" . # $.%.&.*.=.-.;.>.,.'.).h !.+.!.~.{.. ", +" . # $.%.].^./.(._.:.<.<.[.}.!.+.!.~.|.. ", +" . # 1.2.3.4.4 3 3 5.6.<.<.7.8.9.0.a.b.. ", +" . # 2.M c.d.e.f.g.h.i.<.<.<.j.k.l.m.n.. ", +" . # o.N p.w q.r.z s.t.u.. <.<.v.w.k.n.. ", +" . # x.y.y.z.A.B.C.D.E.F.G.<.<.<.H.I.J.. ", +" . $ +.z.K.L.K.a.a.M.M.N.O.P.<.<.Q.R.S.. ", +" . T.U.~.0.a.V.a.0.a.0.W.E.X.Y.Z.`. +.+. ", +" . = ++@+M.l.a.l.@+l.@+#+$+R.%+&+*+=+-+. ", +" . ;+>+|.,+'+,+b.)+b.)+!+n.~+{+]+^+/+(+. ", +" . . . . . . . . . . . . . . . . . . ", +" "}; diff --git a/etc/images/show.pbm b/etc/images/show.pbm new file mode 100644 index 0000000000000000000000000000000000000000..d86b1e6fe779d3edda3e2268d9e0864842a7d632 GIT binary patch literal 81 gcmWGA;W9E&Ff!p{00a5|KLi*!NJT(h5bZz`08iWpNdN!< literal 0 HcmV?d00001 diff --git a/lisp/toolbar/show.xpm b/etc/images/show.xpm similarity index 100% rename from lisp/toolbar/show.xpm rename to etc/images/show.xpm diff --git a/etc/images/smilies/blink.pbm b/etc/images/smilies/blink.pbm new file mode 100644 index 0000000000000000000000000000000000000000..6c7531b92c6de68b8d8afe6c74e875e7960cf2ef GIT binary patch literal 37 tcmWGA;W9K c #6FAE6E", +", c #A8CBA6", +"' c #6D9D6C", +") c #D0E4D0", +"! c #6FAF6F", +"~ c #587055", +"{ c #B8D6B8", +"] c #5B9159", +"^ c #D4E4D4", +"/ c #67AF67", +"( c #5D905B", +"_ c #9FC59D", +": c #93BE92", +"< c #B5D1B5", +"[ c #67AF68", +"} c #63A261", +"| c #BBD6BA", +"1 c #82B881", +"2 c #75AF74", +"3 c #6B8868", +"4 c #9DC39D", +"5 c #7DB17B", +"6 c #6BA368", +"7 c #485C46", +"8 c #89BA88", +" ", +" ", +" ", +" ", +" ... .... ... ", +" .. . .. . .. . ", +" .. . .... .. ", +" ..... .. . .. ", +" .. . .. . .. . . ", +" .. . .... ... ... ", +" .+. ", +" .. .@# ", +" .$. .%&. ", +" *=. -;>. ", +" .,'. .)!~. ", +" .{].^/(. ", +" ._:<[}~. ", +" .|123. ", +" .4567. ", +" .83. ", +" .37. ", +" .. ", +" ", +" "}; diff --git a/etc/images/undo.pbm b/etc/images/undo.pbm new file mode 100644 index 0000000000000000000000000000000000000000..7f9b8975d2f2b3fe8b064cc120cab88631bd7cea GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #D1940C", +", c #E0B74C", +"' c #D9C374", +") c #8F6406", +"! c #D59D1C", +"~ c #B1933F", +"{ c #DFB74A", +"] c #CCB76D", +"^ c #B8820A", +"/ c #D9A72E", +"( c #D7A62C", +"_ c #C7B26A", +": c #D4B150", +"< c #A39256", +"[ c #E2CB79", +"} c #C9B46B", +"| c #8D7E4A", +"1 c #AE9C5C", +"2 c #96864F", +" ", +" ", +" ", +" . ", +" .. ", +" .+. ", +" .@#.... ", +" .$####%&. ", +" .+#######*. ", +" .=#########-. ", +" .;>>>>>>,#'.. ", +" .)>>>>>>!#~. ", +" .)>...;>{]. ", +" .;. ..^/#. ", +" .. ..>#. ", +" . .(_. ", +" .:<. ", +" .[. ", +" .}|. ", +" .12. ", +" .. ", +" ", +" ", +" "}; diff --git a/etc/images/up-arrow.pbm b/etc/images/up-arrow.pbm new file mode 100644 index 0000000000000000000000000000000000000000..7c792bef796aa2f57edef4a3d727b39db575f1dc GIT binary patch literal 185 zcmWGA;Zjy`4svx2@ei_6hzL^%OD!tS%+FIW)-yCnR8R;?EwfTEG}1S+)VDNI& c #B9D7B8", +", c #A1C69F", +"' c #68835F", +") c #637D5B", +"! c #3F5239", +"~ c #B8D7B7", +"{ c #A2C7A0", +"] c #6A8561", +"^ c #657F5C", +"/ c #617959", +"( c #3E4F39", +"_ c #F0FEEF", +": c #B7D5B6", +"< c #657E5C", +"[ c #5D7555", +"} c #D6EAD6", +"| c #BFD4BF", +"1 c #C0D5C0", +"2 c #637C5B", +"3 c #4D6246", +"4 c #4C6046", +"5 c #C7E1C6", +"6 c #A1C69E", +"7 c #67815E", +"8 c #627B59", +"9 c #3D4E39", +"0 c #D0E7D0", +"a c #B5D3B4", +"b c #A0C39D", +"c c #607958", +"d c #B5D2B4", +"e c #9DC19B", +"f c #647D5B", +"g c #607858", +"h c #C6E0C5", +"i c #B4D2B3", +"j c #9CBF99", +"k c #C5DFC4", +"l c #B1CEB0", +"m c #99BC97", +"n c #617A59", +"o c #5E7756", +"p c #C0D9BF", +"q c #AFCCAE", +"r c #AECBAD", +"s c #93B690", +"t c #607857", +"u c #5E7656", +"v c #8DB389", +"w c #748A72", +"x c #71916E", +"y c #5A7257", +"z c #4D6247", +"A c #4D6146", +"B c #43543D", +" ", +" ", +" . ", +" +@. ", +" .#$%. ", +" .&*=-%. ", +" .&;>,')!. ", +" .&~;>{]^/(. ", +" ._~>:>,]~~,'23444. ", +" .....5;;6789..... ", +" .0;ab^c9. ", +" .5;defg9. ", +" .haij2g9. ", +" .kilmno9. ", +" .pqrstu9. ", +" .vwxyzAB. ", +" ......... ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/etc/images/up-node.pbm b/etc/images/up-node.pbm new file mode 100644 index 0000000000000000000000000000000000000000..29532bcb99cff076dac5e83868916adb070f655e GIT binary patch literal 1786 zcmeHEy9&ZU5VXFpSg^1Y4QgR0qGAyZBK|=@K@<}IUzaS7!>x}awO54Md0nz8CZQ|y z-D0-i?xwOoma8LN=0Y6teL++?&&Bbu7zIt>G~d z`;=$eRkiEUlpS2EBXBx+*1WRqdhABdGERS=e~)g!e#)1n@opJ&#CWUv?(sWE4+pIZ z5`)Obl44d(vZ}W{vXL5%Z1WN`pD-E#)X8S$c?1SP&;#|b&ErOYJw7$SVFusBK~};4 nB)!2i+V+$52G1n+XfQhX9DvAx5e5&`lSq0SGq@`P>|y)>`4>|( literal 0 HcmV?d00001 diff --git a/etc/images/up-node.xpm b/etc/images/up-node.xpm new file mode 100644 index 00000000000..bfa36f6c5bf --- /dev/null +++ b/etc/images/up-node.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static char * up_node2_xpm[] = { +"24 24 18 1", +" c None", +". c #000000", +"+ c #FFFFFF", +"@ c #DADAD6", +"# c #BCBCB8", +"$ c #778E6F", +"% c #506B46", +"& c #0F1308", +"* c #6B9060", +"= c #445B2C", +"- c #A9C7A6", +"; c #BDD3B8", +"> c #77A16E", +", c #C2D7BE", +"' c #C1D6BD", +") c #B0CAAD", +"! c #A4C3A2", +"~ c #8CA782", +" .................. ", +" .+++++++++++++++@#. ", +" .+++++++++++++++#+#. ", +" .+++++++++++++++#$%&. ", +" .+++++++++++++++@$%&. ", +" .+++++++++++++++++@#. ", +" .++++++++++++@@@@@@#. ", +" .+++++++++++++@@@@@#. ", +" .++++++++++++@@@@@@#. ", +" .+++++@@##$####@#@@#. ", +" .+++@+@@#..$$####@@#. ", +" .++++@@#.*=.%####@##. ", +" .+++@@#.*-*=.$$###@#. ", +" .+++@#.*-;**=.%###@#. ", +" .++@#.*--;***=.$$###. ", +" .++#.*---;****=.$###. ", +" .+#.>,,;-;*****=.#@#. ", +" .+%....')'***.....@#. ", +" .++++@.'-;***.$#####. ", +" .++++@.'-;***.###@##. ", +" .+++++.'-;***.#@++##. ", +" .......'-;***........ ", +" .,,@!~>. ", +" ........ "}; diff --git a/etc/images/widen.pbm b/etc/images/widen.pbm new file mode 100644 index 0000000000000000000000000000000000000000..2d9780b9959c2f035bd3f5bd20d74c25746df738 GIT binary patch literal 81 pcmWGA;W9E&Ff!p{zyX*U4zMvK@Guz2KmP$lKn9Qt6vUyN0RU+M2ulC} literal 0 HcmV?d00001 diff --git a/lisp/toolbar/widen.xpm b/etc/images/widen.xpm similarity index 100% rename from lisp/toolbar/widen.xpm rename to etc/images/widen.xpm diff --git a/etc/ledit.l b/etc/ledit.l index 0c572fa07ae..d53c5d26011 100644 --- a/etc/ledit.l +++ b/etc/ledit.l @@ -148,3 +148,5 @@ (if (symbolp arg) (set_proc_str (get-pname arg)) (error arg " is illegal argument to set-proc-str")))) + +;;; arch-tag: 2e76c01f-8d6a-4d04-b9ab-0eaabec96aee diff --git a/etc/letter.pbm b/etc/letter.pbm new file mode 100644 index 00000000000..0daf3b65b80 --- /dev/null +++ b/etc/letter.pbm @@ -0,0 +1,3 @@ +P4 +14 10 +ÿüà$ˆD‡„‹D$ À ÿü \ No newline at end of file diff --git a/etc/letter.xbm b/etc/letter.xbm deleted file mode 100644 index d26911d9146..00000000000 --- a/etc/letter.xbm +++ /dev/null @@ -1,5 +0,0 @@ -#define letter_width 14 -#define letter_height 10 -static unsigned char letter_bits[] = { - 0xff, 0x3f, 0x07, 0x38, 0x09, 0x24, 0x11, 0x22, 0xe1, 0x21, 0xd1, 0x22, - 0x09, 0x24, 0x05, 0x28, 0x03, 0x30, 0xff, 0x3f}; diff --git a/etc/letter.xpm b/etc/letter.xpm index 8b9a54febb1..c79211f5347 100644 --- a/etc/letter.xpm +++ b/etc/letter.xpm @@ -1,8 +1,8 @@ /* XPM */ static char * letter_xpm[] = { "14 10 2 1", -". c #000000", -" c #FFFFFF", +". c opaque", +" c None", "..............", "... ...", ". . . .", diff --git a/etc/ms-7bkermit b/etc/ms-7bkermit index a5b47b30016..28847b06136 100644 --- a/etc/ms-7bkermit +++ b/etc/ms-7bkermit @@ -310,3 +310,5 @@ set key \2455 \khomscn set key \2463 \kendscn set key \2457 \kupscn set key \2465 \kdnscn + +;;; arch-tag: b066a884-e956-4f46-9d9c-13502f6cf7a6 diff --git a/etc/ms-kermit b/etc/ms-kermit index 4d1fe5b6495..e25c3dbe643 100644 --- a/etc/ms-kermit +++ b/etc/ms-kermit @@ -165,3 +165,4 @@ set key \2857 \254 ;; m-~ set key \2318 \255 ;; m-del +;;; arch-tag: 93cefb0a-2b07-4d09-ae78-4d807b15645d diff --git a/etc/orgcard.ps b/etc/orgcard.ps new file mode 100644 index 00000000000..4b0d039d0b8 --- /dev/null +++ b/etc/orgcard.ps @@ -0,0 +1,2775 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software +%%Title: orgcard.dvi +%%Pages: 2 +%%PageOrder: Ascend +%%Orientation: Landscape +%%BoundingBox: 0 0 596 842 +%%DocumentFonts: CMBX10 CMR8 CMTT8 CMR7 CMSY8 CMBX8 CMTI8 CMR6 CMSY6 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi +%DVIPSParameters: dpi=600, compressed +%DVIPSSource: TeX output 2006.01.13:1223 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: f7b6d320.enc +% Thomas Esser, Dec 2002. public domain +% +% Encoding for: +% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10 +% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8 +% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10 +% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10 +% +/TeXf7b6d320Encoding [ +/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega +/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve +/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash +/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand +/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen +/period /slash /zero /one /two /three /four /five /six /seven /eight +/nine /colon /semicolon /exclamdown /equal /questiondown /question /at +/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X +/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent +/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u +/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space +/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef +/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute +/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE +/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%%EndProcSet +%%BeginProcSet: 09fbbfac.enc +% Thomas Esser, Dec 2002. public domain +% +% Encoding for: +% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9 +/TeX09fbbfacEncoding [ +/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi +/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown +/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla +/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam +/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft +/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon /less +/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N +/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright +/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l +/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright +/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi +/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown +/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute +/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE +/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%%EndProcSet +%%BeginProcSet: bbad153f.enc +% Thomas Esser, Dec 2002. public domain +% +% Encoding for: +% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 +% +/TeXbbad153fEncoding [ +/minus /periodcentered /multiply /asteriskmath /divide /diamondmath +/plusminus /minusplus /circleplus /circleminus /circlemultiply +/circledivide /circledot /circlecopyrt /openbullet /bullet +/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal +/greaterequal /precedesequal /followsequal /similar /approxequal +/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows +/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast +/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup +/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional +/prime /infinity /element /owner /triangle /triangleinv /negationslash +/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur +/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K +/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection +/unionmulti /logicaland /logicalor /turnstileleft /turnstileright +/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright +/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv +/backslash /wreathproduct /radical /coproduct /nabla /integral +/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section +/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/minus /periodcentered /multiply /asteriskmath /divide /diamondmath +/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef +/circlemultiply /circledivide /circledot /circlecopyrt /openbullet +/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset +/lessequal /greaterequal /precedesequal /followsequal /similar +/approxequal /propersubset /propersuperset /lessmuch /greatermuch +/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%%EndProcSet +%%BeginProcSet: 74afc74c.enc +% Thomas Esser, Dec 2002. public domain +% +% Encoding for: +% cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10 +% +/TeX74afc74cEncoding [ +/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega +/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve +/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash +/suppress /exclam /quotedblright /numbersign /sterling /percent +/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma +/hyphen /period /slash /zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question +/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent +/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u +/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space +/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef +/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute +/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE +/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%%EndProcSet +%%BeginProcSet: texps.pro +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 +ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ +pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get +div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type +/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end +definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup +sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll +mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ +exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} +forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def +end + +%%EndProcSet +%%BeginFont: CMSY6 +%!PS-AdobeFont-1.1: CMSY6 1.0 +%%CreationDate: 1991 Aug 15 07:21:34 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY6) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY6 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-4 -948 1329 786}readonly def +/UniqueID 5000816 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 +7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 +A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 +E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A +221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFB7605D7BA557CC35D6 +49F6EB651B83771034BA0C39DB8D426A24543EF4529E2D939125B5157482688E +9045C2242F4AFA4C489D975C029177CD6497EACD181FF151A45F521A4C4043C2 +1F3E76EF5B3291A941583E27DFC68B9211105827590393ABFB8AA4D1623D1761 +6AC0DF1D3154B0277BE821712BE7B33385E7A4105E8F3370F981B8FE9E3CF3E0 +007B8C9F2D934F24D591C330487DDF179CECEC5258C47E4B32538F948AB00673 +F9D549C971B0822056B339600FC1E3A5E51844CC8A75B857F15E7276260ED115 +C5FD550F53CE5583743B50B0F9B7C4F836DEF7499F439A6EBE9BF559D2EE0571 +CE54AEC461D354A32E69F39DD0C017BD6576F1E9500DC0328E8AF6EAB528FD7B +85132A2A9995EB211FCE849216BF6D663AD649AE92DA953C4D520AB9A22D27B5 +6C34121FD688F9E17FE39B939D8DCED9EDDE5AF6DD7DC2297F2A3E1287E5AF45 +0306EDBA3C843FB8234D0DDEC7595CDE6657E499324DA260BACAE9D6DB126FD9 +AAA7368F7164F6BBBBE11EFFFB65660DA0961A97D51ADAF2136A085FDC16C199 +72BC2CA210B330C03F4252A275FEAADC95CFBC79C3B7285C4C7B5C9665909A56 +4176C37DCB569C8EED1B59C58B5EBD3ADD31010DCFD59411FC2020E238A07B83 +2439DEB653AFF1CF197533724E45EDA9810B6793E27943CF51484A5BC7DC61C5 +E97F71E04BB623E0BC9C +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR6 +%!PS-AdobeFont-1.1: CMR6 1.0 +%%CreationDate: 1991 Aug 20 16:39:02 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR6) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR6 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-20 -250 1193 750}readonly def +/UniqueID 5000789 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C +68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 +3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C +BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E +CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A +C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5 +D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D +23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8 +D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B +93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711 +6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4 +EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953 +CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF +D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE +00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5 +B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E07BB563C96C0A3E +6D4DF600BB73729BC4A5B134928F1370B9F07C587F79388B1D9AC62BFB1566DD +CCBD1F58ABBF1F53AD21E3BFF25EEEB046F66A924E5F431EBD7228050BE2DF43 +0B9B538DAAD511EED97630CD9A9C05CC49DC251325A93EA842C6D07B44BE620F +08E66B611F54314B0177E299304F2294F8DEDE9914736944F125A50B5007373E +588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C2 +C87A1A169C5ADE44B561EC1660E617FB39D1B1547B33C0FEB33C3A1D7340A62A +CD9CEFA49481F19B39A704A53A0B98A11744143CDDA0E668E6325935C6497A9F +AFF471194932AFECBF25B441AD55A43751FBAB76F3E544C4254AEC4BEB5CFE4C +C1318C3A0FAD0E8C1BABEE20B203E1DD9412E66BC55BEBD6FBBEBA84F56604FD +85D50F733D9794611F4137EC10ACB4C4ECA5A81CAACC45213E92ED3C26726BBE +91430E7633A2BDB8EA3D0C55259D7DBE468AC0964A63728C9B8EA4E15CF0EEA3 +2E754B9170EAE6B8818DCCDDAD643B9F6C91C3C5B245CD442358C60AF390DC76 +342E659D4EC45552626F069F346F46B18062CE26D5912336C6B29FCBFA5C3113 +ED86E44B529CD95B7B5B934D899762C4F3457F56ACCC763BCCD5BD08975EB5F1 +C5216DA4CBF3409EC71054B0145183F7DFB31517D199EB16D4C6DB0AF05E5720 +10B06F395BE3C8C59CEEBCEA1E00F9EA3FD880AC197508CEC11E33B6B6EABE3C +0FAEBF246743F62D280875D052656696AA88DABB918F79279A980754F3DCFBEF +7999E7FB7C9E7F88CB15E1596F08E48FA74F1CB613B587BFE72717437E38D08A +C8B160982A6F92CD0BAD7E033766BB1D92F78F22FE5750D002AB2C7A101A57D6 +3E7ABA9BD4B8C0A4F2820123BBCCD520B9608AFD4372366D876F848ED068245B +6BC1DDF4B826E4A9FEC4390CEB2DAAA63D9D013B706059347709F3E996C3682A +F88D827B8B7E1206BF2B2A394AFB00B1207819DAE82D1132989702B219E4EA71 +A2BD6EDA183C552C874DBD142E826B583311784EEBFBE96D3716E0DA9C4B1CD1 +C7D649FE269C801411290846EB69BECFA24AACFE8895AC574ED538951B84CDBE +4D935C15DADFFD2179C53655CE2728B017DCBAA14D7B7140AA7B42492E7C568A +C718B186FE248F58148FBEAC7CF56A67E1B7CF6E5A3D6B5675AA8005BDD71A6F +40B90E5B304E43F0BCBAE31238B09B65AA17F09B0CEB3A609156CF83E92AB27B +BD1E80DCCF305D627821FB110676D0BA0F02790A51804686143AB72EAB98AAC7 +CB4E052BC8A19362655F0DD0AC4B8578BB227830D9D713116725A3BB05CB2F84 +9A84884D80116E47E5FA2802EBE7439A8484A9FF18A5F5838731C6C55EF3B749 +ECEDADC2671F81A2787323E372AC20D3E02849D3096C64EB86393B374DB0DFBC +393E9F0364F58CF81BC788C7B779BA0ED32A26389CBDE9E5A96E79D014C0B5F2 +D57F9B968ED9FE793AA0E1A02432E1A5075947D96909DC06A06C467CB86F428B +BCFB5149725BAFAD34F733692AD90AFCE2B3A9281CEBDE9EFD67DA0A79BC0AA6 +E6C47F2FD4E8698109A28915DAA6CBA5FCBD52EAEAC8087796A4309EBCFB2DE6 +295ED1CE5C51255C05F9258F958E9F7A7A5AD52F8D9715B99CC3CDD77A5212FD +BFAC311D3E5699D5D5BAD6DE8C425B118D9636F4AD4EEA8FBA4BDF3B15C2A939 +926162F94D522B0990E7204BF3A81E3E72C9A80D7688BA28DEE8F88155F8CB15 +02EF6C6BD3C9A961B591DC80C24CE9E9BE24254911D558534A7B4AE0CEB01487 +B6451320B37891175CAE2F534828978831AFC6846CDF9A2B86FC209A5DC8983B +1A6B5BD7D9D33AAF2D7340ACACD7E03CB238D0366E83852B2BBE428063A4FCEF +B6E48332E6633F790971A587A3F038A256D181B5584691A9405732D33A2F55FE +8BD68E07E6E01A27FC74BCC9946204A478D13C51490E9D76C4EE375190026156 +FD879EBC0A579DBCB69058B252735F3A864B0C42B7555ADD028DCB937087EE86 +7108667781A85ED8A09260BE52B90B1BB8B6A268169D09AFEFD0C58085ED5550 +58866429B1FFB47465BB91C94DD392DF00A1900E021990C23952430AAC50E079 +5685C686685BB26743FCE9E9ED88D3A523AA10E4317703BF7EA74C15B3ECD49E +33216F52B45B23195E133522498B357511593C41D45660503B93A02FE7DFA71B +51FC7E10E28F60367293388C4D143F49AADD411685A9BF60B6D544E32B8C0902 +8ECA67229D25B79A56639B67A4E40B8A2CEE1B92CEC3121F869520F469BBEA38 +B6E631B249E53EB6A8A886ED97E5C09372B31F724F165A5BEE9385CF89FEFCF9 +F6CD28226E6D60A32A6C2ECFF8E473F816F6CC1A90C1783A3E6303B99B11959B +510B684B9257617EFBE7DB72BAF6F5756B22110B675CE11A2A88148DE330AD84 +C8DBF2C79BB6D2199F42677B85F30C0D6885B0A316B1E53CFB32675179AA088A +45995F1A1D323CF8BDB3E769B851F5BFB6C619CA74CEFE9650F58C96EC512385 +F7A8C8B0CA55F030B7CEB6A7CF577A544744B62424A403A69A4BB6C5EA42375B +DDFD2D1D74FFE633474D4ABA14C24EB7F44BB6E69F759E23FF799E07733E4C7A +F142DD6563A83DB58E7FA1BB7BA82776441875E6B0D44801762E3CA70C8B738A +2B52E48BEC09C29544B6D24513708C7C86AEA3BB56AD0675CBB8CD6E41AD01E4 +DD6F54B5D6CC95AEB2D7D4C1C45D6274DD3FD7449982BDB5609BD3ADB64A73C4 +6F9C5897CFF003130758DB267EB173CF4DBF412C3F69012675FDCA9A8E8D2353 +5C272A4843F249A8CA0E03CB00B503AEB6C1BEC84B87420520EAD65AC7FEF5B9 +0489D803DCCB72AD4F7875335165467D04BDA6CACADBAF5A8BB8B26C153A491D +AFDBD9695BDA29BC2FEEB2849CEE6F4C22FE5C40044105ED2288FE0C96865CF4 +093D21C3A6930538DD2ADBFCDF61072F55156267A7069A0E3025090B2CEB4C7D +9303AC8A31EE3274BAFCF6A1A069D506D4DCE7051C33292C8087DAE14E1D0A9F +40293446B6C01DB83E64E57705AF674684C1BE9527F8B4E242B3CAF61C77E3E4 +AB8EF5BC4CCDEFBBFDA737A7931354DB5AB2A94EBF0EF06E535F03CEC3CA2F2A +568426AFB6B49CB5AB4D5571C9BDA39649E652B44A6A2B140B4E33639ED32A6A +ECDBDCD764AE3428091516C10F4F350A801452AE6BB44D990640AB2A54976F26 +13780C2757C57691D4F47B2538C532F5769ED5CC1BCD4A9285209B7306109F0F +C864E491D5F0FBEE125BF87807951FBA44D152F99FDB9B79A927AD91C423AEF4 +1E7AD1BB32D54808200E350F0F75B2C74574B6A752F3227B2005D768299C755F +07A94926A42A5806B21C44A01983B93B2AF6C916693939A8E917E4CE81A8B007 +9475395D9E2D4696D216AB1D23F022DEFDCF1B31CB06045BA1A7545F921F1088 +B863CD5848A20DEDD289A2D7B05AD6DD68F9FF8F2C4D9145042A1CD985DC1E4E +C2F6C2446DE2E7DD577E3E4378DD6180F79444A7DC8A3FAC02970E2009484816 +1E88FB6188486646B178C7119CA520CCA3503481D895D23D73B5598130AF4FF5 +5E6ECC3EA740B1030BE7CB8343FB90E0FF74D76FE27AE3B799BE36103748518C +6CDB243CE716A0CF5FAC0A5F18E2328EC5190B4B00D14A9D71E135E5A13B7DA2 +476FE03E36B5B56E0B561CA963B25CA77DCEAE2952FA2D1EC8CB7DCCD4DA7A35 +485550BD92A50948436E12DD1FB75003B4B851DC45E41A2461FCD300A2811430 +57EFC3E99C44FB0DD0BAD0B7BA4F97E1B752731C02FAB1CD9038F63A358ED8A2 +5BB20E431A2A41731F167962426AA59FC40F87C820F3990557147A24CB69579D +ED6E60D5EC6FEDEBBECC5BA12B07D4F72C47D306AE8194791D2EAF9A65457ECF +63C187646D3A224B810CE2D1BB39FB02FDC1011C1840CB1632B9850E1C562CD1 +11F9456D74E001D63E3D5FC3E43B7F063089A5647A9021DD30D44E63933A5F1B +607A9BBD0F40DCEC2AEC59D2C408E0BBB369BA8B9893F44A6DC0485EFA64C339 +352CA32A841600C551C528EF69319293CEF00DE4E2481C98FEAED5E3232F316B +564446846604D48232DC65D721F780D0A11154DC5A305366F729782EFFE96B1E +FFF2D987570DB27A22F3322108CF43AD05CF27052FE2B9E964CF01CF5F0B8E19 +6E024C1557959972FC95341E057E1659850B20F565FC0EA76C2ADC7FDEBE4F2E +D4E9001F81BB6A4B8F7351831FF0D5EFB01B298C7E24B2FB493B1BF54875AC38 +8D80014166113412DECE47EFBBE682078A1B5E05A6FB2BB3E93364BDB3DB352F +781773B3E905AB5C5AC04D8111E9AAB5A213CE077435090CFB6DDCB3EC0A4DD2 +F9F946E2EB070E75C0512664014B4E090188526C471DA6F83BBEF74FE52D5597 +063400F44E7016615D743E90F10B54336BEF61F5234B1DF4860A4A4074A96263 +6854BD1E4AF82CB7D7A8DC04E4FB6C34557C9BA80C8743EF343C404228D71DE0 +E5A5A519D3BF01A08A967DCCF44ED06A889FE2107A3DA114E941621D2CB3E8A5 +F4E3DA4B76C3D1BAF6A5CDDBC8513AAFF9F1D22E7DF630EBB82116A075F890F9 +BF73E9777D380CF92C9B1762FA23407E03DD26642FADB9C85944D0E15CA82FDD +5638C26B10B9B94E74DD979BF5A6B6C0AC54C94C6E6716246612627CE4DA4C17 +3AE7772E2B93562AEFB3184A7A9F866FA10901DA58E3BEB70831FC9C1C886EE4 +9DDF0D69B286EB138EE735A382BF96D9B7EC33546F2C788128A3B1ED4CD2AC7D +76C5F3B82DCAFB8AB073256A7F98C1530BE8C94FF9213FDCA56ADC17E6F56552 +87D1313366EE7CCC237857C93401628B7A0F4704720FD4966F16AFA4A764358E +EB0AD53B9C8104070E2D23E9AB793E9F67A2313DC6622213DD8E32FF245C6214 +FC6D5021A48367398061976699FA83F0FE81854D55204CE03258CB6333231FD5 +8852B52D255EFA8F6D6527D7F1C900C991026DDEF6E79B74921BB404D4F1410B +9D2950BA20EF04FC230CA4E8D6E703F63F3A8207BDCC5D1E9BADF8C6D9E2283C +A9D500BEF4E00A29D1005B2D5E80C60EE5B35CB347DA7B7973692F41BA6B4C5B +16E0A6B2B96CAE2BB0AC882FFA9DB50247804437B19B05EC3249A8F6C19D1E58 +4729BBE4925537B69F58ED323A77A860E8ED78D3C4E86C45F8F427EFF375E618 +E4FDBB7CFF3A4E2C9C37EA3004AC75BA08FB2D116455267F37D817AF272C4CF9 +A3DB2C3F683E088B4B743220BEB2106E18D8BD9DBFFC1DB72430AD9F641AD4E1 +5ACE49F9114948A9C8B48055C969711F3EB2B7F725E6441C7A86E1F0C4E53958 +947F12FEE137D5611395B5D4AF05F55BFD8B5D9620580749CC37DD096E7871E3 +B2009A73FE91BC2E23CAC6F815038CBFC911A4B400A30BBE38A7622F51BDA1AF +893065EAC1AE86A73F22A6E282ED1B46B35CA484748BDEE6C056FF6263920E85 +EF4A82D8CB9F9BA7D20B11E928EAE18971183438BBAD0041D3A843F019E23173 +3B13DF0B9D24C86693AAA4CDB5FA11C5BAA449F68AE47DDEFB80E99F59B8E7E8 +0E8A083E0BBAAB211CF82B37B92B2513FAD2E847FDA67C25305610BB86008BF5 +30D2BBC717E071B373EB848AA0E871A0C09C9488F744AE6A46F3BE82106508FC +50C748514FE65F96F52FA865CA60C831A0F4C11E1C500C6C6113EEDC75AD2051 +67E4DB9A5B1555F9614B6C0C3D1B12DB6194BE578E985E53679C66AAEDD60C68 +0E3AC42E06CC5AEF1167DB0002D79973AAFAE17B083ACD5CF95F661054525867 +FEE6E96EBB0FB243371CDB940534214E9C6EB160A18EAD2ADBFBA1CDC709845D +FE9DF2ABB313BD9809DC40FE278A7FAA6C61B7E3DBF96EEE2C7F17F20581362C +E9EEE3D4E7B3057509F5498AFF226AC267CDD6EFBE12F4573301D4535D0C2AAC +C82FDD61E39357478A30431CFC9040FE2BFE4509DA82C54241307E5EB39BB22C +D604C6091038278EB66053EDAAF62DFBA92946772C64A12D814D907563C30D50 +5924AD6C0F10DD0F721B91AE8B9654FB5B86375DA94D595AD1999CD46C94E3E1 +F1DBADA3287C010DBCC163FC68D3584E1067ECD33CBF6C231E27B27BF89548F1 +71DE0EDBD2AC2AAEF09A56461F30C2286BF98A49AEE50B9DE275D8D04CAAE61D +3BC5688432C09BBF7673D72D308172D9F04101966E9231A2A19C92DAA8BD21DC +B88284250523E122A154CC8072271F53EE8F4EE562AD06C10D0F5BF0C635DE44 +D198EB6B947B7DC15465F08C5CA3466339B6FA18F7B95708A9BCF8AB81D1F9C5 +570EDF54B50D657A89415719D03B15D582DD66D5FBF26449E4D26DC46ED4F454 +9081D0DB9B054D69874E868E3810D1696D5E381AA4D788154E21B0D28CF90CB7 +AE0BE0D6F5E62A82BEE840DB125672C93BBCC46632765684444E0FE4B2BEC283 +D5075E0E5A34D26250B128F5AB178D11BE1BA8E561276BF49FA3B58C02BF5DB5 +0A505D1F8815F6C7BB7F4774A97B114E89F222A08E5EB8676A320728CD2826C0 +EA8816874C355C40D0AED9D1CFFACB1501C592678E3C111D94E3F7189CE094AD +B9DFDBB44AA289349CFD2A9993BDDF072B7A3EDAE60531C593453575D9742CED +FF2ECF2B12CD59CA4FD7952462303F6081D0232084DA9DB8A4693FD2D3AAFE7D +A2A61015F67FF76683FA6EC38B25198EED132AC393394129BCF0AF0E6F048A09 +E5E5D074B2B1C49F9B86DFDD559F243F270A6190816D4E86A11E1BECE43C0E7A +1BB7E691DC79DB786617EE61B907E4A8DD71BF94B4F032229CB18E1A4A803B38 +D9943851ACA9B591416E20975B8EB628BF751CFC42F929AF5D04813EF388DA71 +B23B0AFA8BE1A9B36A19681DD00FEEA84AA6D65CBD7990877D1A4119051B81F3 +6350A67EF0DFB24F5890D539B63EA6DE95C5583A8320B3924934F9A68C1BF5D3 +6FD4FB3EB40AEAE4B3E85A382AF9735FE1AAE7FC6B66FCB1E33D04E7A89F35E4 +5D855A455541209543EE482D0ABAAF77D76E4F2278AD4A59EBEB2C921E83C28E +38F7BDA6500188BCC8E7B4BDE917FD343B5DC6E74994D8A9332EA7622335BF9D +2CB069AFBAA4E01ECDC4D5DB0B34337A12B6168DD40FAF8801A17BF219A63938 +4779A96B9A7F1E670531956F374C727DD893CDD06C3EBBC48AA8C7FCE062C19E +6DFF6F14DCB27EE097771E83AC8CCA0BB363FC98ED29DDA10459E5AAD3BC1415 +651C347A04466E35C1B3744ADC671C461120D2359C4DBFD0D243555D9B182CFD +189022DED77374687BA5758C88FC19E3A6149E526E11E87A9CAD9B19CB47E00D +70CB4E4B0172AA46DDF138EF9A4A94D7B59252D9E8E170CDB048BB7CA28F4538 +CC3A0B72913DD82E327A3A62E7EE1E950976E5228BAADEA7A1C761175556FA84 +FAFAFA55C9A9A5F9F2340FDB199105E4CCA0CF364099EB3227BC0A8AA7189DFE +3CEF5E1B68EBFFA7D8E603A3414CBC37D5E5A1261F66E5B739D6BA2F52877435 +FEB61C789D6CC48482A28679707F9C8E0073B75072B9E10AE09FAA28184A8C00 +66FE6FECC229635097E1E5A8DDF889AC85F6AA555C433A0C7E7A73D2F683D887 +45225F82587B6EDC9F24A18C24699ED304E05F7B0A5C5F20A6DB61EC2F8EE502 +814CBB41B0481B3BBAC69AA4B4F6A251B41B5ECD0F04E9C256813DAF5374D9D1 +8A5057894B93A1F5A9BBC56E63EC2B11B09818D20E984D37943047E7F010FA87 +74E4918D3E56679FF00FDC1D94B0C52206B4D570FA3CAC26FCF17FE89D73DA9E +7AAFE36245EDD811F91D9E83C96704CFE68A29778677A6C02820EF9B09D471F6 +D03191013A6334CDA003270C92CE05DE4B6194BACBFE4CBB80FF15D9A31A4DF9 +82BC8BFCFCA725B26874D1B26456F6FE83216F677210469963DC5683DB7BBFAC +ED2DE1ACAC4AB4E24195E19C447EB4744E5026326EEC560DEF375749AEE07A4E +78C8FAFB5056731503FBC10F47FB37D49F3855582FDB5F8D1B204AEE50D11458 +CF253A7D990A84F4C89295C72AF21FCEDCA1C0CEAAED6B1DE83FD59573A2A566 +16C90BE27AF719832E6E5A98E9BE7DC65108AD80F40B52EFCEC672D1D94E299E +8EC5DAE81EF454BDE9184A00F5F8BB51BF564603214B23D41C026BD751308706 +3BD8678F5794641193D38F99EFC088E5C9B5639374951D050D19CB54BDA58EAF +636DD6C8B5664EC1529C2E964DB260652DB183CE0887450F1AEDA8D9575C5B32 +EBCB5F71C9C1DBD6341AD5AC442220026A32805085E0BFCAC682C09483AF5CD9 +47ABE381D20A2F905E533D297BDF5AF066A7925DE0223321DAC4C282C79E1856 +3090310656A17D312F7BB259742B7549A27DB6CEDD2803794642BA7C78EC96DD +A8DD2E13E16E81512FF2AD34F123EAC904FE853780C2400234D36FB8ABB07319 +0D46D294513300E318D23766FAB236ECFE7A93705FBC960341AA7E2163DC9D81 +5E2A578EB0FDD05E41885E6A5D88A946025B27767CF4F495A787592F0235D22D +9923308AADB018D6ED705F29B38EAEB3473BC53BB341DDA4C1D62F5CAD1C22AF +192338BAD441B3B7616D78B717920C005EBBC853612A0A7E41426DD96194BC2C +3ECD5784183D76AADF3EDE1828165A3A5B8D864CA7DF794C80C40E766C3A6410 +20DAC3B63B9BC698487D7E1AAC34F10E0799636C45AC6AA60B4CCBF9979D67B0 +F2EBF45561323648A125BDFD4E34B23E9C63CEEF8723A50D35C9DA31F829113B +B3F4E2C999B1A31865E09A9279B006ECDB6613894A2509C19D6AE205BD7E9315 +0D973B8E82227C6499A9FFF9AF0F5282812EA44B1BCED229D17590713A2DA5AD +30C6C6BDD8D321B17CAC678FE0ED8951B6CFE4AE7FB2FE96594A5086DD767696 +CA6DE0CC91DE3A68CE8EDEDE33E4B49E5E0E3B6AD558E7585BD5A1AE4F1D16C3 +202F267953CD390FF26200E172CB890782E0C43B51C95C55EFA95DA98CF4CA5A +B189838F3832ADF48D8AEB00909D5C07587B26F63BA03A13B0345E9B99E7B1D0 +47427A74353825472C5AB49DD95A90D253CEB066C49D6A4356E072DF5BBF394F +3FA04F54C4A822DFC7FF45AA337B9006BA63DF5D6AFCC7870B2D1AB4A954DB76 +C5B93562408402578D610DD64A09ED30D71D9341F1CFB44922F42DCDACFEE2FE +B8E0EA576DC60840FC3269FF313FEBC57C5D958016C859D2D80BB270E6E93738 +D314BFD28BDACD48697001CF13E9B29D1D1C5785ECF6040F43DA204FD29A924C +E32C8A2AA8ED8BA00C16D46A4EED8CCE9AF13393E8FB6F5FFFEC3A421105F8AD +FF596DA77FAC7567745BFCAAEDE63F080F24AC62A05DD8934D616D1B6A336AE9 +B1ACE43ACBB79549204AC02B7F4ADA2B29E8B081EE02152C7778954F9F61FB67 +6014CF4FFAA5A446334847DBFD348DF16BFFA90B0A8D5E76721E62CC46903CE4 +4C076460459EE651504D119F10D5D046FBF7BCAA97E7D0CCD822A6D442B9BC8B +9EA43A5BC643998A7FE6C97C967B3AEF0019270BEB8EAB12F396CB363D43F70D +7AA971F68B33F1158663FA39DD34934884F5DE842F +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMTI8 +%!PS-AdobeFont-1.1: CMTI8 1.0 +%%CreationDate: 1991 Aug 18 21:07:42 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMTI8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMTI8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-35 -250 1190 750}readonly def +/UniqueID 5000826 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 +525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68 +F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360 +84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57 +0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0 +06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94 +5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908 +D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C +93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8 +FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA +E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737 +46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193 +8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E +4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9 +1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7 +9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5 +BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2 +09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF +3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C +E8929A4BBA0EC700D5662AAD9EB38047C6C7C63EB3FA03B5EA9E56DF0E30B3AC +058198429E22081FFD4CCC1F3A7A88AB8A22C7C6C6448934DEC2212E89998259 +653D779091F4F7F6C0A76024363A9001817B1D572847779F98F02FF9A1B45270 +2F7E42A25C687D6E56C89BBB580DE865D7372A02F329E71E0BDDA2CC8CEE41B7 +FE95846B78982FAF79E544CEF8D72A94FA73E69ED3A5F834BBE082CE0E8D4EA0 +2F619CF8441B5E057482D71D834BC6D93BF9F7777FDD2A5216911D31D34CDD76 +8D0F805FF6A71D77AED0D540ABF995DC77C30ACB207DB2513D691105199B2555 +CA9418777932A54E99E56E5171261B3708D8646A28803DEC8EABB44E80F3132A +B273B74A56B5770C09508637BE122DEFA8A0B3438403DF67AD2FE9641009CF03 +44E39E8A56E244C56B8777F486C958C5196286F36761F2568FE1A8A6E74D6891 +19F7E393FB94388DE651E078D4D40DFD141A0FC074ACB3384BE70073C08E2EE6 +065EEF9768D260C08E40B2461EB226D820BC43EBCC49A943528B8E5FFA474300 +BEE3AE339C2E0C4B247A4F8F9CE588AC67CB6FF85ABAE18AE0F77219E44DBBF0 +C6B5958D89EA19BCA780BEBC7C29EC8919CB9754753DCF4781F34FF4F75FB52D +C00A65650B9AEA0411B117D2DB6A813F17569F8D0BD600FF94F063EED10A9F10 +72B6FF606A4778CD73CE7A03EC5F31B6B4C9D93B80921FB7109C1E9926C77113 +5AAF1CA527E5D262674D0B05681E38FE2F14916248E81C52079AE46C4AA3C1F6 +9BDE6B8A497600BF36E594079AD3637D27E2F4FB0E89F80CD10A1991CDFABF46 +C36D32D5309D24024BF22F920D954E50EF667272BFB5CAAD0824641634CA4CB5 +E7491D66A5ADE670AEF9C5B1F1B45497FF99C2361EDB1FB5C8F5D9EDAE288C68 +EA3337F3AC1EC76037252B7107C3F96746EB0A6BB2DD05F1D372B0ED5C3F56B9 +CD6BB3EE200D9A60372D4EFAC7739E2629151FDB2BC336A95260119FCE6A9511 +2937DC9F522CC0CC6DDFDDF5673A962E2DFE6EA3923A5CFE9C4EC0C69BD1DEE6 +9F56420E6E8F972A3B7462F4DFACDE97B4F821E1109099298C77FC831E6837D0 +5BEA4AE2D59CBD525A79C96E491C20EFE0138F1F9A9AA1B30367982357719380 +EDDD75F4547F1997BEADCB8B7FA9227DD211433CC05C0B804E8BAAE95171EAEC +EFB60DBB8399E83709895D5B4DC11E11FF91E2A39861B12FFA587E8D752D74F8 +71456FE15C7B6A885F2BE67C63B2D9CDC1EE5688CE99156821183B552DF78DAD +64F178CDF98390D8C1967CE7D9BDBA99AFD5A9908A950A11FBED22FF6A61D0B9 +3BF4842A22E2295DD259B0DCE2773F9D672B217B7F19A4D22BACD2DF929FFDED +EEF43C052D515BF739EB5B397F9B8762083965A85F96E6BD48E0402C85FA03CC +5CBB51BF4CDD01B891BDF1959AB822E9E6A8B9CD914EC25E861DAB64C443641C +BC2F1ECFDF4C3966E11F137787AAE702564B3EC4754982726AD67DB2A98E2EA6 +3B843D824EE3FB92888AF133ED29CA1B92A87C50E71640E418A5ABFFF469F972 +8AAE580B2E255272870AF5BBF923F9805104847880113BBFEA1FFED8B19915E0 +A0F0436BBE20C7E3FA1DCECFF072B8FBE3A100A33B181C0816CD4E28A8E432AF +BF308B89336A8710EE740E1583A9ED41C97F96D546DD7613CC7B214501E14087 +1E8F1002BDBDC12DBC8F4CDB5D2E62EEC19007B3D89407B865721C28C7579845 +04CB6EE7A3AD6032D3DCF9D01F83DE750BC8F0DFDFF13FD400AACEC35690983F +B5E04373CCBF469472B8AA0FA6A398BEBEFA8D914D548D0BB5589E1C40D7F625 +4F8E0FC08108C2288DECAC258D819FF92AFCB63954960A5B194934FAB5F4E757 +FAB4AF44176447EFE9E20B44F0E8BDCCC0925DD4703F6DA0B2E61E3121CB737E +9E5FAE5B899987C8851CCE11408B5B12D5F67DE0552ABEAC69596F377AC65A83 +25E8ED90ACA8DD09D0D9AC984C2EB9A01F3502CC81422C68456A9B15796C8B08 +0060EDCACA5CAA76549D613EE7CFF973E9091B2B8EE4B1DD0117DC140C16527B +47B335576E75C4E558E3777AA9EEDD3DA21B63E7DDDC10CBA609090099118E86 +37A4AAA5300E6DCB887E36A60601D4A02E98A547AE834960BFE45F644A23211A +3D039D63BE8A49BC421B19E6FCD8132DD37D65E88C685B1775B1D05FEB41C705 +E3DEEA6307A5B44AF3153407B8042099128F867D3924B477FE258B3A23A47757 +B8F09B52A747698DD84E7EE65C4B30ADC97F7D6A63BB621E9EA9CD76BF8F3408 +0FF1D4AAB7A5F1417EDD399AD210F59E06B606A26C69368CC896616E802BFBB1 +613B4CD2AC76FB267B7EB1178B703F33B8D199BFB0968A82B193A1A32325442D +C4FEA2BB70F971AACFB0722724724FEE9041A3232BEA3A9870939C5F0A5C00D2 +B292BEB07201BA6FF9B43D887E7F18A28AC2B9C998419378DCFFD57DAA9A88BB +B97758828F0CFD6B810FF4D2A0B2D62D06110F2C804EB4E555E1B2E0E316E503 +D30F7878704FD816B6F19D49A1F9B37CAFCEDBA771421CE1C43DF0BCF2B2912C +2E9F1105A4A91EB3BE467C8D4B3312D204915C237E09327BEBE496031CA2BD42 +EEF53F0ED5CE1F9D6496624A97042B0B45B3E59D01D41ED3DD16399C6279A9A3 +491272AE972C2F332CA37E1D074B97C62E7308EC803C251DD44A2B9B2317FC72 +345F338F335BA8A1C0F4E6BCFF7DA5CEEC539C08B26384F70724118E3D6BFC45 +608966E2FAAEA78A14234FE7547DA9C2D02EB4EA39835064BA994175B8BEFB61 +D0450C331985D54E2B1602D85EFE3A09FDA2346D13E203F3A52C2AF678ACBC01 +3980E95BDC04F2BC968C1341FCD4463783167C3361AF4777333EA568DA52D2FD +A2B34B7064477C2B455385ABCC88BCDF277A1B33C90D3A6A431DEC8BB5863B70 +E1C769932C49EC1540B1139F1300003F59042EF79953930CC90C087370B46999 +0CCA827C1F1AE29E1CE29098CB4B3CCB91A61052071A550DC52284DA71169D75 +EB5B418A7CAB2DD4D9245615DAF8D846D45EF49C331E11EF875B2C62E470B0F2 +01BA91B2141C4380CCF5773C0C7B90B4447DBA415A2372B2DA4AB109D13DA0C0 +6E5E54C9DBA4FC967F0350E655425D1A896A2E6FF676657F4241A76F9F018190 +6AC7B8F53052B8DCD54168874304FCF0530E38EA0A422D292DC6E310495B5AF2 +E2F54210227F0FE30576CD6EC8E8BA26A398BE076716C20F0972F153C404D539 +ABDFE8BCB69D8E9A7D7733A7123BDB6E7755E35B10C233DE30BCB34227D7E550 +56DAF2DC5ED812C1127B1EECE52E1485FF2DD092984B0DC1E58F13115E939B3C +9639DD3B13604CE8DCD603A13E8DCB7520461CFD6EC06F7B0B729CBDDDBB89CC +9A70CDA0840B9098C39A01DFD556E3DF37966F07921067DE045A80D5716C8F11 +BDACA5F2AF25C7527440BAACA8C5F211A3C30FE38DDF87F34FE9E3DA9BD3ADB1 +7C151D5AD23BE78FB5672C9339F8BD904AFAD6674453A3BB589C1AF295358C1E +4F6F89BB020E1A146B5855B46A366773B65CC0C449319CCDBE75B3D8AED76104 +E4C4ECC307FBAD006E98A40268DA58CFB135869C0DF12F3D9F96AE010BBD2AFA +5297D587D5C599DB3687EDFE865BF7AB530C8396A7DCBF84D196D65055E078FF +CF1BA51EDE702BCDE009D9903EA7658E906887C4BD16E91D9FD49FCA8F75517A +332077D8284E564D84789C561E93E27CA36D32DF337713FF2E91861683F6DA40 +C5E8F505640B8CE65895FACF142565AAB691F7C9376978F98B679CBE1C163029 +1E49797740BF747243A3A569811EBAC9119E7FDE8026E752C198D116BEA29A14 +03F40F6C30C571146C72E6AB8F581AA24D24B639BE55E925DB8640CCEEBF1277 +C5628599AAF6D1858ACBDA07C56A7AA9009221D0DA3B +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMBX8 +%!PS-AdobeFont-1.1: CMBX8 1.0 +%%CreationDate: 1991 Aug 20 16:36:07 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMBX8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Bold) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMBX8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-59 -250 1235 750}readonly def +/UniqueID 5000766 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB +7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D +EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C +7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E +AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30 +E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420 +4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272 +5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762 +611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025 +D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9 +EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923 +35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606 +ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404 +7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178 +C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10 +B3F5A131BB19D1E5414C86C5F995521076340536E10613E427782B91F1098562 +3E22288F48ADE6EFA58CAEBE7C070A920C3A85F4327940DBD99179C26E3ABF17 +64E9CC6A45F17F19F3EC1C53B17485B813CB01915D55CA2034552666D5E44A96 +A0FAE064F599AEF095CA1816F7066EF0AFB220FE1DF11FAFD503505C5E6793A2 +6475E95FB467E2F3B5E7C6663A70B15698A1D158E23D3ABE3B6942B24832AC3C +13F258038DDF209525C4124806A369ADB0423C2FD0F823AE3056F380B7128089 +689FD4E84B455C7EC6C5BFEEBEB422E156C67D7E56B8267EA704318ECE801014 +D563FBF79D9AE4F8C41CC649EFA07C8FF9FDF6109E05FE58B92CCA7E26204CE8 +05A20B86CE43C9EF809DCCC2E28021EF11EDBF36F6EF75E9AEF7FA793CB81E47 +E2618947764B7CE6C3B94321D6FB8B824794362CC8CB6BE9EB3FE6C601820830 +E7C6F16E48574F329A642AF235347CD0017155299B70CD489095443A726C89B2 +7F7110D2C8643B1FA3A938D53C087EA3491B9EC4E5B213815A281C03E8936424 +614FF39012545B995E60E3FDCB92E45F51BB69F8683F62668FED702AED16E709 +8FAAD0CD9355995820FE80C4496D133F1714114FC89E871E2F6A994A4CFE14A0 +0CB974E2ADCDD20F11FAC0101A90C215E40234B027DAFD9D31530B96239816B3 +6006A6A69E800D7EC779FD10C721F7A476C02BFE5FFFB04DDF1B12D0779080A0 +0279EFC2D4BD5A8F224083C15008218EADFD8D6089E79A4BD0EFAC995EEFECE0 +83ACF32C0790A54F6D04C945ACDF739E06690A00AE579B5DB9C91D21731DD420 +5E2891FE9E43F0F78B797C299F8C6EB6B0AA2808E28E5A01A2BA1FCFCB54598A +E5C49FB68DEE2A0101CA67B827122072AD6E53E0DD6B62AA4A41EDF0A3C13DBB +B42D8C0FB4BED03ED493F38EFDBD7157D84183E726CA215005699ADF49B6A5EA +2A2F0B7599A783CBE0FFA0AA965969AA222977A13F88EBFB3C134B4445EED5AB +80C9882E54A5E1DDB9014DB04FAD3D159857FEBC2CD56EAC237BAC2177E02C74 +0AB0C3195B3847D5D21EAC3AA0F3B916664370D6B366F877DA0BFE4A282E96AA +F804B144DF7DE52415E39877B8D85D55D40E3B8BE0809BD5AA0E58278A9F5EE3 +33FCB97E79EDA72DF08A258DD09E18D69E8B2EA33E4E1131D58EE27B80FBE72C +3F513A556AB5A7A4C00C6332D373E96BD0B9F037BF86ADCE6481C7CD44A0141B +419DE72F671FAD0C4041A819F9313FC7357F775FA341F290FA4F15DD9F5742CF +B969D56DB370C3A8F94818A1728B00B44FF035CCF32AA1F31BCCFCE4FF49FEA6 +813943645ABA47BC8E8E51A709EF55D7125156925FF994974EFA2E9BF696B153 +B5189911933C09246BA6AA23282496C2551C4F879D2A556217DCAB15EE185070 +840051E3F27BC72676B39817AB3A2AF8824151395B50DBC3999549F9AE1B6D90 +47EE409A7E1816B588A4864C783FFE112D73928193B1DD3359D9FF1ABC73C3A8 +B29027ED24B04E3AA855DC1F719AC8746BA11FA5B676BC09DBC80574114F4290 +65C30DE7F659BC1A2E5FBFB5286624B1AC8767508B0F178B3665B53BAD6363C4 +816D94B542F6AEE1E824420080AA591D66F6348A7C1225C098309DC1C491E80B +5B1EDC8B75DD42A89BE2C598E58A3E4DC4B0B8944318006D207699E492031E15 +FBA791B235D7F677D14AC516B76700859974FB8820438F7BCD3D3B3D7D7D008F +3880F72358A882ECB76BFAE04C1B8E0977155AB62D07D7AE038C00C267C6D9C8 +FB31C40D91A6371C0A3B0A8B7E4C92242A924D48BF3335E80C33EAB8B8B11571 +A817D8993A9C238DD5D8A6B91BDD18223B0C21A864F190E012AFB44216A9983E +5191F4D77F7A6EE8E2967438C8975EEF92E6A436717FE2B13B2B65B1D4BA6E58 +48F4E97D41910B3C79E72B84B23D446B96EA9E74A502049A6A670F40BA362A74 +8920731738746163937EC778B249AFFC20603A6BC546E139DEA7F5FAC96723F8 +6544F0BF630B274977966135115497C1AFF7E581AA7B1B4C456CB15474929C2A +796E752106F068D3B232D3979B27BB4C28098A657E1D4C76CB470D42BFA072A3 +1E0A1952C2DD97FAF260EA58C755DBFDC679E0CB0F20B8A25C8DCC86BA990031 +F16B1F3AF1714386545B42ED4F0CEDB0B3935D3BF86FA4D884A58A56A0737792 +094F830BD1255B695BD756987CFA4AE5030E1B24E9565289AF240C76D78D7E6E +6299436C5853BC086D5F22A5CCEF4234E2FFAFBAF3F4F0B4B5299D47A2C6DF9C +22EFA43E822B6140EB66BAB6268F66DF737764E84134DB9AA6BAF0663BC73421 +B7888BE30321CF239AD0AEE6B1803EF817F8B6B6A6F274D87E88EA67135BF116 +B2BBB8E8C9EFCD757A6ABCD2F799CA0CB381628507118D1082904B728534C129 +07DC200EF69A137D09D5B31A8E3EEF61C1AAA3DAAC733CDABBEA7577201938EC +8C58115FDE70557319A6E6F7B3A746CE653AD77660FCA75ADCD1FE75C1D42DB4 +FF0CCF21DCB92274CAEEAE47782B0033BE1A5F08F98427C38FD7D337BA2DBEB0 +473157DF41B432B3859823FC2EB912C3B10FBD381CE5F4B7712B1FCE8D9AF5C3 +9FD44A255163880A8104069DAE3199515D813BDC58B0348BE7C1BBEB4105B1E8 +D33431E5F536FD5FA5C60ECB139F47402BF42E1228C2E08C7CAE985C9EB7E3D5 +1A98D830DF57DE98548ACA2C748C18FD938F30CE93F112410CC35C8D76690715 +7A0D8F4726F2E31A722E8F76DFAF3A88AE7969FAE1EDEF99EA90A19A9692899F +A4A6F4E9C5724B5D8688A0EFA7D2FE4565B05FF5906046BD1AEDE1E992C84289 +E9BDD813EA9E87791229ED1E267A3023B53F808F1F96EE21049F02E6703A22EB +A1ACA6DBB4310D15DC12192150BAE79EC915281ECBEC904A49301438F53986DF +E7EB0EFC44985266EC846A4A12AA7B9A90E3799FFFF4110D311643B2E2EF8961 +A61CBA357C947A91056C798B23641C2CF30FB4B38BD53E7DB9AFB0B8F69F1074 +7CB154A179B796DF230D1ECD4E6569EE80190C6361593946BCC005EE3732D343 +16935D2FE49856756B9F87DD6B8DE288AA3A3201FC7E77F75A42CD95BFB42236 +0C1DE3177DA2B50F1C68DC36BFC189EAFE388116160F65EA2626D9B7CE44C375 +7D5FD83F8E9B8E9609A9B46777932A21B73ED98B8C714A954EEB2DD9FA3937A3 +DF41FE76D214E9C9D8DB712B275E91F9E32F31D98E30A7D0B3CF718A52134F86 +D1E088F91FF3D86490EE0852AF23D9856F271A1617F6B06E0CE1C163D7886908 +77E5C0C522E0F0AF8E7B05205FEBB92C68FF99DA858BE00E6C7CBFDEF8ACCC60 +FF9E48E4F5B1FB95DDB11AB4CB09D9E59E4B981E2A59F77881E2CB31057A6416 +5208B180D301DC13F842CEBBF97AE7A3523EA8C6FEB5DBC96437EDBA53F78730 +93EAE0A81715E303894E12977EA37DA3559AE4B5AC49B84E44B71DA99F487A55 +CF35FD75E5EDAC5397F373B018CBFF45E00F704D3AD2CBA79F1119C31EA1475E +3289FF427407ACC5F516CF88F3F762543D765609CB618ECD786425F54CC509F7 +7734B0E217F638A61D169706EEA92A552766FC0ADB2D87AD46D8EEA079CC96FE +8CEC5B7E61A87FD26BDA35F8508177C74B42B694A6BAA8BE7A906B30C5CECCD5 +C0CC4857450612B69DAB66EDD6BE13E9B106A26DAFF419095859D5D1D01641B5 +B34155887DB441C5ED0BCE1A7B9E12497F681BD03FAD87AFC6BAAFE23B406427 +763455BB4B9DA86CEFA6484BE30BEA1E43FF8C3007147745A35F283CEEFE1866 +26DAD4A22200F50E638BBA2EFF73C1DC358CB9C1D377E6EE9E9A18B8ADCCA028 +FDD4BB09DDB37C0DE0E56512AF00C57D4FD02B6DB966ECFD0BC122A55BB9FE05 +F20D682CF3FE2954F32BE305CAA9E50BD652D52460152B9149E891D419FCC078 +E9EBC6A940048EA2173C0CA463D7DE339CCAB9A86467CD1548066788C54FCF5D +8C87CC51FAF946C75EDA7F6A9165D42E5F5BD629B84F298D790523D5AFB2FE10 +C2B9D578FAF1748BC0EB868D498BA46999F36722A7C38A6A7B34B85238F4A640 +ED5327411CA5D44E22219BE1157F163C145DA6E93ABC5D0DE2B3A7AB01EA33F1 +2B46502148336F06D6501AAC93717117BCE587FA86DA114DD9E264F5B1120A08 +AC1CF7C42992AFE0DBEA926A731FDB4996BC9405BD35245A6D08FAD20D3FBB49 +3075948A25C1634F0290D5AAFFCD7ABBEDDD607A7250D3023BCF2D2002395BBA +B252F6D039EF1FBA7C71C94F45029FD935F5CC48F6277B5C843881569C5C4AD3 +7B54E2248A81B42FAE507F105CFEB1C3EA4D99C9451A05829733D2AB14F26B26 +C02D1496C8EBB12425A2B90E94E76C507C14673665DDBAB34668C44BD1834992 +3542D09B76604E40F61B2869D09E568E03003F15752B066E4CE03836F49E699D +9A4AE3C95AA7C73CDB829E7384288A696CFBB0169BD6A38AFA1D514CA7F1145A +9ABA828991D7C553A30F340FD31ED6C6FBE5403E983ED3792A3B4BD34BAEA85B +2171D8C91E3B6D8C44E9B464B1723D035BD38F65561AD340C1396CF2153E166D +EC384FDF9BEEFC97CD9542FC26601AC4CFF9AD232AAC0C2E36FBBA289DF156F8 +B5872E75BA8D7947433A935387F49100C80213EE8F55622A7BDA1531FF68E5E3 +6810922DCEAEA6D335021087F623FC7FFCF401C40D848AB54951788FBD03D87D +6CB419871FCB786D3E9B3C67A0F9473D1437B207904ABC36532D01FEFD1CE90D +45E201D5A119F18F22A820A28D74FDA3B36D4560AAA27C7DB2881BE51D8B9D5F +D8BB25D3CDF776CA9EFD032B9EA3D4337A393289B02EBFF68727F8511CADB4A8 +82C08DB25B1193AE786E9AAD1A929519A93CCD44D1FED5C82D5FC461A9B19852 +48E075C46A8C00A10CC95F32B2E63367F95971CD81B60CB3D5820E7C0A14E2B0 +00681E53305C074E6DCF4F2C0E4D7F5468868ED3ED09C1CF7D19ABBDF904D2B2 +5250126EB91E19F24EFF107D86BD4D5AA7BE3B23E2782C7EB3018D1E23E11526 +03B929656A4ABF84CBD36304951204FA43CCD202225B59E6EEAB55BE99894501 +6FCB70F8F01113CBD194AADC48250D1DC39C07D578D3B883796D2AA489D197F0 +CB13E7BCF91121B7019F92431786E58CDBDD29E46463DFBC06BC43254E7D5EF6 +8377EAADD1F4B6C80C6CEFED86924F4B9BC4FFB42250ABB944862C39E9498CBC +744E6838E7AC0BFC57B1857898D586C3D1CC2F5C344A39CCF0955D95649962B3 +9B2FE61EB993FC2A0FD2DAE84F26CE93489B12B921ED8F7B06F08BD1D3967366 +255B1E5C01D7E1999EFEB6D5522901650DAE91AF9179787DE84D036469ADA85B +8A4BC32248E176EEEE808C72D095F941BE5E6BD14D1C82D5402FE177C6EC2069 +842B7073935BA15F5C49F275F878C344BE880F01DE28C735B1B30424F63D8670 +C4CF154CC98F030B2259798F9E62F14B5FF3DF856B7BFF262B88F0EB12C7AD29 +03D0C3AA02A3D51011057FA9C1D06D56BE593137A8532A60B6DEB05BCAE23DF5 +02F05CE14181B7F00ED410ADE26B070C1FA51C22562698CC442BB5BC1E2007E5 +BA70DA947C0D4613C0B1925E7BB88A7B82383D165B3D8A045EBD8DF273F5E174 +E7F66051FDD55E9560102CFCC1D5523BCD843038A46C8BBD7142AA2BE7B22A11 +D822E93F01F25DF7F1F89833B166F3CD0B1631EF2B15DE9E33F4220AD53D7291 +E43FE0BD7B47CD0B89199E206B36FEDA5B471BB5F4B14D96529FA3B053DBD9AC +3F0D45357F2008EC4A4194A6EA0497E1977D6F4E5C35C013DAC1281CB16307FE +2888BE19CC22892556C9D8B1B2BAB7DEDE89F39F00AB6C6B1AB3C6C61FD98009 +A8DD8E2BD378B724B72D866CDB1C497EB3A270C6BC423BAAEB11BECD4079F28D +5111F14CBE73EDB6F327316641BEB1E987779D42C71F95E8E00BD3E205427215 +E2EA543A83124CBAC0F79347F9C801E255D553EEC4A62B718D4AC2F54EBF31BA +5522AF73E9680E62B122390743D879CF0E69DE4F4C3DE374EE3CEFF1E3759407 +2CED877D736F939D30774F24A24C9F83473F9BE23AC56BC67BCF3D29A18D28F8 +5BA0C2AE83A41DC4C3EF4F74A4AA78787D0B9146BB375F3322FE40E994C0E12E +CD0AE0A276911061FD23186374BE6EC5833E6ABC09E1AB5C46B098B1A1AF33FF +E11B1E730819A27A2C768C003D7E5E3325AC3D51AC9DFD993F74DA68CD1A7698 +D4BA04DA1A690A595FE3340D702D57678187ED6459A8C8128F164F7851871D91 +B922F2F30A99286EBB3EC8E1501599109B4575096B89AB5D86201FE35E193295 +886322EF4F72623A7903FC8AD577C70D80ADEA4570DE5BF89455CF407275F7ED +7265752232EF39EB140725C03B25B832EED91CFBED42042CD6482B161A649891 +F12A097ED1A99B77B42459A69017D113E14788ED463571086D293EB9A29762C9 +CC304629324B48E67631AC2A56D246B4A77746029DF182DEB8DA0D9D2D845CAC +69FB6D6CC03C0C1C021F6BD8838520008882C2FF0D7D5B5AD98D3869E5C263E9 +A4E83BDB6C1074CF2501247498DF02449A1215F4345E1024F9877FF86D441F17 +7C3487D6B2B7D07BFD0B33EBB519ACC3E7411DD4D2C096CB9BAFADEC8EFDC904 +0ED54AEEFECF1E96D0614784B1B9DC8F1D856F390D2C0273FE99FCC892763317 +A26940B09B46D79342E159D2B5B4B307C5BC1523EFB1968504B2FD69AFB37B20 +A787F7295B6586626D9D0F480E34D366011E99FB01F44C45CCEABF9F24B52502 +C4FBDE3790BBC0B9A4B8579294E692363B4A496EB236F77F319C0B661C42FB4C +3849B8E338AE185E904AE8922341CC0CC18604290526483394D43947F34F534E +8A1A0C028771267B757EC2E356BEEA3C0C42C19CFC53F84D9C81D03CAFFB8944 +0AE6B68D15CDADE9FE4B31F9DCF7999EA3D70A3EB09E20D2DD5119A4425E83D0 +825BF77EF18C6CB6A134D513FB9B6E623CCC3482B52DCE326C6AA77BC464B8C9 +AE0D7A0E9D9D96838B2612A1C56DD1DC475A146DCC08918537F7D7D8CFB4C632 +384F9591649CCD36887163FCAFAD51207D00C7567C81C72EF4FD7079C322BDB4 +9F92D883A7230B55AE2B7CB33224843B8080A748CBA3338038E3CAFE39759254 +8C25295A497199F99F66DE767BA520FA0889CA2947FA4E28AE74FDF80472D5B1 +5047D83CD272ADE577283B6FB785FB10043E7BCE5090912D544CABE81A784EE9 +27CB0525FB5461D84A221C8A66432D8C0F3D11801B08B5A0A6E81BB30567D0CA +B58D2C33D90C300B03D494008433071BA6A245EFA16EE229CE4A94DE6DFC1A41 +AF69154DD23AEA4972EA5067E894ECF9EEF3E4671D00B947BEA81DBAB8CC01DB +37AF810B5DE58EF5B0089C6AB06E8DAB6A71887741C0CBE58F9864B7E4FF3013 +D6CE6A489DC5729AE9E21863FA566A00F573E63F172748D8F6231C0F211947FB +8DE5AC7D3C4397A24974BECAD814F9FCCE56B89CA779F39B5C73242B0D6BC5FF +0DF7FF155DE8180122FFD2C2ADA2689DBADD7D26C78586DD0310C838923EF309 +7429A96FCBCCF22F968875B92AD7FE9716823C54D50CE987DE5F487342BF69D5 +EDE136B7E2C92C55B3A378298225A525C1D04E187997302B4F75D0672547F227 +06F9A21C16B40CB112B3D1E0E02B701E657666E4A16E227578B68A9DED734A1C +32AEC59EE64DEC565BB123C481AB0AB941A14FB66667148F1C13BA3C48817735 +207D0A17F0860C7A2E82C5F4E1201635BFA79AC0E6CC7A77071D32DEB1E35EA7 +5CBB675DF5D68E4A88CD8DF04DA8D6CE1156BA93967E4DD90A5C1E72E3A228BA +50BD4A3AC049E501F76E76F55909368A8F76E0EB8D85741F8CD9B9D5C6BD424B +C25889D930B3A6EC36170A4CEF7E3E274DE7616000C14BDFDC726F323B4E3429 +74B7280C12FE3332FAFEF006A7BD47E97134EF23D3E83DE9A8E04D3E914F3510 +15016B4489959321E320E0BBA88D58B2732EF3655703C58B64CF71C1D5A2723D +AB7C59AF13AB1ED12A39ED877BD06E1748FDC97300976CBBD128BB054CCD8405 +6F495791F69588AF6298279D065341A47CC018CB76EF3A1F7B78C16450E06D1F +879107BA9926202B55FA95FF7F685D7BDF1D893FEC66DF13CBCB1FF992D0998D +87B62C35DC4991014E64F9BDBF5D47A64949EFE4F076C5F5610EA4A743378116 +A6739DCF540EFF064EAB053B9ED34743C724E7D2C6CA542D150EF887CA78D53C +A96ED7F1340B2ED6D5A67F5513DA63D4909E1F8CBC25ACC24B743A3B49058633 +B605A132FE9F9B01EB75243BFB248FDCE25E82FA7B589E5403B8C1B822931D03 +ADEC24EBFA8AE740E7692AB5418E71ED25885FDB38087E3755227BF9D7D14CE0 +9DDF48A7CE11128AB6B0A53A75C0AB7B9CD68FDD2A4B29217443CEC5C8680222 +CBFE6EC20F17193ADBAACD485D8333A95276C071B0A8385E43E9D7CAAECDD39A +D649CFB1EC72212C5296D1AACB75EDE6D4360F2EC9F441A73AA7BC2AA04ED028 +4B95F1264DF0F21A969494A1E959372937C624058A1B37414254BB718BBE99E8 +5DEFA7C0EC0D741D7612F73044AC37BA46564ED2307CBA6E22264B3539020A93 +E2685648B95216CBBD4B22EDFE51F4BD6C91F41828A00F844660B32A5BF9C5C7 +D68A46412DABD78659AA24A4D6BF67D2147972C47AC2C3217C55F95A992205E0 +68199AF701DB276C7A53D7104560A645E89EE2CABE14B5DBA333859D81C20293 +84EA8DF06BA4AA429FFA34E5C87CCA5525D360C5848AD2CE6051564B9FD6B454 +A2E4C1913E0EA6F7B5E4119026CF2C8488D5DDB905C64D5F07378B05B9DCF5F7 +552EDE447A018DA29A677BE310D0B6B22469F97353ED39C6BF5526605EE7941B +9773DA131070B75AC8F50177659EB138A07DECE0524EB34DA9F3EAAFC01C0374 +728B0202ABACCD138A1E7F1A4B3C006D794A19596641959CE10A5E83F848A919 +E6C0101EC00465563F1BB028A0882D619CC2D923E9CC4B1C85BDCA479F188E52 +2A90133B45626B6623D039B471F9D9FC144E5228207DF1A8035BFC0301CD173A +7A7B828D27CDAD2A0B4BCAF8C99C62310B04F72EBBBC458C785E5F23BE9D1459 +8773C9C0648E11D92B73D49BC7D587E4E1CE1C0E93FDB67B432C35A21253775F +754EFA2148EC95CE33B6686BEA49224E818533235E8493364C6078513FCFB982 +4155EFAA41B59986DADBE962285C9E842AD3DF0DF9E9075D28E1B45BE27A2AFE +2CF48B90ED76F75C4D40A48649177285FD19340660BB45564D70D179772CEB69 +D701FD356CF5A551CB8B36EA1E30DAECED401294B7715509417F08BF1CB7277E +C73392AE92C0DEA0E8D08E0E4ECE92334ECED69508B32C565F1E54B227F57B9A +BC49EFA298E8364979C63AAF76F1129836C32F04286271DFD85C5EB08BA45FB9 +097409B5491F3FD6A921E5385EE763B6F9867EF2BBA496AA64529CBBCC534AB9 +165C59BE8A43CB0BC47DDF1F6127A9A9DE5E69126B5B1C54B396C9EFA01BE602 +3A7165A39E8F80E58EE14E6AB9A8EAC5EEEED389ED027319E66974B710E887C3 +9EE4AF6AA8387E81CF302D8D +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMSY8 +%!PS-AdobeFont-1.1: CMSY8 1.0 +%%CreationDate: 1991 Aug 15 07:22:10 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-30 -955 1185 779}readonly def +/UniqueID 5000818 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 +7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 +A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 +E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A +221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBB2A7C1B5D8E7E8AA0 +5B10EA43D6A8ED61AF5B23D49920D8F79DAB6A59062134D84AC0100187A6CD1F +80F5DDD9D222ACB1C23326A7656A635C4A241CCD32CBFDF8363206B8AA36E107 +1477F5496111E055C7491002AFF272E46ECC46422F0380D093284870022523FB +DA1716CC4F2E2CCAD5F173FCBE6EDDB874AD255CD5E5C0F86214393FCB5F5C20 +9C3C2BB5886E36FC3CCC21483C3AC193485A46E9D22BD7201894E4D45ADD9BF1 +CC5CF6A5010B5654AC0BE0DA903DB563B13840BA3015F72E51E3BC80156388BA +F83C7D393392BCBC227771CDCB976E933025375FFCDD9E2FD073678A57A333F9 +6BDA68191ED103DB904FC6A75017A9939B1F14A711BC0B140F6C4E6C217EEADC +2B649171318049FC272C351B1417B517204D5DBE34FA6D6B93E1E6086F880CF6 +401E7F67B5A91AD4822EF4FFFBB79015651EAAF84024DFD7A74045CA18515E88 +7EE363BCB8BF9D97ED631D5C1CD97006AB3AC94DA76099C945488544974B0FE8 +A3F15D97A0BE56338625A0D0CFE8566B8FB3A70AE8CEC759E7B52084939014AC +604115957B2FB7E97BAFEE38905AA81476D225B96F0379A68BF3270503F3B605 +A77CCFC93318E4C44A1C17F011F4BB61E95E82A0FB39A886C2CABDCD59D5A7A4 +02936AD8819B50869E5B3080E67ACB7DF8FAA4DE4F95E8679063A8A442696EF4 +E0F13F9F966B536A4BF33A36A9A43B025255B682726E76504D03A6724E62BAD6 +63F90049D953A490976D70C6B1E9B8EB268C452EE5DE8387D12C679EE0BD9CA7 +FD250629BC87CB357480E70C655668AD8DB83DD15E4D4FD79FE1B857D70F2B36 +D49659715E1985E9945F4C694D004220D03FF36AA87F37F403654BEFFF0730C4 +FF9D5D6D172B12C72B56F4EF01F647E79C2C2FF41D8D8209CB316FE7CFF71F6E +5200D1F92FD7928FB8E90B3B0D6C51F2757B30DB38C12874628ABF1159B244A8 +0957D756FE6AF818421A7D15AFBB29D24FDCB4BF305BF5C7D2AB5ECD83E3E1C0 +1C2AF2321C8B497AC074CBD0EC5879AC61E5F0549F39BF447A4B6A88870FAEF8 +3F4BD675FF5F0901E3B88DB5C6BD3F6BAAF9A842C2724D007121E63F33CE21D5 +37D3F50B33FBB92C371BCC73C7071D4EC40C8E0E5F +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR7 +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +/UniqueID 5000790 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D +E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 +47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C +8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 +78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 +1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E +01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B +C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 +F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 +8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF +A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 +455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 +9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 +EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B +52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 +563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F +0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB +7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 +0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 +1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4A78141CA32C +B3C74E1A0AE0520B950B826B0ABD81766035058ED1654D00FE541CAD1D246C0E +DE85FCD3C0BF7A70B913487B1A527EA823C00C39DB61FD6641B140FCED8580D8 +046741D2494B4E7CA1F120CBB0A532BE049CABEB70A39018E8212F8178E93C98 +B377AE2880FE39BA0EE29451857DB34964DA26ACA4CD23CE284ACE37D89571FF +CB67DE7AE379B74B32ECACC5F3DE0566CE9EE820E96F27653C75935851CD9360 +A83C7EE8270383CB8A80715BC2B62B1F709235A5A73D99710D7665182D461095 +B98C8A0FEA44F0F1959055D50BABC7880E7BA1CA4CD72531A240A622663A0A1F +DBE4FB907F97515CB1100282C9A0241F65F84EBAB1701FC105BD25F82807F4CB +6A5EDB5CB156A7D55F64146818245C112DB0FEE9E0AC96B4B2AEB27F89FE0560 +727D85FE6CFF5C457EB1EE5D7E2A09979684E2611BA57A1BC7BA4E37DC4BA761 +557D986F9A8B495CB7212507AA79C297B0665CB5883F2332DF5CB088A92E24BD +1EBADCAA515B567FAA9E15E7B8DA60C1BBEEF5A2E0D4C0C67EDAD822B5E8D81C +6D29928726D36EF0A9238476FE54D4990E8D75FE0109C0336DD50F9021307213 +F69C700D2291C546007CF3A5DF3BF5ABEEB640D3AEF585055A65EB2CA7AD7F11 +22182523EAA8FCF029C604212529C03F179566E6B731FFE2283D6402A350EAB9 +3C7FFF41383A9398B33C48FB2F9A8241D65425FC5E49DC9BB97521D91E44B3C8 +B2EB1BA8D532BBF175486D1DDB914BCB92968D342B5C1FD6FC72DA462FF68992 +464BF0E00D05C2AC3729E598991C6EE7354F0C400296356ABAB37A16FA504DC9 +B6369F88BDB7061D5EEB761527E588B4A6C83169B517991789D664BB543A0E57 +6F2529BDC7838AFB93D53D5794E57B65A7DB00584492C046F72CE19E4D1B177D +1D951362B2F7CE2B720B305D45B7FC74183C1DE46073D8E20FDF8027FBFCDF40 +5F0950F5AAC19AC8E8D9A57A271C0BB212822798DCD068B4F05DBAC2AF7BB25F +5DFBFBFB5A51ED26ACB22541E1971002A5D97B5E148F8F087A3229C4 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMTT8 +%!PS-AdobeFont-1.1: CMTT8 1.0 +%%CreationDate: 1991 Aug 20 16:46:05 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMTT8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch true def +end readonly def +/FontName /CMTT8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-5 -232 545 699}readonly def +/UniqueID 5000830 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5F0187316F83DDE3E2D27FCDF6C5CE4F95B6EE +3317BD91B7921F3039DD35FEA387D5CFB6C6E9DC84C178F3432994FC7FAC6E5A +ED41A1E2EBA350178FBFEB45944511731BA827167DDAC238FC69A5486B995477 +C469E2E27493B0B711DF8E267D3D5613B450011921685147114106C9472580BD +F531022F6DF5432B2A4EBC51A8032C7F9689B6FA942D849B29709631613DA68D +4DF7B6F059A19304F40A3C3580CE3B51D79D42984194D4F178801720892FB6E7 +61FF43C63F9256B5E9F4227B1378222BAAD4D52C77462DF01892220E11129C16 +6C9E45BB9F01ED7C1AD5D8B4D72BE0E12969AFEA90FEF170603CDB91CB243173 +B19A56084D10293B80A35275F41BF78A054DDC98F4A1FFF592463D944960FB31 +6BE5F03960F9B1F213CBCC7FD448657FE388F10104D42B0715FC9571CC60CF23 +C72560CBB8835A0CA208FE06676B3B48B093CB7FB2C0C53AF17EC5B372A9771B +BFD52FFB7062B4FE0106A01A2A1A1DD4EF5C8C7623EC9324A2CB3B402FCC1FCE +52BFC8662F8A39D5F1B41C97E7CE34E16AC28A1E94007AEA7D4C519399F1B7A9 +48FA7DDB671067244F09C29F95DD60668223F45BBDA8B1C452E930A9F3F341C5 +351D59EA87462FFB30277D3B24E2104D4AAB873BB2B16DA5B23BEE25BE2C8128 +C4CF2F4F438A4E520CD864F3EAFB5363753B82978F6FD664A14E5D6F3A929348 +5839EA752FD635619C4FABF1E1454510BD9D6B538A343BE748AE05B47F917367 +1BA5EDB15F1BDBE806E51B294257D7087334165419A6520462D794D670A1D6E1 +3BB03BF689391D056D55AD660D15A386E6D222C9572BDC4DC8A46EEC75124BB5 +F0E8978FD6031A90E4768CCBF62A5ED8C8087FD66D2033011947634878BDC0AB +6501DA7E6D96E227068E993DBB0072F037CA411E43A07E33F7B09F2857AD105C +08EB767A9F9C2C040F3E577B74DD991C4113C44027A60B8183F23B527D74BC89 +CAFD464A929C40B5EE63D0B69B5DD928C52D0F9839232AD4E51591D15C32E331 +78CD45AE926E05C5FF0375F97B4329729976E213EAC877D8B00F85E3D589C589 +24507F435755EF67755684CDD0C0AE8771E554CD0EDEE97B77131D02CA1DF7C1 +C7F448DCB5DC4BF378B0317D21F512226770B611A3EAB0AC35738266CD03C04B +8113AC9706A39870A7371832E9955BBBB13FD47584CDD636744376E20A2A72FA +A1B554624DE8DDFE51ABFE1BBAD17BD357DB08B177AD0B33D864AC4CC04D7F7B +50BF3A26CA770502D639D64FE5A198EE3D217BAD1CEAF6195AEF54362334DEC0 +6E27B0AA124D5BD99A2FF168FA3685EFA9BF5809EC76F44FA3BC2C969F7ECE87 +C71A3EFC3256C2DAD0BC78570578B95A44797C965E963285122149283A77E3C8 +D4C553D1443D094DFCE9E9C9509F2F6CA8A58C5D63471A47901FC8E1562B9C11 +4670E53FF45F4DFAA6E3A27B4F955BD43784C5BB356A6FAB3CD049B9FE5275F8 +F930F83FC21579E61E7F20F05364B72371E1112287FA5C28917C5F98A48AD51A +87708812DD609A92FDB764D710DAB450724C84A28513973509C9E4CD3CD50A64 +F0CD0DB6A9FA459A178E7BF67D46A21B8EEFEB19FEBEB453D490EFE90094C294 +98A246B27618A049FAA90DD355DCB1AA6B602EB1BE472125791CA0E04AABCAAB +1BAFE92760A10CD9D0B501E55D3B2AAA76CFC374313C4BB5C765C9CEF1E7E5E8 +081D45C223E1DA398F77615C3A44CB0391C505A070B9061C875929874E32EB44 +0D9692148DF4A77CFBE77F7D5D70B239DD2A5E681097ED9742663A914EADB605 +8B1C0033F1B30C06605AD37A826DE7848D3B59779BB998C3E57DD2AE80B7BDB2 +B2367579E253A2674548F1B717A0CD84E5CA6ABE166CE2F1243A4D22AF519E6C +1C087AC5F81236BEDF794064D7F1B7A04EAFF6C628F7EEA7943B9F497E172E28 +49F8D3B3E41EFE2B0BFE65E72643F14A1853605D516E3BF7FC59C13B1134B9FA +7D9CEBC9608A66886D03F4F5C35E7241D9EF4086250CB5C00F7D94C0B6C7B639 +A9C198FCC41D6EFD89ED68CD447EEF62F196A4FD7A7C124557C370A5CCF9E926 +592FAD165DC03F37FEA13EDE22B64694BFC42B733D8E0BD9EA4976DEF3099048 +CD0FF471F72F1BA8D67FFAB61B4FDC8834CC475713A3D144873808B51AD266CF +BA55B8205BB40FD8A3FF28738A9990197D17B753A57B8FC24899500128A205F9 +5C8E0B63891C638B3F3E3BEC0FACBE02FD08EE9A9489CBB002E8BC0A1DE01FD0 +10A77C7FB9ECD009B61389841ED59543C10ACA8EC123F4B96F8B6E22BBE3ACAD +8EDC13394A1C10D8C6971C37E9ADB3B5CAE2A78D9E299FF17871EFD0BD483F02 +AC96C84F5499DED22B14F13A57BBE20510BE25F17F51F299429CFAB7514FB5A4 +F4173691B1CC7775F9FDAD392B0D84AC6DBDFAB9BDEFF67C56DCC3B02D954661 +A07D765C4A4EE98F58B13D28F3DAD22A896BEB1779B0274433EB5E2E906F9522 +96E74A9D5867CDB4B4858A80DD69532A44B0BB512330D003B188FD6B6F724263 +F011390DF160D0FA044A6F0828DDBCE0E2A7E956D7E09C6546601532F053D5F2 +62069615E3F6683D2B4F0A803E1E66D499DF3819CA3B83C469A0468D5CFD228A +70065B2B272421C0CE5BAB7671D69B4A92AAA802AA863E632EB44D2CED233A33 +3A09DAB712788E450B67D7139AD9BC3FDF80624D9B8DAEA438C0E6B5AA07684A +D11C1452F17F5E042C8A48BC13095FC3C078E9986693D1D9929C337B8161ADC9 +258CA267C9FBB136B09C6B84879D47EBBD5D6DBAC674E659FA3AA359CE69DEF6 +3D6D038E785D1C8A284162CD416880DD5F573D563316E5DB788037B683A26CD8 +C60B75E1A1138EDCD9AA998252110177F2A1CFBF4FCC0EF7AAEF02ADDFA74628 +AF11E50A8A851174B6DE8AFD381EB48B28003EC913183B0B7EB0016C84994266 +26448FAE7FF37B6EE7604113A4FEFCF421E6A4E0F98B7180A64E9946CFF2B4CD +A92B51C8803FFEB3B3C000DAD409715021BE9414CEBF0987F3B4456E7C27EBE2 +A3D8D250142DDB02A4FF49D9D8A67FFABC57361D619BF8B80BBECAAB9B576FBA +A580FEB7FC6F9FD556341025EF51EBAF765A626FE93B988F0C33CB1B37873C7B +63E9E855D07396B8BD361F4BE0E627459FDEC7B91472D22B574F546E41674D63 +62DF6225371C9DAD0A9129DCEDC89A81489708F14B6DFD79AC00A0DB7AA7D93F +EC5BFBDC17D06D599488ACF137AC92C55FF3DE619E6CCA4FF633919E59EE1FE3 +3D153E6B8B8C1CBB3135E0025C4BB8A3CDEA44B5FF7071319DFB0112982793D9 +860A2FC92638B7C30A944685687F8DC719B0048B375F801678D9C936CD3C083E +F5579977D7CC4267486DE97656FCAC59CD82B4DE3032445A30C8B6C8160C6016 +080AA9D647BC6649714A2282DCDD5FAFEF61EC3E7D96D8652FADEDE39BF2EBED +41DED35B9C2E3C76B4317BFE5262DFB14BB625BBFCB103EF0F67B4559E0222DF +CDC260F22208EF73515592B6D397E5C286C831676DEEFA29A8131072553F238E +5E17A0E3A080AF0968362F54F5EC1990E5A3312CD4E8FE5470192642273040B7 +9B94E435DD6A0DFC69947DE35ECCE13E14E64D879E84801DBD65F0C123A3F0B5 +CFBFB6ABEFF14F860B9595ABC25FAAF7AA20588172E46F52E77D4010036AB4F7 +9F0294FEF7E66766DA9270C27FA2B159E823758A57614489C5C5D711D4F3B019 +1DF3D1C065E7592E8D342C82C740C384648CEE7DE0699516BDD298A486119E2C +A567F5F81F76A8160996D5BD57A65557A682B77BA241B24348124C0B7BECB5A7 +60D6EA2A861C99F5F617B250C0FC760B1D81037A786166A75BF2408CFA77DE01 +152BEB50921B3624517F8023CB111527CE517C6104593F8F1C0DE3C4E6AB4E47 +E7419AF7553C784A6DCA3A4DE233245AF0F9CC749F9A7D81E19784E9677D6946 +E2D1F2A7C407C9420225A87D9E94AC52A275D8A19AF807FBBA36FE78E9C11E66 +D46602FE2D7F0E63D1E21D099B590F5EDFEEA0935C9C8056E02D57F510E71302 +F3E0F93DEAF28B3EBCF46D097F5F065B28B506392E17008C9FD21DC8654EB024 +1E5376C2427DEDD6C7369878B9DCCD04F35D594F3CE144DAD63FFB6E2AD71260 +EAB7F19290B2B8883B0E97D8A8B3D0D6E9B99503D8853223CABA8FA1AE289B8F +C0164CDC832069D7AAA6DBA23B9520ACB4EFD0145F317DED15D9B317646A9619 +F4EF45F2389448C1A7F75BCE53865D813C97D949C9D94F225C998A1403CE718C +A3C63CE6187801D3203CF4EA7F43440E2D620DFD3C1F7452CD9EC856188C5CBA +FEC2D90A2DE296D850142DBE6D50D5D43C7AA4F6207B4E5A32CD0A197DF729C1 +0388636EBA410A9982F9C16B966498BE61FA25DB0A44A4C24095A4D0E92305FB +84AC47D49C99209AAE281EA88E80D234EE1CB834771F32DBC1C1898F86802F7D +D86B6ED5588E8029809DBDF8A9E5139CD8ABDC9BE14F073755D40E21E1BBCC68 +9DDADEEA9F2E95480DA9F0BE40F82BC18849C84216612D8E42185061429A1908 +A8BBF1CEA0B66070C4EBDA360AD5BCDD4E636396A2F92A6012BDEA37A7765F8B +7654509788847E0ADE8EC67F87A40037F196BED1520691B9DF0D35EBF99D45FF +B3669D2817ED8781145C79979FACCBF5DA3210C478ED890C6E404C2C9D48BE5F +8AAB63094C7ACFC5ED7A4A56983A23C3A617BE52C0EBC20F3715D00ADA200ECB +13A5C9762670E3A04A605BC830F9A8DB0D21BC4ECDA28ABBA03824B98F4A61B7 +319FB56C9936E2AB79C954EB1A36AC8798FA450DEB871FAC1170CCCD80BA8B4A +AB3A33032A4E2FC0E938F660FBE49F31136A1DF5C9ACD2C381B4D1031B4F3082 +665159691064175B7E6F71DE674B3ABB20B3370EA41AAA3ACF6819FE0FC3F1AC +DDAB954382FD7F43F06E0E1B92B003CD788D69379221A9B380D1588A4CADCE1F +723BE855FFFB74D969AEB11D48A9398052F2A15BA781E3175B6F1FE7791D925C +C10C68B337E9C7DDD9D4358FA611D03AA4F807031B4CEC86A9C0C4CA284D5387 +8682928015EEBCED896D1C427F498995D7B27250D266E901C875B7B523950E58 +E5D97AB87AAE3498495B5ABA07E5A708645F11EBD3F31CA38457E50BD146B951 +08AE0FB57C3EAD7B6571BC0686033D63A4360F37B4D752A25388BD0256ACA0EE +7B1229DD26AAACF861608FC6CA4AA7F1E5DED8EC122960514BB35B2169BD011B +9C52F4AED9FA67BFDFC2D7ECB350C1F2A21FB781A2BE4A9BE7C53728D6FC08AC +10F48C85F84C2D4B5B2BD8113E8816728262E4685362C405EC1334F6CCCBB0B8 +0008507E7B1680C58B142635D618032D967AF2925C52613F6DEA30C5F5CF9936 +7D51B1AD9A1BB6B958BCAECBD9BAB27A10D4A613EF2FB57555151977317EBA55 +9C0B26A79FC44C7DEE4020A762EB209E6B8ECA0FD458D46693F8D5B0A4B74B4D +7D9FE5330CDB909C755B08F8243AF107E45D20924728554B6DEA593ECDEB16FE +BDAF464D62B55DCED88C9F1DF29A9DEC86AD386D3414E036E5DFD2F6CD76386C +02FDD49F240A3A4EF42EA5BB3E6DE40C52F0C5A1D988848747E855D1EF8A625B +B5208CE190BC2AC908A067BC5FB8412AFD565D68DEAD27B620B47BEBE992A65D +411159D8C62B8FE2879CBD189095062A721810ED10D619AD4411AE1B4AA10F22 +D59F561FB19B820375427E88F49CB3487A8E695729EA18A056B7FD3664697A17 +637BAF4DE04F4ADFDB90D3B8FB880638275D997A819A98798F64E2F627783962 +0F26680B80FCA21063C1A05AA68412C285F14DF2EE53D8B7751280363B727C63 +A6ACC9ECF95A749CF31ACB68423864C43CD3A668F15E6ACAACDCA21762669727 +F32D64DA686917B8B458F475600C96B9489C90E2EA0F123DA95680D43A4C7627 +E5C8CBD62EBB6AF8CF16940A2C95DF6F145FA4A506B9DE3E61B47F9E69CF9A56 +CE97940687237D672B1C6850C4FA6EF764E65CA7FA61A7C4742F7CB085370941 +82583305F2E640C5C1EBBB180B51EA12511027FDB10D895FBC33324481DF19CA +5461012802F49939FB01FB584979B10B7EE964A08F2FB54E1A7402BE6794AE65 +B2DDE265539D4719AD2EA84F7EE7CAF39CB44FF60992B78B6A2A8ABE3FA4BE5E +5483DF4E6147EEC2A0E6D7E30FFF280B871287897CDA27472891DD56903B9EEB +02502C7FB67BD7493276F59001E898B238FE68E8F006E737486384E3C0734529 +A89466BECBB8987A9629FF017D5B3ECBC73B725F1BF980328376F7F984A34ACC +D2138B9A7B05D501075D5965EEF2723A13ADF9D0A1BDE62C2E05DF9040B860E7 +57B8866DDA027E5631732290C8314A798B14AA00460168F5FD21E5BF0359B8EB +98A13D8C31869262B48FE7867E40D11C8AEF00D5BC3A3319F6E8F4C1305595B5 +4DCD9EEAB4B7E9246ADAD681892F3F90685FCE979E1B70E007EF18D258C04371 +3656ED8D71FFA463F13C6F7D397A67A65BF61EB149F65950DAFEE88E1560C0C0 +6A76B74A2C0F5EB83898FA9E9BFB30C29F98626470FF4DA7D9692D5946316A63 +D4B5F7DAE73B996666EE0CDDF24A6B5661B1AF3520D8CAD0BD6F199440E08ED4 +143CC87BA9EC046F6EC2200F8D0897A5FED31A20BE642AA4032D67E3D2593273 +E376396C63863071C3BE09C86AB6E95D0422A8BE2F83080FFF9235BA42EB6BC1 +2AF7317860D5AD37836EF4FC3A479C7DC6219AF5236C84B01C84F068B94FC917 +9F472B55AE01C3FCF2A185408C68A47A58C61745CFC427C4586F8C4C5029DA0B +6E527B7FF54828E2AB0ACFC05F68CB5056DE56A8E07F1393F472250CD7B2D53F +3BA28DD9B00E6940A73C11A3733FC4BA6F047B974064E732764301EEA31992E5 +48AF617E9CDD85622EB62C232DA13171C5688FB8B4C15387E112430B966D70D4 +905029D705D383FFA623AEEC5E6D4B1FCAB71AAE687D41A76774AA0EFD5CB3B6 +20730281CEB8A6C14D91FF268275F51518BF58215A58226E1D537BAAADF99E70 +0DDC23675069ED0712A441253D0502647BE3976DFA175788125CE7133A5CAB96 +D01668CDD304B0E407F3B406F4AF1137019D0414CF21E6C6145DB1716FE6D142 +0009958D48C9BAEC214D265EBC47E31EB5799E368A07989036D554FE045E2487 +BA7383B0F5A55463BC6F93C12AA547348D5B5996AEEE72B78E9B41B11C383DAA +9BD505B276BF1975AAAF800923EA094E2D71470EA66A64817A213C00F479649B +2EE4E6C04D316012F382D1C58DE9528EC20D48931ECF5C67AA129FE99AAD3735 +27165D08800D6DA13507B4E23B166E8CC86FD6A798BE558513BADCD59E9AEF6A +4D90A3A240EB865871E6283EB89146A755D99280DE261C24103801577F97A7CE +116E11A76450FE442B10483C24C71F8EC626E80EEC2563994CBE6E2ABBC5AD7C +646D4EDE35E012D77431D1E1C74949654C214E7F42ADF09FF6AF023427A73763 +25BE546EFFF1255BC9384033C8E929811F3E5B74C195E76E05ABE877B3342209 +C53C57F84B61B0333F1D879D81512C144E5D9E4C44C7F73A4127EE89060640CD +F00F2F90585239D410279A0CA9B0416283CA914C4CFECB88EFF11F9421874FC9 +CF5B18EECF81311B4FB7AD8B8D0896149AE5905AD03245F4283497DC4238B47F +E1CAA9BD5E54AF6411A09786DCD9180A9BD72AD71111E15D1A4E780AAEBAC100 +3D5AD925DDC66F895DF0A06192366578517F40615F43D4D392A44FE49729779D +D2D5EE8C8E4956C87B0839362DC6DBBBD8BCAB0752E83AB3FBD822D91FAFF626 +50191779679CD868824D5D9AA7F0806807291EADB1EE2C3E5B13451EBC7C177A +13B724A1D949DB91D59F721440FACCB2B5853F8FCB26563979AFE7794EC9DBDF +ABB7D079598512952C95F676A83239A42BDC4BCC383849F9F1EA1CAD42A90F88 +57AB82EB636C0B83696F210E15CA531EF55DB48E3AF3BD5BCEE0A99544DDC2AF +F32622287FC2AA1640C28A45FE089BBA80D2BBC9806E710B39C70B5434FAA785 +3F9D0ED0F5150535EEB99B550C0A723A1E48E72A942BA1F18CE822ABAD09F471 +4E7D255CAE74142C1C0898FF0BE5B7D6CBFF4EA5E2CE02EEB8A621A23A65FF1A +F569049E2FAE1960E8BC49C7EC6E28BFC4AF22A1C4538BB7A42131546E584DFA +7AC3B37C602BAA35ECB977991F613253815C3205B0558A65E110A962736AEF5D +DBACDFB37D69DE2DCC22FBAE23B8CE4C549FC98C10B5473404D5C10A178D8501 +BFBF7D4A7C706D3F194F0CF2EEE262095EDE26F660D6A65E6398AB3EC5CA4BDA +3E174A0114DCBCA6A5767B18E50EC8B1AD197277A1C8671272F2875FAA8E0CD9 +D8B58ED78766221FE5FC1C39DB7F803DC6A3154B3BCB99E97068937A6124357A +9ED72F2C36C71B9121A07733E5A971D8A9711E54508209AD10469D9FD6C0D1CC +97B76ECD096A9F0129279E1D9E5A7073CAC878B70A2D3C701B4F6D739545BBD4 +7DB4D8048A8389B13B4BE880E54FDA294AD9B69728E6D4F794E2B08CAFEB2E05 +CFF5217A76AB1E14586A28B4BE3A0A647DA4C3478E97A23AC12B7DD368066676 +14AEEE971E40A85BED83E7DC252E8566EB31BC911E412ECA9D19103CDA8183D6 +5A1331AD51F2896BFC55A4109385A8A048FE7B28FA9C5737D5CADEEA49120B42 +3AF12BADAF96B2C7B9DA0BAB63CAC1DF6FACA4D5536EC2E6B7BDEF72A2E4FB66 +961D4D6C87DDA9E37F0368245A7D9A79C4D7839BAB28D72E7231410D80059ECD +155AECBBF2C6053E9424CA018DB652FABE8A259DABCC556625ECC2EB0E661011 +9B6D500DAA1FD96447A2C94ABD37FD3C2FD136BCD8C2FB1442DADD2B53ED2691 +05605FE149E6BDE13E65C61DD73F60884B2CAB7708B67C58CD9530F6DB72B203 +85F0A3A54AF9E4DFB8561998D474127C8B4C480925B8FDA46AD3B460FB9288EC +15683B06E33DFD17B4E5036BBA272CEF7B9A3AA2337EEAE07E5362D6E3DA5570 +4A095B050D52A6C7828E6179781796F6A312881A45C10FE61213DC4D31FE9112 +695F844F4FFA4CE6FFB11D301D40BEBBF9763DD93C3498CDEA8FBB323CCE7B67 +A7BCD6CAD354D6BC870B19CE8346C2B2056693B8DC48CC516C64D2F5C2DB8024 +2FCF14263C49FECEB122079014E1CF5930E0737A9A4047410BAEE6FA1A09403D +6F2A0571659BE21088C6C25F36FF3898FD7002959402522E3692E59E89DBF5CE +9455C3D11D1D865A38AEDFD7D59C8472854B6659BC4CA74D142AC771012EAF42 +59834B5733DE5F7FD91561A99D15EDCFD2B210D91BD266FCCC6AFEBAF6E7DD24 +39B4E375A7FE5104073A9149DB2924E81E4ABFE41E69343DBDFA343CB63D704C +19C4F5C3C0BD8D01B1E2EFBB683FACD1A31FF596E1236DB07D571A9B80C1625B +55A086420178034E371E58768D47DFE37607DABA77FA9C478EB37B4C1AEF63C8 +53D74B82BB203DEDEE409834F2DF642CE0953AB0085EB15F79405AC288F305A1 +00034BFB8A201E60AF386ED0317202D2ED39C750F6D5602A5B5402274706FA03 +CCD598091A25FC90163E5B4EA798703F98B21C5F2525443E3ECD306D3D67FC6E +1FED63B59DEFAF45A8DD17009AF9A4264F1EE7AEE59A04EB13A7A14CE7A1BACA +35441C393B1FB6847516F977A137970BFC4ED081B4A96F7287F68B3D3D1DB704 +AB5F5D818548E1F49560776863A84D91938D8D1C7B3FD14D95EED4AB89F689FB +387733A4175094C396A5F7540599D3D3FE934982011B5082ED7FCF061BDC1C4A +C3A426541DEC653F0E1AB82A6B9663E4B9B6CF3A3646454CF88F26CEEF19C6AA +00B735A1562D36F8559C4C27D87F0C780C6E627BABC455AA7A2E38B270BDC791 +A4560EF6B814AD5B2D3D1C1B16C597B93877457EF9956BEB125644658FB30662 +8CC9236D86BA636643B1DEEFE3C696D2DABB7ED5688B56E1C99ADADB05F99868 +5C3E1FEA735EA4B3AB110FE00C3F080A69700175C892310A2CA1FDAEA838B8D9 +0E906FE38F27CB27E4B451AB0A9AEB68078B42344C7DC47818887C93B465DAA7 +C3FEF4C746B52F8AA5B5006A8B0E262D0EC05E5B22027CFFE53C96EB8A7208BB +768316DDB12474B7D9186CB67EA40B9C059EBB6CC1525E86E50259F82C5146B8 +53A9E15FE0516CF3EB44B745C105548ED1DEF13B55B4A41ED5EAC4DF3BAFED0C +C9D38984E8CCA223772CE195679C8E9F5A4773DFFB8392F2E32D44A9DC6C83D4 +405C56C14F77B9A693A1C815264AB52BBE0410CAED811F035DBBAC7AC81902F8 +7F74C38CC1F636799E7B7C2A2E0D31F63D13D86C094184A85F3A5166D2762967 +C3409C01D68B9F0E4DB9109F3D83DF452AE4781DA7F20AA6EF831ADA00346666 +3CB7151ADEADCB9A601E5BD2FC4C5B89C058A5D0DB1E793C1390BD9EE77EF7E4 +4B3F2F129D2090494758836C37623F1F7C8CFBA716515FBFE20EDB15E3A7C304 +62236A0AF4E0A1B64F523D5A60E41ADF7C64A08D472EB385E949DCACC048E74A +3793AF4A2B3DD6FA69C95AC5B99267D982F7C9DE68BD4FB12DA36130321080CE +349A0374FEA9BBFF6C8B8EF5A9F5DBBC27AD4C5E9532BA3B014AFB8DB5CD5F73 +1609AE62635E103ECA3CDD33A2BA7489179F540F84DDF5A551BCCCFA991374FB +08B1CC61600B4E2EAA674A081E5D4BEA00423B9958B7BF78373FC42EBB9C5503 +D831ABFE2BA3273E9AF8808203A57D6A85D43B70A3E75E3661A1A590510568BC +D492E16C5AD8B5465460CC88136721FC78A5D9ABBD4B09BB244CA5735E21E603 +15DA396C26579FEC38664C53BFB82127E67EE3A9535EB872E028EC752395A452 +23B76523DD01D40CFA7F0F2D83C686E8A1E736088190242265A98A96A344168F +47B11A1856D7060066C62418E46E7B1AD08AFB814903F4389F923A0EEF2F0EE6 +F87039B6428E475EAE7E0205B52833BA6C475E3AFB30A4C427F61DE9206FD463 +6D0EBF19C889943901D9F85E25B04FAB888BFAF1B62A05F7B2DC6B2E3E0E8AA5 +64C8A5B2D6C836AA48C41F7ECA82FCE854C649B9E517FF416333B904A3D057B8 +A709E21BD0B4AC6CD40A52878765FD27135AE413A7CAD83F53448F31FE7DEF9E +BF12A42E6F644602BCC57AD4A3D14D59555AA77159BBDE2460524436C0D29DFA +EB826EF9A2EF9494E168F07A9A31D7B41C121ED1BEAF83794F4C2465A16AC9DC +82E512E0AD888DD1C7A79C125676133080958D8DBF18240DE3D178B0E38B9CAF +8441F4F647ADDE776959B3C0245A203DD12823351B7610B2185A918A46C934E7 +3EE42D3072783CC06104FBD2E3593B96BAB19A0C487C74E20A5A402A0682E905 +780CFBBF0595D352108462882D97675DE50C198B39AE710A1D0C5F8A6BAA4270 +D59C8BEC72BE5F9388EF5CAC430678411EDD4C898E554720182AA7EAADE98776 +7F24FE7D6C7336F6268BB11CB9D7E618FCD3B6ED88062AA47189A97A871DA1FE +2A094C7628F2F66252C3C6C527B3F7D0C85BC70CC6EBEB6C4778E288B9520942 +1D9234C8CD1EDC5819DF14E18DF8CBF5A67087C508EA8F557943C0DF568B10D5 +102EF4CB1E39BD48FA9BF59A6E73D9B9FF4AEE56BAF7E92ABE1750620D040066 +60C8A8850670FAE63206E7D47859C4FFBEBE50B8F35B59122EC66282FBA0E988 +0B9EA0BD76DA9A08B87DBC99BFCB5BF7A8C3748CDB90C8113DFC9EFE5D012B85 +AFC31778F604F2E6FF75AF7210236BF8B37C6DD907E69B632659800CF8DFF365 +7B6B50F69E759739D5D7A5BC3B3755011A37F49E87307E8930541665EBD4D832 +593EBC69993F2360EDF0D15F716684A122E3A91E2360AC91C69ECCB4504E05D4 +90A5CD814C0C91AB257908A73D4FF166CF3BB4AB5A49BA43AE7B841B2F11604F +B7BFB092F9F2905B5FA3A63071BB5C067B76E0FAA460BE7C7120C7178A39F175 +1CB520F828B4432DF331B9926A19E34FE8C9D3733A991D0CCBD44E37BDBDD68A +3933FD1E1C3550FA3BF091268A2D79694F0CF648CBCE2FB9786CB8862C39CD29 +BF9863DDF689F11C81A8C15F56E5EA6AB807941A8B62AD9F0B1D53B972EBF407 +7F189ED8FFA909C63B5ED68F5FDE80ABD9B3B2A220FA19E4B2B6F754BE6F7FD7 +FC87472C631D73B5A037C594550DA4965DF18C13237FD97AFCBB1936E9186669 +2ABCDE5A0192747066DB1B605562C1D0E2CAFDDCBB1148DB280377714807D4EA +DF41E374C3A90C3EE40C55541AB3F594784CEA5142E0BADBC86E11667CA0D14F +1285406D887BFA2AF299D2CA887E2A9BB1865D705B6611C90C2EAD9BDB229EC7 +20A483A7689547E7E2B82572CB0D9249CD049C0121807D54CF4CA12D91DD2A5D +AC79AFB6662432794475CD0C868CE5094B6F1F733AC7641847969D9E3607D716 +4EC89532E0FF1BCAD4B90315E5EC686DE83C71CC4E6DB1A3EF5D817D88C6E43D +3733C594205BEF082D287824D207B3F581DA8FF402BA3BD9894876F4447771A9 +015C897E61AB2C9E6648E202D72330977396AE7419340B8D862F7243E130D81C +C54578EB850EAD0982861EF6CEE14C9B761D0AC8D49D30EF6409A699339D0241 +AEA334F5D303593B29EDFFDCA8B2507E115525AD81FD18BB11829B6620C8C204 +AE00F67565AADFC10827E228BE6AC8A2D496406B286990DE0A016D8B73C72939 +B385CE4D3813FD166C6F5AB1A534E594FB4960B99E6BCCE5D466BDCFDC83371F +2B4469C5FC2A319AFDB7B98DDB078E2720FC96594DCD16848EAD3E7139CB29F0 +3CA5DFA6F6247BD471472829C4A80A966B92A1282A5C787814E9CDC68DB5D14F +A252DD6644F50840EDC5C05B5543C46297D2F624193404A97C5A43EFFBAB96BF +CDB08D19B6D2F2617EA2459E86B7CE5F8C41E5301FA12268AE44CCC0D731CE7F +B3F9533244221CE05C640A2803E67E20FD163E9F6AAE55D1AE28254464EDDE6F +DF64433C6717E06D7A3A55EA53EC08FE36817BB2695DCAAA4A70CE915F2AA103 +F5658F2112D7D79687244C054B4E57B3312B58C31CBBAF9A900E507D6BF88E59 +C8BF0715D0AA16DFD1B670C999159CCEF37A39C25FBC8D4D5280C6ECD9B6CD1F +501A87BC912A398D7959460F8470677A36170BFDAD24E5A80B59D03A9AFDFD77 +D29D471C368848490486B6D07467C525F47C59C548EBBA09AD530C87494C0C36 +0B266818D4BAA382434014B5AAD24985AD5488C5B20216A4BFD5DD3ABCF68442 +2A34CE42B2AA9B2FFCB2C69669F471B5559AC3B1E315CCF9BD8D1D596C606372 +C60AAF7407900CE28F49611C7837C442FB0A45D116CC393771B603584E416ED5 +6AFAA3A1CF5AB1B3E4C8844F87EF1F8B3C00493E44778F319B73775DC49908D7 +FB064B6937D139D056321407A61ADB0FA3DE34BA0EA64A8FFFA5DD00B4198AC5 +DA6BF912D0A61DB73849E60C08009F61135596C659EF2952730378C6953B270B +1B30ED14094F3425EC537E034AEA44A35880F606D9494A4F167CF1D68E021195 +EA95BFF9B1204308EC6023508D5795BCBCA9D0B5B4713B0F0EA3742FBCE6EF5B +5543520C2E546D4AACE6772CA093960B45B6502A14C6A5207C2E7F42174AEE2F +50665F4DD1D84A33A327E8BE643DF277F2C217918F70DC9968F2502674F5C9F1 +54BD713CDF1B40E62E36C1C9719620F45DDF8186DAFDCB6B6C5AB8CB4C16CAC8 +DCBE6D2C08D2CAECE8559E6AFC76815ECB8087092D9EB0E93D31928B53373BBE +18B838A8738723333075B9C6F314FF6269C9EC139A89509EC0B5BA1FD1821995 +03A20682277AD86350BA5E0A4A059C718E5D77233198BE6BDD319DA1B92AA22B +E2770EA17130E581BF8C6D474F8C75BDFE5116D742489307875E568474C63723 +81F4C22BA1B0B84C64BA2FA9575D08B023CF358F4952A8AB38916BA1E0EE5BB0 +FD8BFDD642176954639B040EA3F1F388C0CAAD454765C180A677DE7061634A04 +5A58617F0D68293EE2679B92AD7ADDB8E4F491D8A04F12FA6D4927F8D32FCDC4 +8DAFB672765D599B376E9146A0869476464FF3ED541A90A13C7CB9DEC36AF11A +593175CDC284E2D9495BE7BEB76BE21708444E2ABD1222D84A33BF568B447D13 +CCE55269EED0F07FFF2D8DB08CE1D4777C020AD6E4601BA5860438CA09677848 +186B8C9BD6C8291019CE7188A41D34F4CF3F0B72D614D067EED5AFBD7BE91816 +9D0C20BE8F48AAA5E3A02473FA1255CA761728C03EFC7680FB92F32CDD4A10EC +E76EB6B28EAE51D66F09568FB49B83A3D8295467724CB774D4D2C4E2D619A272 +D03A627401B1FF8DF700BF778AA905436D421AE00819A63530BB3A399E6A84EF +0501B8D73C00803038AC2B1651BFF58E00D72C32F3701BA82330DF0421A6629F +B45B45B3D2461D4AA96AC0F36CCB75348391AFAF4ED915F61D1584A9B9E11535 +44DA51552AE9B480778A160F8192B848EE6F3A36A85B7BC80AD00C645C3254E1 +CE76B479075A354E2A4D199B9B97945B92FF18E55A192287636169F50FF639E2 +48DFF08BDE9DDA8F372024A3B7C8106A1ECC51F38A15017B1E5F7ED5C35C07E6 +22BA85112078F1A368461BAA9EF8C5BE2B407DA6BFAFF6D924104147FFAABFC1 +8FA5F453895F8EBF8CF65A164060610D827CD38D8DE85CE87DF6757FA6749C66 +2FBD3AA116E0A1EBA518B8871A458495AE39E2AA76C2D4BA9DDDF3FA61EAA369 +F2DB42293A293F995D3A01DB2DCADD6E26E5204B7505A9EDE112E2106C26B7D9 +393B4EE72663D646364E067822A2D8DE21E65C15CD3FE31C43EA36C2FE266C0F +CB54E78877B1714CE3C6099EE0304A47169D8A889908095DE2F3AD4B4D0B388F +A2FFD1DE6A065C5F82218373089D354CE0B112A541095F34EBCA188134DF8325 +765FA79E96DBFEAA52540D3C6ADA67ED093D3C84F44FA5150614DBC52A74E206 +4CA0030D532C04A3843F09CAC23B3C5CC0B085680E5711070C59868FCEACE38F +69EC85F4C74564F9FC173CB7CF5C3D60A69265B18D7B61F66FA44C23409C3FA7 +5A8C0AA3230BD59B27899D753CFB4BABDBB6BCC783C036BFF69359B05F87B1DE +D43B3F5A87BF9F79D83EE164DAAF5C472B74FAE110C9F70D522BA90F9097FCC3 +7154AAF9225DA29643B114C0E4D824B82EE6E44D88088AF8DF3BC24B78F142FF +8AE31FFFCC59225FF090409AA89B96EBD32A1B7F3E59BBAA4969A35824F1F122 +C28A07A67EA7F5109DF80873F886A34D1DA3DAC6739196C458E1AAD246E28C95 +5BAEEAFBB03E1C2C2C5B1E5BC25C7A637111CB8EF5598870AB73B87139CC0373 +2C7CA4E216506C08CF37F57F025BF947C96A2C485EE596A0E8C1CCB1AADD96B6 +A0D5960DA538B28B825A0E424E77AB2B602DB15C8FA9715FA3D51D20CACF6AB8 +84502EA510FA5A8D64B746C67E91419984D27DB79026AFB9D151175B682F10B3 +70C63E3CE4EE60C30D1E4E21735C3680B9D797E427F88075CF1753663B51D96F +D75D738906F8CDC4C52C626E389BFC0E88F5154AB4BAFC8A35E944DA02358C7B +E3E9DD1DEFC49FCC8701BB849E1E61E46FE0F3408AA7E2A92CF5E44559DA7859 +2FCC4434E4F2A1BE4760434BF95A2B0ACBF29B290FDBA1BF168D2B1017C5B9B5 +D04FEB32D337CADF33C3554403EC5500B8FC7A0CF257971C18C7BFCEFDC6664A +0378B8924270ACB476F0CCF2D611667AF3B5746A346924A01B53EA62F17535B8 +2F31791C34DB10076B461FEE419F3DF6363EF6B6F21B36B60B2430A8120546D9 +DA256D859EF3BBBB417919334BAF9296893A920DE15A1EEA873966B2DC71BE89 +08D8B194EC8DE09214CC521B8E1258143B43016D0E228A1BE4DA5E64BB5BF45E +9D68C4708447F058242965D945B150E73A8725EAF95AF0F7250F378445793D19 +E7FDCA0A7F9BDD59FFE22DA6A1A6A2278328E2CDE66BE8ACFEF03D5BD28A701F +1717328800B57A752EF90D02F72A210EF7B61ED77D23DB9DC8F73A0A06E4ED44 +D603D0F4A64FA99ECEFE278F7F892F8436F7C58A463E45F1D440C026228958A5 +AE9307CABD3F5939FD37D020658764DE53504DFED0A5E08B199D8B3CE94037C7 +DB3DEF389784D250EEEB13EC65F90A7CD6E8E99E724D0C13A8E20CEB9636AB02 +FFE561AF9227F6DE05A2CBA8B20EBCA6EC8760ABF7ED9556BCCB59BAA76036ED +9B7FDB697A9C2CCA821B590EAFB504EE82F58F30C07CE0A097EFFD5DAC03A2E7 +6050E8C3A5527EB85AE29AC8F4F74561C02B55B683810C9558603638058F2286 +DB1F3372788B2DB1BD435959486C133C3C50EC14A45BC9EAD710B22C15C73E9B +3F86E909B2EFF5310C5E6C8A9F93B0B9071F121252884DD532DB36DD2EB52C93 +7A1FDE104ECF6BA39DA6DAF33D6EFEDDE6007900741E974E4805640F8455466D +50D1FF14BBC7B03F1EC139B179A091746956607C8D097FF1B77A0E4FEACE0EDD +D56261920EF0F150D1F83E6743C3D82B55503DEA7917CB129038411B435DBB76 +CD6AE2682E4DC6D42488E113760517916D5846BBFA9C1B8C316554E43050D86D +4E47BAD85C0C2649BEE99F611E0807EB70FE5D70A587C797A53F4969815D942E +7BDA223588185B7C7C7702C79435BA27B8FAB1569478FAF5718577743FD3E9C8 +1C0B2C2DF185C1F0C422F8283B992C9968C779F77ECC8CD4F2D7E687DB1D2948 +02BBF76C2E1F550FF60FFDB83D1FF6C98B050EE8944E6E72C128AFE756EADA0E +3B8BE0E6BFD1C26CBCA45C9D79BE4B9A49650776D28A0AC0A566FE15D387AAEF +16DAADCA9F7D2736C056C25F80545F59C12CCC4FB9D50874789B196B9C2F51C9 +76EDE6112B7D00EDAF01790306AEACEAB092C24626040EA7055FA31581581BE0 +0C6F28C45ED4D3204DFCE04CB3AC946A985E42E25075BF110D92E0102E39B06A +41228443FC961DA13789DACCFBE69DAEF1739E7F7EEBCD464F63166E13AA3694 +246E76AE4200EB89ACAA3BAC3AB6EB4D821AA9B7960B70122F22A56C406022B9 +4B041E21FE064FA2389BD70F1E1AF99E7943B06C0EC5A997B3CC536D9AC38FD6 +AA14B9DFD4CE7FA3C3871B075B31973D568FE7B7DD4BC930A823E0C814AEFA29 +FF6B1C9710A96A1336DCF7FCD0B1CFD2F20C5F06D233AEAAE11A110F9856F858 +27CC8C23385D8D486301AC324C9832F154A9E0B49C02D0D8C45713E347D87FF1 +FCF8FA13A20510D87980685ADAC8A2B458C6E3904AFFDC8D67201299317A0CE1 +B1DD0E8430AF898C97DC7D9228112649CDE77B90391E22936574F72F831F36B3 +4E73B141EDFC9469CC3E4BD7B57213521B187DD5E293BF9F1F76202CBB4A072E +C8C82D7B10E05405CA358E68A6192002AACD7F7CF9B592B116E89738D13E940F +E29EDFFB3D85E618ED6B665E8F10AFCF991D2C0182CBE434BA532CF8A9924152 +D8A3A9BA45D04F747424BA6F062D81584D3FD4392B341BC66B508C04C50BC6E3 +E291507779E456A6E9378CE2A58AA075519A111E97DF45527975865FC7711E08 +7CDE68C74AEEE367477F087D09FF67BD99C8CEB605D165F0C6FD285BDF4B14EC +183FF6E149E6E3A387B0DF88500DEB1725363A29FE31BBA528650365EEF12B4D +237323FC2FD1359D3DEEE15B9695294F52BCE8827DC6DB80B45BEA25BBFA77E0 +3E408916D238EE9984A72698E639832242A15CF3B2ACD114109D2EFA8ABC9638 +31EEA7AB94A96D612F6055E276E6C2EFFCADA659B388F3746C690F0337159DAD +5E80AF3D0C50617CF5A93877581D40A98493451138377AAC7F9335DC7C3C2373 +473D7CE93FBE582BE591A0C30ADAE4B1714DEEE59C01D69102E382536B92355F +6F20CE87FA4913F758128F74B48605999CCE0C32F86DAFD2D07D75A1D9950C0A +D32E693EFA4BC7C3DE6D3F796B9D805D703239B1D48979B5592CB1FF949F95F6 +93142411389D667FF0716A8E890E7D5D4DAAB8797C190A940806A50051C6A952 +BECA1B01EC677E00A1468EFAB40548FEE96B0E762FE8400E79D5BDAA28FEF9E3 +2B81442635D159D01BCFC08902317FA5E6EEBED4DE0490A026E8F94260EEFAFE +0A1FA3134013B0AACF1FA951218539B357586FE92965634487770AF7B2F0A0A1 +D7735E6D92840EF7E953548339BA6ACE2DAAE5C3A4EB3BF3BD62DD27D18E3819 +46B91268C3D6E04B16AD4958E7AF8929B4889AA94E9F6E48BA769D464BEA9804 +4C318599988B92A8256C1FE552BFCB3EE4512C12BCF2F9138DB1A8633D6AC290 +C9F8340EF54309DC42C2A035ACADE6010868AFD6F389B931D3B1A8CF72A26896 +FD78C5789C219C2D4EF28A91A425D648EBFAA5DB7F6AC12EFC4186C6C71D7F06 +F66621A939032A9CE5D42AF8E45B78DFA211CB3629DB57CCF9FBB5D3792FA8D0 +BD6E520B115B24BA4573F20E145FF4156E3E57A286155269CCC358477A477CC4 +A9DA53A8E9C547CFF68306E78DE02DB06E516E8865D2AEFFC2B7D3D553E9A51C +37D46E515332861E6EF5308FAA3B759DD0EB4857EACCF33DCA20A80C016D1F1C +695F7B7398DE7DEFA76C16CC686A29F35A61DFB244B1389293E9D3106881C303 +D621DABA7DA35E2AE5D0A064FABF1F4CB06CFB161F10BEBACAACF507F8131AD6 +90A5AC1BE85ABDE87A02D841E6C9A99949901A606906EB5E18161D947F1B4340 +3EA721EE08DA268896FD7E823879A1DA28E885CE2E152FA18C1C579011F2CB4B +B75E3CE9FB816E247FBC50089BC9489DCDA99DD4B0158357CDA22DE2399C9DAB +EA044DDA012255701F4417EF637404DD5EE917C0C346D052743822F06FCD7391 +97469EE2E90D31E5C551907B4D0B4AB5E4C505D3255DB9076787C5842264B8BD +594C408188166EF3E6D82DA154DD8FCEC90CE09EE454F109E99F129223000892 +942EC93296A86236BA41A71D4875FB2E208C3C891336354B0A42C89B6FDF5A54 +EA92EEA1AF7F1A276F75C93BE7996E60A4B5F7FDB6FD6E26F3E64500430A9B2A +89C0912886A5A590051408E3D40F06E9069BC0836712D39B276E51ED6897AA93 +BE95ECC177C9B447B9217672D8743233F10B3BC1EBC11DD4B453B9B97CF34B5C +9DE7F43FF666074F604656469F25E458365EDB8EBA89399776584E420317EAE9 +0E3914903CD4D042E5D1B41A3E62E1B20404295D49BA8A8BCBD8E6ED3CBEA90A +320D9C67667E0D6B47FD82FBCE186466AADB6BCABF31123201F1AA52FFD8059E +50423E8EA0E6367434D7A8D897DCA904D35175DDDC33CA87B6CC +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMBX10 +%!PS-AdobeFont-1.1: CMBX10 1.00B +%%CreationDate: 1992 Feb 19 19:54:06 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMBX10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Bold) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMBX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-301 -250 1164 946}readonly def +/UniqueID 5000768 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82 +7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378 +77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18 +2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91 +FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F +DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68 +7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4 +9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176 +CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D +6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6 +E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E +8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E +3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99 +EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4 +0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9 +4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF +1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910 +757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E +0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665 +6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED +E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636 +6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B +DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663 +12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C +46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08 +F6DD0BC6A79A2DB1FF539454E8F5D1A42D40CCFBC093AFD3E57973A009095CEA +B91FAFD236C47F453B38DB0067907A28EB5E9ADE87A2181F1D6DE4E183631716 +C21F0F952E0666AC74371F8B5C888DC44FBA5607435A619684F502CF625663C7 +94B0DAA79BE8E129E7F5C5AD1B7495C1BC9B1C759FD67200DFF251DB7C95C09E +89EA1F66EADC3439C7234E50DEE5F62AD67768C3A5127E31DC8BEACE15EB5666 +437B94525E34FA2D35B51730CB8CC9D763F1A56F65B8FC21FEC40F4059C2EA3D +EE94D79A8E322FA0DAEAE3B82721F771106F21B7497099A15DADD8CDAF70AB71 +7FC1A9CE6AA0E05ACF6E210DE1CA0418BA7012183FD6BEA93DD38776C68CEF54 +75145C4C0AAFD684964295D68EF8E7CE0AAF272EAB35BE26334C6A2F63D89425 +F6DC7F49F63A53152DA883E46105D8F21F7368F9CA04B7F4BFB67ED9FD13987E +816BC3741FAE1D8630479927F6636F084ACE881372BF695E55747B9354674443 +AC79EF734025EB13E3336B807B6D75D86A801BCF860EF78BFE0C76227875AD31 +49638E7070152E16CFF32B2DE735F7BD089186F1FF68A2CC558B26C7D3416AD6 +0FD3E8929011C8635279CB1D64F3C8FECAF89DF0469DD890E8CD6EF325DCAE4E +8804DAADC647BA4F6A96E27D5F1716A800104777374DFB8AFEFA19F230BE8C1E +2B1DA5B9F504BED3487D1FC3E2A11BBD869AD3E2131253789C00651A03320D8C +F3B2844347AC9860ABA40A83030FB4F567761548607BB01FBE2086AC1BEF4F61 +48AA7B421BFEFE6EBCBA9042FA4AD9530EE7A9A7E11D9BD9AE3FB217F2A9B5D5 +1FA941494B11A4CDE8973C1CED5062F6CB666FD32E4CEC15CA9DE1721D4E6E10 +D78756DFCACD3A41E50C6BAE9A9A5F044BA599F1EDFAE61CFB8B7B0DF5BCCE17 +4D88512A8506E97204457F2D12533BAE1B552F23340D4AD7AF3029FB6C6583B2 +67A9B299882EBEDE6696B97D7E89B0C397D61D4417079D426B29246910F4DE84 +7C5D48C72126F80CB5B135D6D2CC719968C1924EA4BD6E305B7FCB06520983CC +6741DE803E5B6EB1E7F5517A8600491A4957645949701EBFEB42716542EABF2C +16B955D4A1EB29BAD152EC888572C3D4E2F02309DC60E94272D2F2EBCFE32969 +5180EDCE322BDD38E3B34D24819E03ED61C913A9FAFE2DA1822A660C246B1132 +D2C18F76CC413D4AD1BB8F7A6719FDC7C7E54307495BC0E671CC6F4257C82574 +5FFC9C7EACE612207FC80AD04F0CE33A9308DAF6F02EA444F581D7EC9637BA31 +D088D619ED30DD76E1A2D4F2450E4E7470C9ACF7E73441A9C1F627CDA0F32DE0 +B7FE8F7DD39AE7D4C671D775FA71CAC0E3537BEC8956C46DD81C4B29B4C65873 +DC053BC3827D0947EBB8CC1DF80DAB12135E54AF6C489598B58A687011F2019B +3A6ED5AA1797B6F58F3BE160573274624A55B69129AC4C86B33404FDE406D5F9 +76D0E54A25FE781008B57DB7C863AE75212D25AE5B959DA89CB28A299656B276 +36D7113C9E7417E647E1FBBB332C0B838B6C082598D7C606E50D7E2419EC543D +73E361E9683B599A2C1050C5B73BF815A467CD414AD37F41BA211B4BECC383CE +F8FC5696278F0AE855A1101E512572FD3F30D60BAE1A0165A568B53BFF23CFA0 +1CB2B26C973E5A2E0B5FC41C5A617CE7773DDF19EB06A64C2CF0F0637D8B84FE +FBEB8BA8C755AC8302734C06746251B8A35DD4CE918073012A3AB930615D39AB +9A6D39DFB9E17975CE7E0F2389D13BC641F3AF66ED0B4B6D62FC9184F48F8015 +9D4D51A51C6AC5BEE340ECBB958B0F757339CE59ED8AB0761E98FF7B02E0DDE3 +C4E11BD53D1841001683F4A918BB80487AA12E23975E000D8597A4B72AD70EEC +13A14F6C41973A73DA97F1077508F95C54B0742282F8368AB9B4FD77DFF97B9B +27BE5DCE47E49FCDBE2220494A0C4FABEBC926DE359660070BBB1FE92B0F6EB8 +5799877A9682068BBDEC79A122412E529076DF3FFF89EAE2C76F4E9F83D1B1F6 +B394E5F3A25A6CEDCA2193ED7D5831A898DF3B077FE4881792BE4F1191844BCB +419CBE04D43E8D1ED531CC7DB4D033B07DA64BCFDE1D3D9FC2CC33932EC2F715 +3A2D424CB60C4C4209091ACD3A0E12E39EA19748C5FB15BA2942F329E9E98BF5 +B97169BB6B8DAE6BB288142A074627C456D3F4F23539D309E4FC50D848724F02 +FBFBAFD4191C86E720AE8EC14A1EB8438EB057792443CD022CC02ADF3E2EE706 +A83A2B1EB430F3D6FCFC76C5A6CA1FD397EBE513872D78B38B21F638162175CC +21434D7045DAF1504B168D373EBCF3AAAA731D3F5F7924A372EF9874AD440E88 +59FAF76C354DA390063D037CA20A40DBA216F1C2C2E4F3409830E8C89EC0A471 +1A165C821421933BC4EC9389803D648F4694EDC56EF123FDEFC8BEB2EE2FA465 +DB359CCDE2EDF4CBB8A3AB9B0ED4EA8AB7B76AD9ED10B755BB6E888741CFB074 +F186B4BD5E25F58D77126B2E867090A02558950E0FFBAE05C61DD8C35281311E +6D5FC90F3C19BF6AAC7852ACD7A6C23BB7425CCEC4CA6BEA6E483CBA2EBAFDF0 +E83A82E10CE86CDA7C8CD4775665A7BFFAFE3BE4A853300D07686E90BD38A0A8 +82DD035DD61836C8CE369B2FE936880483554EC570A5FF29A0F723944E63E90A +5127DFE8379D9F1371207FD0A3F295F317F3F1F6799743BB48484DF585F2D3ED +BEE95EE42EE02F75EF0119F4C61C520DE95CC782DF9488B75C345F73C3860FF1 +55F3D51A6FEBA24EF9237BA1D85AC16E4ECB66F38D9B6C9B25EF7127FB458496 +7757AE47711B48262210385FA123AA0CAEB9AB37C78E34907285F930B9A523A6 +362DD5415C71A001D9E7C03074DAB5D3B3BAB45659C13E20093D0F56B2D3F889 +9445BEC3182112CFE9E43CA358C4DAA24F1E84F3FF28650B4CA7B1F36DD5433D +32E60A285B84505AC5FD4AC687BD4FA29E2AFDADEA3707ABF193F87C7C1CC2A6 +5D0068901129BBF5B5B33452C69796C3B3C00412D2174CC03131DF534C0913CA +0EC32A7D34228E1CC2A90732AFB04BD672DA8FFFDA3A0CF66A3B8352D98621F2 +0806915D35A0F1A78DAB265214A237D0A0FEB6FF4888CA17F160537FF4D57F0F +E0F08918E7234D7F55081CDB69ADB7226C7C93968F53787D479CCC0189E53E43 +470B5B026C648BDBC68A7DFCABE460EB7439619DB8DD7F4D805A9E9F32DADF5F +FC907E933F4B2372AFB4A0E71B6C99F8FD070B8E404803DA04BA304BACF7E9D0 +3998888B10A013350EE8544AB2CB0A86FDF50DC14DD4C7B12508B9B3C699F513 +48664BDDD1B59D91FD20002A20C090AD0C36F80506580DBE01B310FA8DA9648D +2542A7C69CD24596BE9EA340EBF1DF3E3CD5F69F97C57422FBB6E833EF8BC8A6 +5B9E26A6B39B920E728EEA4496D5510E64573EBFA197BCDD279A8FD920673EC4 +F2C4DB29637CA85825376AF0E6A9BB42306D8C93204350DA9E6EC7D905A688A1 +B210800833967CC378B622927EFE45AF7E340A847BF5E5BF6A0843D326243F0E +CD8C53FF338BC9EF15560E58923F49975F4DBB80FD0419B234EB17A02C82D716 +36375B3D95603022C11CF8D3E849007DCFEA3F96EC1F805EBC432489CDB08C0F +74ACAF542827FCCE89AB24BE3A3BC6E36A466A33E1DA928AA4EBB2AE55F6CFD9 +A06332B3996C282CD288D5A6AAE071FFA5388AB8D88D65A7179939337DB7F57C +315DFB81659842D3D1E4337E88B9DF0228464527D62C1AF0159037D454E82236 +B647F119C7A0C633CC4F2F6D07D5BBC3E5565CEF71321A1AC4915AA8328DF6B3 +2D091D8BCF4B3DF434681D45568C86A9026449CF2C3267F9812441D98607A6D0 +36FFE0C91A1639BD66158469A2359A626C5E0549FD06BAD1D0EBC6321349CB51 +9258A948C22937C2CB277A99AAF997D31B7732C5629D94AD7866B704B4A09097 +1DF661025E2F3F37BB52ED116A019907E76727279FE9F674F0A267C7D7AA28EC +73559ED90501AF62F9BE0A8D4B1E5A8A970709160F12FA954601BDA2B090D459 +EFE8A877F135837F11F20E2D298B25500B733FFA1357895E8F767B5052C6239C +E72ED4F5101C2F649F31EBF2052235571244E1B20A6781C10A8753E85C25B717 +9850B987DDF220F39FBCFDB7C8C669C136C563C3ECCF41C1475809497BAB2CBB +B8C6E1976CAB82A8CF9997FB5FD7785BA3E9F5347E6C2503A58369028FF11A47 +B28A93C32B6410F30FA15F796FE9306383D42E356DF6A2269E4E651A7924F0E1 +B3D38215C520E17ACE24548D699AB625E232BADF189541031D54E7A9B305FCA9 +EF39CB6EC17DF3744C9A7E79BFC5750B45AACE041283C5E4B9888A21F7B179E4 +387B7CF66E0AB6DF0116832A6DFABD025D9D46038CEB07037B622BF351AB9935 +F90CA5C8AB11A973BE4794777C3DD0B372209C852426E1A1C8A40E6CB1754DCC +83010C1510774304617F29316AC4337F46AC343950E39774D5C61317D1A2C058 +67230E537A6F9DAB0273E0329A0828F6283265DBFF465FD7D01DBE88AE5C52CF +1387BAB74BC7DD2090C4AFC2BE6724CA52960873549E9E0CC386AA5B8E52A8E0 +1E364F72B10F03CE93DB4AE6CD7BDFF8649C22C94872F3964788F42A15553424 +527127A604B0EF454F01D5BDF29CAC5930541320C4C583496516DCA2D0FF32D5 +64A72056E76441A491FCB90C796C344E44BA404CC102D5AB0DBC021C3EACC107 +51087904CD30DFC1D4833A9F00324C965AC7585DBCA4E59E0D62700B85C60599 +CE83BAB651911EADE0A721E37FDBD65D9934B8500988DD20132DBEFA6BCD468A +B082BF665635690E2FF0F9817E672AC48B444BFA860B8186F4E0E31FB6824C82 +BAADC89A3438CC49A2FC0BC7A943D4CA2573CC0554B200981EE2A353B664E09A +FBCE84F40F4272B5F49A20B8A6B72FC8DC0E196B682CEE6D44A998C8F9CA8952 +0F69044C11100918F65DA1FEC6ABDD85DE905992ADF98671B2ED928A3D4172B0 +0264DDA8684C83B65CC65AB6BB4E0EE8F26EA57B93C3832B3147BE52A414EC2B +A8D82D47C2FE5C2C9E56328E0720E866F1174D6C6F01C6E67D364C1E03F328AF +3A332CA201854F2FBC62D00809DAB87E8F9B9DCF53F91A8BF0837D519669918D +D8075B96537B2934B07EC5E620243FBD5C6C33D70D57DE6C2C2CC298ED36813B +4BA99A4395DAFD7B4CDC0BA6DFDCA239A3C867A2875C0CC515FEA878222AA1F7 +070F30B12BE68797D48EF5E9D526583969428A1CA0EDF80163C1249D36864BDC +F4EE158716B5A421FB6CC73FBE47F5066B2F7B7F8A201B7C9B6C6275AF9AA9C8 +7AD9AA8F3D6E3C0B6E8977F377B5619815B15399AAADE8DDF9FF70A5D57FAE03 +91E52CA6AD5F9974FB6CF04C55965C26347EEFAAF6DFC61F373F0B8C5ED90BAC +D772A578F78914E048B04D1A29DC16E5EF5CC82AAED18AB74B03386187406661 +BDE37772FDDC4C406B57D7D74B1FB9A9BB9707E57B08B89AD548BBC72211E8DC +9324DB884C5F51F372187F3FB62D43C0930FD7F42F9E3562F9262AFE066F42A1 +5B5BCE7FA7ACF8C2E86A6AAE912B747F2044756E3E7C376A583B7B5F83EA0627 +6822BEB77502C8728E150E66804A8DC068B8EA3C5CB1732D39EE9FFBF4416AE4 +65C1431836D10290D42F8373C023A36F653C0B41CE1548C45DA3910F808E953D +B5BDF8EAFE726924D6A8707B9B82DEBFC34BD631B35E11632E55F6936F56E9B5 +0063C3E80E6793EB6CBD841E861AA43E191AD19A26DA142998BB77A2D37BC88C +0F6A56ACBE91D0B5D82E109D716D369B3C1EF8A9B22DC775AE9C5E6E71CD6CF0 +49D5E97EED830BE3C955920572E432D2FA90BAD0F649D9C980C99F5B28DF8205 +E60564FDE8F48A514559BBC884DFEAB47D9A1946FF786B5C82AA1D7C7D9E08F7 +F9310207EAEA612A399008C7702C2B962D125DEA17269BBBFF98D855E18B84C9 +7DFD438D1233E1C88C594EB0020842DAB034810114C7C48E7903D07CD740391B +659EC0BF811675563FF364DE1C8AECEE02A0C957DEA2A75A124BA6240488983E +B5B1B80038BD61588D70F3AAF332CF8162E0B55D0E8FBFC4550F28DC1DCE8A9A +2592AC0069D438ABEF211683828B6C22B3081C32BE756BB5AAF5F39174D7C41E +B7BA14F6DBD1D25A9352BC4122D4156F5977C9925326C37A2DFAFEC143CA7686 +147F2E22531EAD1A2BC6E50D491F7D6AC58650EB6433C93A951E46AA75F042E5 +5194CF99C5C78FF1E057220A991790CAE9F3944923FDDF1A788CC80E2C932D8E +B488D47F6C1522C0228FCE8B075622AD4FC62DE29F830D136BD28BECFB0767C8 +1B6DB6215369A16E332AC5B78FB5082DBE0D44A86BB94B4C4E59DA66DADA9BCC +8651E547BD3414E29898862DD24F2E4A1335966313B9A4DBE63AC6C6E55A52F7 +A29F5BD06AC40035C29F3515FE9D944CC8EA76D358F106C5C9FCF093830CDD69 +163FF45E2E8644B6D3AEFB8A7894859BDE40125B3454C505DF2CD7D45188FCF7 +98B83AFF66C94BC4E1E9F8BEBB6D1038B79213742987C5D6BF6335289A9E3CBD +A505AA920BF1375EBDAADFBE7A39CEB4577C103560A54891E5442C46775ECE1F +91C294BB654AE4F2E027D84B3BB1977491DD0FA21E619F70874AE1FAA82AA0FC +90D6B7F034A8B7073B36D1FB79F5F643D41E321AEDE6122E2C878B1FF02FD3A8 +48733D44BE8A84F221163953E56D723B1AB7730EB990B5BB0E2C3A5D6B77B3D3 +882517CB1AEB63C18106F3A6066F0F061C875D3517413031AA6F3109145B7550 +A90F887B1AE441E1549333A77F17A9E995485765C2E6D14129CCEA30BCA1B9A6 +7CD0EF171E0D2C04CB1FEF06CAA50D8F2720CE534B894FFF9C78E693D636466D +8B4D64285D6091859EE7052FF54113B8E772F9F8A78B5C8FEB72B9FE40AB5444 +DB99C680BB9F9309998A4488FF6777314C3A7CFC6D90D05D09CD5F437BB19350 +9173CB3943D0E414F162E06FAB9B61FD06D11FF90542858BBBC657A0624406B9 +9C5D3DDB47A1FB8D8BB7439E94E04324C3E76712B752E8D766586807D919146A +7181D764EE93D33C49070B824337D29A6F117CE52CCCD588ED94E25C8014EA71 +BE4FB1D87EA3097018432CA89320ABEA25FF5F7A649B0FD13A333E214703926E +7384698F95846C1ED1309F08467FD2A739111CFF94DBCAC0A75A9EA78E535634 +26239B4B15BE952748A0DCF78BE79DA2D130ED71086C55FE8B70E174596AADA6 +6C14CB53504D0474F318D11F03EDA4AEF8DEE94D1C105D94475954680EC8F6D8 +2DA09729EAA4011808A5597F3E7F771622B7B5E3D57768E2071535D000AE2CA9 +E1305D52C062CD6E1831FD71C95BD59ECDCFB2F3D87844253F6672D434245ADD +FCB3779CEBDADB884281B83FD0036AA29D55FB7ECC77FE1468648F76367683F3 +90FCB4EBD75A77D9343C87A59B29E03F9662F2914894DA25FF0448B0DEADF00D +48DB75ED9532CCD51F6CFF0F99AFCC16675B5D73BB355B2F2714B8C72C34FE81 +B44E4ECFA9568849CE91B72AE08A5E7D0792E25AFBE80C2774FBECFA2646EFC9 +495CAEEE7CB37055439E826AD42B0DC950EBB34616471387549D0DE5EFF2968E +47D28300F14363073A82B8DCEF84B26CA612ADB6DE0971B4B7B2BA4D398AF060 +8BD425CB84AD2E5281EFA4B3E86338925E357A935B262A2BB3A00B558DF8EFC8 +DA18D7CD172E8967F42B7B0434186008FC5F4FC485BB3154928D0FDD01BE4EC0 +7C44563E0B1C6AC21C2D9DF23FA5E5964E176DCEF861D61B305B71DEA6416566 +B379473987F6ADEED63DD10B109C87BB30FBE964BF8302D613B019DAE722C332 +6AE4C6E1C2FA92CD50F61A448E8751ED0693257749DE7669D41C7E4C68217C5C +FA3083785DA9B57740B2BFDFE63D199622676C78C63A918FCFE3490ACE7ABF41 +85B00824EE2E9769EB021D73CEBA4591C90C21A76E41E3A59C9F42D33D8E79C7 +02B5BB6308A3452A178426031D3C9E49FFDC21D24CE28B5DC824783DD30D3570 +F45D35EC05C0B409D96446B409203B52D1B9AE60ABC839E77D437388643039ED +68BD2864BFB75E5D50B1297B0615DF446C1ACA4CBA029E1B788936A553651FF5 +525E05DAAA3C0E7126D2A27F1B5F3BD92320B91DB1A53DDE5B11977CB68E5305 +5526278A91F63B67BF1028B1AA6BAD92313063917C22B5F595DDFA49FA8E27B9 +B3BDF45B0CFA161CC0A511D1B346C8C87B028F55E6ED02FCC8612812BC51B496 +CA0D181E557306453D9E2654EAC28E525B996EA79DFD1FAD31BBAB4B03B877A1 +4AE97382367084A129B213433070F609C50FD2322F5EDA4C62257FD516E978BE +2B9B2A93BC13169A3582669EBD9B12F85431C09D4917B6DE8EA37F8FF178D05B +310EFDB570A41E1A8787DAF20066F21C146AC79131461F05DF3A433545746F0B +179FDE9774C5EC24CAA13FBBE3678889F4B8B496D853B3608B9B311FBE6BF1F3 +8235F18B1239FEDD8F0AE08F87080984E120ED49926C4A509BFF8DC8A7F14758 +9A29003875FC10F64C7BCDE95E74BC336C5FA251384E36242827BF4FB53F5D1A +3FEA7477C9C7EBB48EB692C128BBF8ACF196E954C738E407256F47BD6A32E787 +1304BD2D591BFD192957CD07F9859E7E575AF2FD01F398E735A445C9C1518C15 +0B6F7A522EC0654EFA6391521489B0FCB80EA988FB6B1447DA2AAA4BD49A37EB +3894879736562C8202DAA48D6A709D181547FD29A8A5A37273050AE8C79FE880 +A989DC8634B9DDF5601D7FD9FCB22694BAAC6F4EF277E7B5C5BA6D035391951F +8B0563B747B35958FD439298E17D77B91E40783B3B4872B0BCD3C97D3AF55E25 +CDDBABE2A1B995AB5F8FD40E98D483CB5914D82F4B0EDBA181B19643DE8E3A67 +B962755186D2808CD4831A1B335B56757A39AD89884DBD60AB8EDB4D8D5A9958 +B96C523A02CED21E213A19AC1B72503B5F64F4A9461E506A2486EB42A46DF49F +24576FE9694188DB022B99DBA921D03B0C81C07C209DC9E35700E780A9D2AB41 +7102576C16D9EC06A581B4FDA804EB4546D007AF1E4FAD2E325D6577CB010119 +EE27B9BB5D50997910241722DBFBA4C84CAF2F89AC9C8A4AA7B7A57EC31BECF8 +923E0AC67A5A4D89C71E3EB35AEDDEA8CA2DAC4CE8F7348401BE8713738CB715 +EDFFC05B14FD2D2F36781482E63C1817EA9D3B9EBE46D396BDB21CEDD2CDBB04 +9FE5005A739CCCD7766DB4F59A97C095C9F0F9DE3FB26F35760619E3E496F3E1 +ACA51F0862957BE2EBAE58316B4C581D042E234D9E5F61CD3D91C70307CD9E3E +A642C76C48076887D79888FEABA3C6CDA215ABEDC1EC16724661BC2550D11CA0 +C04B8E967DE46DB61FC1D20C88A4F93D294955E9D7D47431FACB1437808AFF3A +933C2C6E8DDACCF3BCFA7E20688885952BBB925503A8A266138F3C87E7D92885 +BB56658E18B2B043F12BC97B5011829CEDB1076A62E93C63A26C3B41D2C6D3E4 +F282F77723B833C28BC21B64E12778CCECA4715C6FB780599DEB8555767CC5D8 +12A830DD1F5C0464F6C08CB4AA240C08734AE4FDC4A69122248489A14DE744E6 +A8B6354516EAE77FB0430D847BF99B2C116AF7B7DE588168CB706C370D3AE925 +04F7284A1806F5926E01F4B1E0C034F203B99EAEC6DC2707FDA16F8A77CFB733 +0C3EFB883A4A12511975CF2A516C282E64A0B5837CFB13CD1EFF132EE853A732 +3EE2B424B4F503AA5BE4A897B3A1E3D6CF48E662E2A39B27334809B079B02BC8 +2BAF9FEE5B0DFC858B4473CE0ECA9E7F45BD9AF29BAAC5905D7E7E95206B1687 +F7EE99AF79439CE8D288255268C28908A5AFC84F025B758E498483DCDF4EA4BD +B8F3DC4573BE7836E70D2640CC16D054EC47C9EC99AFF4CFC04E34D1229BC683 +11D9C38C53A0FC38C4A1BAD15651BD87E1961077DBB2DA195CF8073E6BAC3EAE +7EE00FD2DA5A92DB75BB509928A628A213405A293E95419C8CA60310623D7A97 +A3DB96F906FD9441DAD0CC4B8E0669E7DE97B6D3982369E8A05E537398FEAB23 +026A5E404B612318FD4DBDFDF362D90BE50825D7204CC0EBDE8CA985C28D40F6 +6FC80D07E063220E1389C8B4444FC1EF173216223ABCE97E83720B3ADCFF1BC5 +239A2E76DCFCCE991AF43DBE0528C664732101400272ED37F7051B5018A4EE62 +BC1B5D636E58F8FC1337281A35577CD3EEB9DC85006CA82BD92F20CB63D40AB3 +EE2B9E19873C783880DB864E1080BDE6116B499E08932AB7A4B84C71FDFB483A +8F06F63BEE22D5E61D69259A238297CBDF6D21BCFF7D823583F9854616A41D6E +2026C604F4646251400B83FA000C9C7EF7D8AF6776769D4BDE3541034E56FD8D +5361EA706078167AD33B998E03B2338A0BF623BD369B6435007C4FA7BABDB516 +4CB2F0F87D2C3A116D572E7F5BEC50699CFE0F196DF0065F1D5BEC016B931C46 +F3967C5500B941F43E312B27CC723DA1FF28F7B8E7BD6D9B944E33F268A81A71 +4B60C7BF5ECC9AB4E763612D6A1014D1D8A5F272029C9AB2A08971F1393560D7 +954D770FFEDFCF9BA7AA4DA2CB76489B413A783DECB9234663795CDADB7A8A4F +3B8735CB8719A9CAD9CC84E878752E1445F6615C5FCEDF8828E7E4D96C8B5740 +617CAB61DF4D397B56F72189198CA66BFF231F6811962A762EB628582B74E528 +A55568A99B341ED6C2B7F5020938E023A17782E73B1513E54A9D5A293FCC9C64 +2ED629980178458876A7183DE309D9841BDD95B9B01EC9BEB82E3A1A0861628C +A556F9EF08F8FBCACAC2A2BB +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMR8 +%!PS-AdobeFont-1.1: CMR8 1.0 +%%CreationDate: 1991 Aug 20 16:39:40 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CMR8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-36 -250 1070 750}readonly def +/UniqueID 5000791 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 +9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F +D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 +469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 +2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C +68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 +3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65 +48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3 +9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB +0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB +8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F +EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466 +FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3 +9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62 +D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8 +9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5 +ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6 +10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582 +83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493 +2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA912A2BCC6CA6105B29 +044005DDBEAF88E0F05541BBD233977A447B469F013D8535A9D7023CC0FB7B49 +A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0 +23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413 +19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42 +1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39 +8BF32EFC8C0D1CC0C1622ABA0B6CE939036B2D9CAFA2A3B0C4B5DD9AE5B2D798 +CC856CB41F82D3B5FCBBF70D07E05369713730081901FEDE318F9DA81D39F84C +45D0996AC0E8FD780FD2E5E6BD013D98463E0A51034735243F2B3695371E8451 +6A6EC4236E47A282AD2966E06BF3FB59C6222C15A34F1E910E637D805741BC1D +CD426BF31361147DA45BDA2884880D90AEE92DF02AE5C4772537FEEA157A6D50 +3BBB910A80A2EF41D18213631584B343ECFBD6BA006AD6BCAC63E9CD9430DF59 +98091BE32FE17FCA7B32DCA95052F5BACF73FEAFCE5EA47B740FDC972C2FAB94 +E1FE42F8536DE4DD0DBFC4CCF3A96DC1140F736344D4DC796756948ABEE0433B +BFFD9F1A343259444D248598844888F046800D6BFC7BFE3F63900767727A8742 +10C756EC6380274290F84F7B2055C2390BF04B466B5D4437C0D6AC55C90792CE +8A8BB5602BC96118B07FDB8692006E91585273AEFF55D71967011A1658205ECB +A0B0C1CE1F7C5167A5868D5DA81EE5CC3A41983425663776391EA37525FF1357 +2CBD0C9B4644850880C5115C7F0677A605C1009D018A9D6BF4F94A6DD019CA26 +FA7D748D55D441CE1111EFE5254381E1F916912E1B446CC7803DEB5C9B1AF811 +3938473A2FDD49E5A0360F4020CAF9E85E056E59430B18AD352BA929C9A3DA10 +D7C524D92AEA6F4DCC13E2B59DBC0B8C0CD90B1E4E82BCEE516928BC9E1BB67A +060EFD856CC9F1CFFEF90C421DBB3CAFD1959B332EADE93C9CCB31006248BD6A +5D79AA8E049C5EA70DAB46F5D3E73984814E9F3E15A0383EFCD157240D43BF23 +F84372FB3915791E581FA0E4CD457289FACCC08C0D37CEC1FC45DE3751445A9F +824A6B006B5E672AAABEC2B8D5DB7B0745C1D01C52657B7DF4FFB9803FD9655F +B7D34C6048E8BF44A0235DFA9791770CB3E451E01ED7A578512DCA397F24F71D +B2784D0778C02BCD5A88FB1671F8019523D8ECD0F42D273A72F2140D3C14F40F +7BC451BE2FD39FA297D9857745B4B8F8531CA0DFD9E72E8EE0E7FBCDA811C8D4 +167DA0037F9F1F181115209C22FA250C8234695C1085931C3D92585563366C74 +826D4E5F9A61F39E3F8CEB8701591C4A5FC62940C2729A2D9FFAB09F833D47C8 +1B184163D87FB4E5EC4BD91B81C325FDA8ECC31EAC76FAB333A9EE090C202EFA +FB2BF753A5AB8D147F8949C6FCA5922E1B2C6231ED86BBB953166DE2C08A3DC2 +433C76CAA7260AC901C3B4E2E78C8A6064F0ABBA1F4D16BACAC5288F199A0929 +25F1DC8ECA38DA299A229D86E105C29CCD0FD59585467BAB46AECA7A76905CEB +1CE91EFB79E3B4EE3CDE096E2CF63DFF71544E639567BC8F12263B2F596CB4F1 +FEECEB69763A7EE15B0E59A2529A116E6E3BD067BFB3690021068ECBF18F6D9C +3F3F07D8C7E2A7793FDEE84EAB71613A6EA8F6AC665A7C0376A6406171EAF3F3 +4E466A08318F942F2830757721CE2B193F3A7404D51375DF34495AE48356DD78 +E4AB3A71C2BE2094D5196BBBEBF056029805A302F6AE5F4A9BDB25461E81617E +A634959D343DAC10BD072CE16D7C51C120F9B6A1D75EBC4D03DF60048B8CE15A +94FD31DAE86A4BF525C979C7E96BC1DE88069A342C9E07C0340AA83DCF381134 +0C13C315D1B690B5E858A20362441C9F61A20B70392F87078E5C3F8B4AF23D99 +B051B170140D0069DC6E2D4FFAC6E45EE56221264A894AE68FABF04994EF9D87 +EF92B498493E3F0B2F003C47C861320E714FE36F9B4669226E40753B2FA90731 +CE281E469DB371C975B186E2910879681485763CD9316CD4017C5D9ACE43DCA0 +38397FE463F2A3D6B72209FBEA175E75793163F0FE4A2CAE3C7E5061D1A7C31E +1F8FD3082D2743CEEA008B0F0AB55C2BBA23918A1BE4200DC628662775AC2D66 +FB16BB7C06C295357A1BD655CFF3E0C49046C2CFC70FDB87E62C2EA187A0914D +2B55FDECDD9309FC215AF8882D65174ECEC01F38158C4D96FF9EF1B17AF32EB4 +E7C2B4770F5CE67E2B26BA0ABA9116BB3F89944E308A0127C99B1A145F730B50 +28473FD0DE250D63A7116DA1ECCE93B02F3CED8C894E6B090F5A01A26822503C +EA68C5A7BC8734C35E40D3A56449F6AC36406A0818C666F0EFB88BF02AC4C296 +201B0D0848450A54B3FE1A75F641D1592D265CA639D29DD99C47AC8DCAA2FE5F +0216CD31751A42FB48F53200053979FD87DEBBF427363CE1748FAADFA0C6E2C7 +9B407F5D041D9383385891A86F33AC51F0C7F4902580D9446D8118D8EF2BB177 +5C2A39867EF485A454C07CD835350997F5C18EC1C3A83E57F57D8A0813EF784D +19B088E03344EEB3EE8AF03D18B2A4EB5A57E1DE60CFFC487FF1C2DCCDC88C40 +1B7B1B16A0DB3AA16474F6CF5F92C7490CA1F3D94B33B18DAAAED531D2740961 +53F662902417A01C2B33489862A446A5D7BC27B87ED382CC41175114C7B0D42E +6DEED8A64B3034F764BDAFAA477191564F3EF1339976051C0BFF59E56FA20C7D +C5954E0A805A4A8431B40401E8A188D2409A16013427152F64CD8CD502C5EC4E +B2F5AFFBF1F4D5BBD636109F2AF10BF4737DC0F722E11649EA017EBB2F4F531C +9D08E88CCC7D3345E4B2A96F14C9CF8E211B90F8A2CE2EF57A68BDA5997271C1 +93A69D91A285B2198A12F8B3C23FCA396CBF176473CC5A4C4E24ED72990BDF14 +162EDFE244272250864246D493134DBC29C5CF2C8A5B5E27FCCFC7C577C014FE +FD8F723CFC46F2D9700738788930F22656B5F1AD5A34C4EA6C96EF45C8E68138 +CE87FEA609914E3936624E1E6B167A60237A34C04FF1500C52E7258FDF3DE58E +FFED1699614DE43622D1057F172E54AEE1257FCC853C0D1828B072F7F4477309 +4E3E42B5C00413307335285F8404FE1229D1B2006D482993E7F96D8C9BB7C41E +CB0A9B91F02CAAA3B8A05143ED6330BE0ADC9549D1AE8A46B2BB68E3002F3589 +0D5AFDA53BF17BC6E069E5B1CB3CD24362C702BF44F7823E005F0700AD2E150C +CC5E486F4AE4103A5D0C7396F31C42843ECA1EAF0632AB3EA191C0701EFA0C42 +452C72B6ECD57240A505F49CDC390DE48C5251F9232F837CE604CA7C6AC0F742 +6742EE1BA48956E6CAB43F05485A4457F44BFF2E75846BFB56F9C34B17CBF84E +4133424ADA7942199449554E493E2CBF5A4EAD39A22C166F02E5332197F32C88 +542CDD0D5018D322396F3BF767CAEB823ECD801D22E536D6201747DE4D2CFEFC +30CF112F6DA37736C836CE44A458B170B974F2BC9B7EE06AB478F2EB94774A5A +F18E82473C5016AE0FA8AE9DFA174F17945A5F3526C73A24D348E2A2FD14899E +5D33177E01B7D101A571E196405CA95FE795CBD73F7185DE01F99C1122B2C050 +A4D54AC01881582AE55E34FCFB39189C4482230FE1C01F7BAF31F97B59DA6823 +606D7E318EDA739F6C18B7A3F011E76EEA67C696EE9EEBFEBC8F1F95CB450D0A +E8D3AB2C3263ADAB024A24C7FA0A97A999CB15CA3A4F1004B891C3B1A61C93AF +DF660F538AE9E9AB3100AFFDE1C2FC0A20BEE9D615E3CB4B53E5EC018D155C38 +A5EBF387580F8DABA8EBD854D110A3E26E68AB1864DEE8B0761BF79929D00B4A +D5C678B3554FDC5F3FEED2891CFE346738B953755CEB44F62C30CA29E67AAB6A +2EEF052589E23BD9BE75BF55C20B2445275E393739B07F99237821B0A5E1A20A +CDED05F6F8E3A71EC35CC05B292A5BCD00DB9E1AF709B534B6444DB05E3DA8A3 +96AE55C605561C0B6A7554B15E92449EE11B8F7E89CD9A70AF84CF6C7BA04657 +F0B0852885895FB5CF40A784616C4D188608E0A05042F12266D8DAC41A327E27 +0E2E6E10B4B3C0476393A61ED9DB1EB1F176E928D6238A3C0D2539A959EBF5D0 +3BCEBB0322860527950C55ED2D4C844044F7F0BB337904F99EB74F637236DF00 +F90DE9DE52149E7C6D0B6D6D36AA85AD970C18F322EE75462A2C52DFA781E734 +2BCBD96660823A6DE010001EEEEC1926B947F9E9CDFA883AB9925780381C1DBC +3417EDD970BF8482C8155C73A02422F562D9D9F56606E48D627E802366DDC1EE +B7331E7FCB55728B01F0D97C23253E04C626AEAAC55F4EB216680674BE270602 +B80192CB609109F0E350C48F3E20D42B05F067FA0AB18037FD0E732B296CC768 +BF3539030639D6D8ECCD940032995291AE1FBD9D421C673F4FA9D34AE63D2DFC +AE03320CB59D13D6B5E4E2A3E333529185F0E23874B114C8F4387EB59B475109 +E096277C688277DD584572410DF275621E4AADFA508CF5A69B7974B30178E2AE +31ADE87FA201AF5FE922D53234D351FEFD9DFF562E1B281C7E2A68CC085DE9C2 +AE436D46D43CE94C523CBBC82D96B7E76F8322A4E19A8C6CF241B2BE49D38DCB +AAEAF2B26D1DF4E888795CABFC02D2638D1FC37C2F49A3C83DA895A8524FE67D +4F4D0AEC23A47590D0E57366131C7FF955ED112801CF5BBBBC10E4A0E6BA5411 +2CB485EC1ECE33939A046FC36465D7329E68C0B2078987880AB7591186C754CE +4BD0B637C0261F18F73629BF0ED66CBB9FC3067856D540C247237141A40E6CF4 +26B25A14A384EFA64ADCBBACD45A4A939F46EFCEF30FECCB2FB3F6BFB718CD4B +E3246CD88174AE242FF36A1C6E55B84B9C71E3654A6EBC1ED4F46A712F910D03 +95E3D9029777525353380EF5ADCD5E661222EB84E393B6B0C45D8C84BCFD273B +5C35E2F3952878A95BE4C3AD957A6544D243BE39B542F1360026AB11ED702D3D +293BE40D768BB9D1AFDF023222AA2F664F4394C9ECB6CC52385AC5A0994C98AD +B23FF9A62CA38148761EF2BA540A2BC108B43D3022F63BF382240B385F897E70 +0420B27358E70C984AE457B3F9F7FA3D1934303F0CF8859F565B6512342A95CC +2D5CC1676C56529ECF3F17EDF87C18FD2503458F243F30F6CDBEC993DC57F4C7 +223C1F1283D57CD45061C068EF11CE821FDAFEF0C503D5EB4DAAFA01DC78A5B3 +0F95993DC0278379732CF674F6F5678592F1E6253DA074FAD85701522A4A4344 +BB087766467B1092E9E39F17E102A14DA28712591EC460A8D402D929035A469D +1B5D098190F4E61664C8A63BBE334ED5562441877A99B0D200AA114E2D03DE97 +130D476587CC81CC5704AD0D9083CE2F5EBB6CAC4CB03BB40D8BB8920C84703C +CA4EEB8F33911588241A4BA02A2E1A5C65B2F5AF7314C09416B20EBC97386D90 +EAB27919C307D3BCB700172A99B5BF37CABB3CBE3F1B075287D2D03721496D22 +DA6BD5BFF4E5E62611A0723BEFBB65797C88249C6804B6E93ADF3AEF7ECA513C +CFEEB66F779878BAAEAA20EAD7056B0F51F95051B6190115F4A447C53815B4EB +94B7900E623A1C41F9CAC0C7D65C2BB54EDCE5B9D76322903BC48DD047537D06 +46395296EC3E4A1BB6B153ECD9D36B9095C3123BA5B32BB8646698E8BEA95666 +F9867DE4ACDFC7CB44D4DCA8B3360E73F6D1EF7DAF326A9DDE9EC22C0616AD99 +5ED955DB0E578E7AA0FE141F3C44BB37CCA9955003FA5D945F4FA44482D44475 +0D9CFDE0DB6E3D7156629283E945C7DC35007BB44ADC0C29421551B4793C48F2 +9BB25FE573EB17CEA97DA58230B1286AC7CC5179C1E339C6743A0CC72BED3975 +1FFC2313864BA71AB5A722C00E0BBFF356348B9EE6D6F1A5458FBD460641DE67 +6E974FD89E45F9CA10F7E72AFE0343B7A8F5DA0495D358D702B8CBC79F9B473F +A8D9C902EF7F9B59C8CCEB6299A538909BF4FF5AD9185F99F14DA45709317129 +462012B5B4270A4311B7B6FCB7D3EEC1E5FB3ECCBE388630AF64D4156DCE0D03 +A26F66AF81AB3F8AFDCE48BAF70E9E4861737A012DCF2F8E77967F72F043795E +5C85DCA9BC49BF7A7E0C4522AF30FEA52A9C52C7E4D7CFA537B3777B782BD2AD +2BE35F22500446E1B61E594E911E488C18165AC0B01A7FE1283F7AFA381EB811 +F864B5DC6A4925609AF5039104060330DA2D27A5E2C8F1DF8283BD589056C0BC +6A02AF9989CA7CCF94C6F3D1473D196386A074428FF7583A3DEAF5A8D9B5D12D +ABDDCADFE4EEB2DF9A053FAAE82010A879995E8F9B2AC572645E8914165A1449 +44267068926D2CB31B354EA384DC109EE9F50E9E9E49826F205189A5BE89DE14 +AB5CA988D880CADEFB2BA5AC078A4CC2F33CCD0CA27C657302479A9D1AECE955 +4A7160DF4570E35B26DA90E9BA20148F729C24D7E74C8DD3DF4B207B32304280 +0D5F9406BEE42AE63DF1E5BD68AF1DF7DAC4602CFA999736A786ADCB18A9046E +3961277C68E81EFA14800841E91EDF1C77B00D3BBBECE7F9FE58591E1499715D +BFBA69ABE2FDD2B1E248E2D6DACB125EA43880F29C5A9CF3F0C7DCC43C354046 +8F93F19F6F594ADBE1E3EA938FDC047E52605E4742C428A67E9B18B76BA5AECF +B4AB1E00A48667BA44E189130C0C189D3F977F247164FE5A3A485B52541429AF +E9C1B32BDB3A2D014833FF94AE8EB067DD84122F7D2B51A21A62197EE11AE7C3 +AD85DAED544D576045F6F1A6D1FA0C972562D763104421F30841A8546B4A66C3 +CFBF5DFFEECC61140838C524385E9F7AEAFF5D1660C4359CE2E78CB8C005DE8D +C129827E86DAB8B1F9C5232D97EAA97AF610E3B44166E90224A0A91A43B02AED +B9E2BAFD21FE9DB02D9A9B22294B4013EC8EE266A787A8ABE1E628F72EBDD2A0 +AABE63827965B3200B83B5059D833A971F9042AA546363A80E62311D1FB318A6 +1188E0BCF3F2BD0FDB4F2263C121AB8A07AB275D0BDA536B6CC142B767925465 +964B038F7BDCB7DF5EEB740CF338527D072EFADD16DB5F6BA52A84479542AA51 +F28190FAB15EA23C228A61405811005C7CE0E21EB79649AD6289849F053915FC +5B8555D2BDE28735312FEFFFF4E23C2C2404934D9F7D885F1EC3BAEF0E289CF6 +ABA21F54E0702408F4AAE78D411848AD2830BAE81CF1431011B59E329E07F51F +051FF0C40A804A67734993DD8314E20219933E4711DCB5EDDB90EDC9FF0BC30A +263ED16549BBDDBB3C0898B06E5C52040D544324A7256E5805B68BE8EB1D54E3 +D5BF297005EC34D5BE3FD5C82C19F4E76379BF69EFEB4974D13AA7AC11F43AAD +992CC85847CB09275E8EBE85EB0C7CD557230C3A577BC6B4C2E195D2A5A374E9 +2AC334058123AD77C8B99DA9352A48E9E21E469EB42F554917178E8E63DE7067 +01B3794E24F711FF339AD59867FD694ECC777F6BD608E585DC55A46C10A42B85 +3FAAD25C96BAB1276EF252893DEF6AFB30922C5CA9330DD27385172A9262E84D +641317296A63FFCBF15238BECF67870A09151F99F4CDC061431FCCC3A59BE037 +38A8BFD875CF1475184A3A1C1AF840ED0A6DB62D3FE280A22E4A6FB5A1602ED3 +9FF7F89C106C69F1E4685C7973D284A2468E5B17DEC92AC3DC98DD86308956C0 +DDF05947422148CB98E196ACD07691CEE317FBBF893D19653CA5BF9D3E5E3B31 +8D29FF62600A5C0AFBDB300B186A925784BB46151968E1CB6CBEAEA939D245BE +ADDC77901D84547E0AFB043962B83CC3C741B4B6707FE0E90B5602E4D6793790 +BD15A6522E1D9CFBF761A99BFEC1E7F19BA9582DD6EFD5A9FED8C3ACEB794B62 +90692AA1C5B60032F51633726FBB9D0214F1D67F6FDDC2C84893E2183E1C697B +66D747E980599F5F210FD58EDBC690A062054BF232C89F7035796A4158E142F2 +7421B25DE02811392DE83040DE3BD824F525CBD1FE2570384488DBFE213DA394 +B75D8CB9AB47589F6ADD12F5AAEC6FF5D40CFBA3F9A960A55D07BF742002CC22 +D8018F0AD5FA0F2E220190F6067E08EED313089A2C3EF70B3BE3C3A1A5355EBF +70534AB7B3970DC59493CB1EEAE581219911505BDA51F935D2CCF68DABDB3FD6 +ABCC410555D070321F4239E4BD67BFDFF52527C624694115672D0CE4FB406BBF +09535C981528C0CD78DDDFC9617FE2443B77FFF4CA6D0D6D07EB6349EF42591D +53866DB3B1C7B339613B4ED674CFF7E54CA0F7A50B22B4AA482F15251303857B +EF072F6ED2F967AA49396FC347E94B2DE393BB65F21606C540D0274E2E873201 +9E683958FE822DF272E5D5982EA16764FA0D5224C28237F77669875A5F2E5A5B +B4E303D11D4CCCB2A6F752CF2A24ADE9B924DF6A4267F51C6E4EEC44B54A8E1E +8A4953D50BAD05CBC973541784BE5B7824F8C286F3E9E15FD0AC0FE379F65526 +0239AE2288A59FC5A5D21EED17A5AD8026D15461D07035F7E07774D7AB38C184 +7CF07B72515656D190F5AB8895C978861C89ACBD621C656CC60DBD68F0B93718 +7DF9CC87B75A7C671181321A0B08386BD32C46B66A4652B38C1D022B29E3FC64 +B9E3CA763C617BED7C6553A4E3F8E3B96F46E8D8C959CCB54BF082E87C276ADD +12C976EDDBF1D4567688CFFE8C87A26A467A3F0AA27C168B5D9EB2E8B3A9DCE3 +435445740639263C7F73C35BD8F94EDA59EF7109DB8CFC538D7CBEB46FF779C5 +67B6760743DC1FE4EF1C4BA2485546139259A0390E1E754AD592F94740A3FE5D +6A23B53E7B56F160D45B7FC5D6CF514A7133A97F94AB941E586A184B84885690 +AF9BB6BA97EE23D47EAF47002271BED4285C291230DD7FA1192B7095FB192FD3 +598AD508F9488DBB15D8FB8737D9A6F92BD67C6137C0F7B4E5BA87AF4E70CA94 +FC4C6B1623F3241A95B5DBE3F695F3832D0C4534131FF5CBC576E5C555276C39 +B417935D5597C5A8D5911B83B57EE28DE46D499FBE3B9E9532EF1C67161BCD3F +27DF27B347FD143E742F3D2705A244F732704DEE5B4A8DC6258E2AB3DC113DB6 +A08C1604CF5961159E806FF8FEA1D999C484731B1F05CB62A54CF6BE2D51C232 +3766419DD93FD8A39014046FD92D04726692B6EB2832EBA553BE71782D70A32B +D5C1CB8DF387BCE5C635A19AABA0435547D85116408AE2B783549D8A3A029374 +9DB669DCFDA30485AF3B79B2173F28CB28245F2F5F68F48D08BEBC6A8FBDFA47 +6C98B7FB2C42C8666E5F2D7D37CF8959F1C98C4EBFD3CC7A4E867444A6AACB51 +0153C40A874BEB0BBD655695D234D85F434388FF33CCDA1DF7CB5537CEB03DF0 +40F1697B84E4E7B63825A47994C4E2E9DCB45E77D42732E699BF16ADADB39555 +17D808354D06277EF766613BDE1A622AE94447F342FEC653F142EC2797131C72 +B3C8CC6376150E1556CE2E35F3C20FB154FC2ECFCD630D5BF852D4496BF6CF5D +9E33D3481E968DEC65D1246FE19678C33ADF6009477CED02190076D4C08732EC +F6144083DD3BFC5763CBE8A747F163531CDE873129E314F30596C2C332D5D98B +0FE07C0364B76718CF58FED0B123AB7B217F503BF637A8D9C41AF071B7DFC954 +9C4B6ED150F7DC41BC7F94AFBDB81F367143567AD4A5DA72D82EB109D126004A +4EE29C513E0FF34DF8C77B002E1EA48AC0D281ED349C7F187B842B045635157D +E6C89926E90AB4B066E30C81EFBCE680ECC7191DF3DF03EA1D21EEF9DE3500F7 +4280682B7AFEBCD882E5D682121C807F147029FBE12D6F4F26F2ACB5BB140AC5 +B2F80BDB64B1F9E30324838562B3B4C3B36EA748FA54BC1180BEF7596D9A387C +A057B81EA7CAED9604B7AE6725D31AF3F68BDA19D38E3A48DA9002A2A03814B3 +21A422FA3428E1B2DC2F91F7FC2788496853FE5DFC08CAC72BE1E9F21B54D250 +1BD632321EF35F8A6BD9B90FAD3AB00D0DED3115C757D0D7838AA4483FAF3260 +F36FB719D17A71213F6D77AF59B77B9B5C0EB83C2CE63C868DAC1A5783FDADA1 +CEECE8B6C64034CFDCE117CC166AF4756E7D597EE125FDD6CBC62C9C09387E78 +82BFBE125C7758F69C59938A25B9D92319E16FE252E9B80E8AC99F99E5517537 +C2326EEE1175EF35D500B0FBB677117531E81EE0C4A1EB80C3BAC6D34728FCF9 +165554718D6DAB4E35FA736DDBDD5FAEA6C45664D966DEC76221664C90BC9CB8 +B6D14C5A98204FB1A03B3040B1BFD03D5DE85305C82C0F810A41697C0F98EBE8 +92BA17C8088F8F17BED5E28DCDEC2B30E04C9EAF1C2FE159FB36A451AA188F66 +A1380CB589FCAAD963ACB42BFF3A692252235BC1ED6D88607C832D1FFAD29CA2 +4C5E8BACE100E5ADE2D90A6F0B4D6BAAC9CC1823F7F57EAC3B6491F3DAFD27B1 +0CDD9EAC4E7EC8EAF0BAE3A264C974207B9A1547F1AA810BAE610269E30427D6 +33CEDD3367F63A0F3E9750C0B81196D22707CAA85D1D8367B962BDF8371035CD +5F8808BA6E59E9697762B35507892B967ABBF2D23CC615D6879D08E758DC056B +48403AD1F51EEB69C715B93EB220E8307239FD7EB6EB50BF5C303234CF5D2D38 +068B87644EDD64FF1BC9D21A25E19FBB06497B8311BE186600CB435A4A8DA958 +2B8B5DC45C17A366C3CCA1CE7BFFE2CBDC981C770296996CC04A3CEEA54F141F +C27DB1A955FFBEF340ED8359D2ABA8902D422DAB429989186DA433FA6CEF749D +83ABCC919D81270F423AD0B5B40BA5A46CD9E64F7D257957506EA444BD3C24BE +C5FBE4AFB68423075C039B0AE4B6F0FD79C2E4E5CC67127DEFCD5FCAD83BBC55 +315B1C1CF70C1CD983192A60C7810AC6BFCB349EC9E804686842CA2CC18E8E2F +861C4F72527DAB3C17D079C539237E16F17A04A8B041D9260F27586166FA1817 +8D6F992BA28F34EB93EF5FE24C8D785A0B1E46BD9FACA23BD95C52969C04EF85 +12E996408FD067B7355FE30052CA982120C96F7AFB1B7E1B166F0C6CD4658AD7 +2475A208BE31B8B78EE92FD854555CF55F9BEC2C1EB357D2F47A2335020AC69A +26302B929478B5DCECA0E02B4A5DE4D11832C2BA21D1D930A95DA2A5C0C10C0E +95D576CF25E375B13552FBF981F4E59D2CB54E20FD13DBBA5A5521A056D0ABA7 +4664B33CF7AD67E473AC828D6AF28C20A56195512DB755A1041E909087287AE0 +83C273A01698A56B57C9EC85F00CBC98E6032FFAC3B59F900C2379D79E7714DB +0A4479222B1C39C226317B8258EA2C1EA34D41C4A02DE08920CEEB43EF79BBB9 +CFF64F081D06ACC28A74F3250E97BB922D72526D59437ADA5A89327FAC99F199 +4627F2648BF82DB67C58A296307257BA244E4A62F7F91C2F9DCC37891548304E +204BFC66AD1B0ACC856F3758620C40DB20B801C717B41384FFF5A8A3D4F7DEF0 +4A9F06DF41AB92E1CCE74A29C2619AC2EA75E7CD1B5F0E3522616F8E88B43F2C +0ABB6F5102739C2DEDEBB504FF3C4B0D9EB700FA7D4D4226C87F3240376D1287 +A34FD6C9C98AA1EC78917790B2A02D9282A06DA9ACF175FF68C544D8592F27D3 +AEFCBC1D51420E74525759C9373B96E48052E307064B6D35803639833C09025A +4D8D3173A866FC18FD5D5FF9144DABBE9F4669E07B378787F5F789B60A45FEB1 +A9189F23235959D020AAFD63D21F084A85BC7FF55D3AB19A586360D32BB11AB5 +6F2DCD917C772C360832722C30A2113E79B0C5B2E89FCAFF5E1A5F2286BD6692 +4B3072D0ECF3E68A360F6BF3ECAC4DFFBE904A5B9F61DFE111231291E1A53319 +D76434C10FFF82D29B991A0C4B88C6959706F9CEB453F8F36575FCA16A65DE55 +41743A97917D1E0B3573D424495B4720BBF0195C8E2E5EEBFF712320B75139EC +26D99B1FD3824113C4E1F14C5CC8FB933F7F89F5009BF6B6D73070EFF2032CE7 +CF529F556978A5AD9ED47392F3600F35451BAF5AFBF28556838F5029A02DFE6E +3B2AEA21BC5BC26A2B1D20F2231DA6DA0D248F15112BD91F7F8715129ABC72E0 +9B03A531543D714C7DFEB598411FC67A646A02C6041BF8083EDFAC7278FD3CCD +BA19E4B8FDF9D0B33E12659046184D4003A1D2FC611E5B8785C32DDA2BDB7051 +D99131B4B416224FF72598DF55E1A64D1808C3D5C48AA89D2AA73B043A41292B +BBB5EB3117F3D22B114C9FAF5B2F3813E95CE185893CED08206497F88DCEF5A3 +D0601E389CC7D36E67B356F7CCDF29B9CE66FC9F10426C68A307678E732E65B9 +AE1DE33EF0D72B53232794EB0998EEBCE8E942211277B23F9753DD001057E6B5 +8B05762EC008B3012557755DB6091AFEBD775CAF80E74D46F710FE94260A9699 +73F38BD12173F7D8B988CBF5FC717B0F0EF86C9A16F862ACACAAF357BC227B79 +69318CF0FC41E025FE8CC20E8C283FDC4C2E0A43368FE776B3014087057383C0 +01356B19E0EC1B934641962B3219B455CD0886428868F847A53FEABCEC007CF7 +FAA7B412FDBB5D499A913802B5B47E1C6620AA69C08A3C2011CA4BF5BFCC5A7F +F67341F5815F54966D7A705F218F1CAADB1F6C4D995CD2DED42734195A5778F6 +F08F21A8B1A6AA94EB985FC5ED097E0C6EC6B64E7753F7F47174A76F6C83C5DC +5AFDCF3542C5789D6FC1E4C3AD4A002548E2AA1B58B4B6377A63ABCA36EF8503 +E2A5E671721ACF08EE114B15DD3FF3432AB5A3737038E206B3E41154143C31CD +19F0A836059717AD52D234E80728C45E9C5AFE77336EFCA03DC17DC220387D5C +746FD91FD9134C7746DE781EF2CBCCC7B23513F5FB378208EA780240984E5F64 +B16A28AC72B6EDCADFB7F8A74CA9B2046BF517D240017A0D7599E1C438672CEF +357029DEB184F858587692D821F35F4323E719BC536E79E08B4A029A904CE5F7 +E69EDF9165587E6AB8BDC5B4C97DF4FAFD1BBCF5FBDEA08666C1581E81CD1CAF +8F97DB072C5DD844F926A9EB97C4F61B08E9444E499B766A006BC862A33DA6D7 +9D4B06F45C41BDBB88DAF955CC81A1B4E0C01E4C4041F55F0301D96264CE2DB3 +BD97705F38D5C5F91E1137AEA6D1CF25BA796125281D860778493AA4AA987209 +B32193D51DB37146B662C28213DC739348820EEBF40097E303F336B0E5452714 +BBF9347A3A6208F7A99EBD2A2A30A2AD1ADDE453E1F8DFC3C88D701139BC9AE6 +AA2B1840BA8076C46B0F9E78C2C2CC0C921140D74566D73368F000AEED735404 +C9679310E32A8EDDC903BFEC1E9903B392F9DDCAD95A9BF5613C9F32922BD984 +964C315C82D055790ECF0C2057BEF86680223FB6706382EF3B659275EF2A8CD7 +7A76B74E385D03BCD85965E8572886C60CE4023DF2C0697DC392EB3A6C00DDD9 +1E6E45BE9F53A9FEAC947D3E096B7961AF91565440E812C5A7D83969B0BE6771 +CB1909DE54124193C29C4B645CFE6402D61F04AF66467C3D17FCB62BB94E2EEF +008E41CB7D3ACB8F32D9CA072AB43EE1C1685CBF833E9F3F3A24F5D393928BF1 +F5259F5C6E43B330D16E57E380831CF8DF91A88FCE3B3D8418DBC66BE11E997E +DE181B74BD20E58292AA0F246A6B362CF8AB7241A14140B5E8491746B82DE8DA +AA47E19C60A9A639B86F889CDBA8F97B967C14B6C44DE3741377A91D982282A9 +BCEA2A6835AA78E9E2371BEFEAE20377D99A334674D8947BB31F1430D9FFC575 +70F8FCFA82C18F4DCF95A43D5802F5B36E35A2C35DE1CC682AC18599FA3012F4 +581803716FC5CCC1A07E969455E0C50E11F93A488CEBAB334DB25B261CCD0689 +7581387843A6899B24F56923EF3585087A6C8B72A64D8641DA5BB5EF06A6C152 +4E984B362F8A6A5193D577544914B99A1C6BEA7BF81994C5349F492B2CD24524 +81A2BF350C6731AB45269AE09876657704EF1B79AA97C4F7BFF4B37C8D13C925 +4230CEF025F3D4BE4C7305FEE0706E98DA8FD8A8B15C73F70511E6F087F6099B +D3B611B155F44498112DC5135F160CA8AF802C340AB6F9D364B4816C7F27AC1A +C2EDADAF9D08D6DA6665857FA624F9446F0857E55E7FA0B24962077E28BFAE21 +CBA750E25DFEA6866AFA16831BDD379E9023855E10998173EFA0D6EBFAA50DC6 +186F818E3BCD1D28CD26C4A765CF910D732143849A07341A74D7CA02A189D7CF +06D1A300E4395AE338F82D7CA2FC1AC2BC97C55F12CC9814DBE0E63E6324F1EB +B26D42C3A6301E62950E95DDD77B6891F32A52E1C32A62F818076FC2597B35C8 +5047DF2A617E406535CC9131A752D72CA7DBAE21FAC20F0F8AD0A5E178F6866E +31F47985D2BEA16113C565282B95773F442BBCD93DB8796ABA334B2AC2F44820 +94DDB75A09865085A431C30297136A9CD11606DB96D23BFB4CDE7E86987EC23D +CD8DC5DBBC0AB039AAE122E4022563EE9F42550455D2DCDE252446A840ABE95C +83D0C08C742B07E0F60E0AC814484FB923853BA86BA0263F33B8117C04A032E5 +19C31DA49C415A88D571683A9DD71B0CE768400A38A0598868C5D3EDE3ABF457 +1AE5273F0C938CA9972A824F1539561B9E1902E084B715F91BBFA116B69D3863 +4C3BC54790D765950E4E265B401FAD2CA1A9C4C403836D210F0ED3F49F9238D9 +E807D20B45253E9DA6EB5F0C62DD28C45E97F9A156E5CFCD917BCC2C5C6C4D0E +E5EB5951A5224CA5F3409BFE141B39411BC4AE9D684BEDB184D142166921BC37 +A5A8AB55A5E4C880E11712FE426387932E81E4397369FC3DDCC2FC500D3369F4 +DCF3C7D41247C64DB135FFBF902278915072F2429DACBA13C4E5204DB0A95E08 +B27AF658C0A89FD06CC480FA06CB7A9AE207A03246506686614CBBE0337879E0 +5DACB5F87D683B5743F51222AAEA1825904FAF8A06E0C211AB4B1CABFEB9024F +BA6682E084DEBAB5B07F87E1993D099239DB4160A13083F594A7137C6C5B75FF +B7598EEC6237290289717BD0DEA47D8BC6C9D1203C9F1ED41AAC61BA7ADD08A6 +479438422AA797B425D4FE24FD73A40C49939BEFD3ABB6DBD0E4F1BE0C97E48B +90353410115BD78333121A077F3D5F3DADACBD245D3DE1CC49B7B03D27BCE112 +182C43F6DFB5D469647F516437CB919680840BCB0B2606F5CF193AE1DDCCF1F0 +7642F51EF18D9464624FE91B6742B3DE13C80055AF147FB4AB3FF81CF54706E5 +26B74D1F67F521F1BC12786269D1EDB56995883B70D4A6DF033E8DC00881459D +9EF961015EAF986BA700B99E7320CCFE1DE94318B2FDAE5FE89E3A9CD88CED01 +131EB3150A6F1CCA297A400D76ADAF034223D297D40D5ED09DA675FDB648A9B0 +504D1FDF54F7CAFC76003542F8FEF5FA5A4031DF659738C2ABC150D4C3BBF919 +D12E35E53E88E8E51611F98882B3D19DBC1B01609DE1B37EF23916CA1DCF34E4 +F2CC8EA132A8C919F759FF9FF4DF5F357ECD9BE2B59917ED26EDFFD6117749F5 +1AD83D6CE0EF62BE8C5BA0C9CD02FD289128B780BD3C9E9D36A6060ED7C361BA +235D1053F3A89BFC628BC29807341923FA1131533B3385323B0CBCF3513EC6C9 +DB1C6610173043F2B1B046A87CB974DE2111867EFF48744B09EE03E706B2349A +DD46B166EB34A1E3B9529D93E3490DD59252986E31DB190BF7181B0BB2EFDE85 +090BC6D860602812B7E427676AEC0983657FCB078A5E109F2EA6CA54C74CD6FF +BDF265D4DF1C616D4D38D4CFA701F4D7DB4E5F5A71FF49F9B803FEF48FB7A12A +47EA1BF744CE1EBE1ECB03082A5A4AF48F51565D3A9AA75DDA3A8A9F07E338A3 +D1D7FD05DD6E5A414BADE9B85CBFE248A67405355663133FF258751B870D2C67 +027F573EDEE10A063527D463E56A915FC85BC040BE2CECE5FC24091BF4032139 +D941E3E2AE0AD04F7F015B74F7E13F8A27122838E5CFC2D7D9616F4BDB8C9A9A +5FF5A0695E27BC9FB79644D78257E15AE2913E85FAA7D8B49A7F867A3FFC61CD +F25A67ABA72FE52DD506104E240301511090E98F3004035C77265A717EE404FE +D8353A33FD271501FCA17BDEE34FDDA68062C5E4210C7F0F3E757BD73F9B2148 +FAA02D5155BA5B2D9B5E8026F3736549327A7878E3E7E3DD58F762A16CFEE342 +563C25EC491CB163FB913CB8174B36CBD786774D326CA5D5BA9BAA4D90B5BB36 +8043F03E135FA03C28F0C0D4661DBD7F183836657FD5DF788D848102C7B1A90E +2E503439DBAA4C9A85526BEFD195309C2432179A8BA015E02E4BBB76D83F6B8F +B79769352A7DB5ABE7B9BDB43F1521489D82406DD6FE62648BB112889DE7C07B +6002D11B70359EFD4AA14021CF2FBC288E8176DAF838D6A77D43A5E1289730F0 +1756B22B134D684DAFF8C0F5A3446EFAD156DFD944DFAE3CDAA5EE535BF135BF +1C64AF97B41AAB3347415DBD952D7338B24F9883ED1AB8B14B8AEAD004A7B884 +C2FC9A2988A5C6B7F4D8275046A14C0EE040CA7E8892D45CA9E7918BFB411858 +F76CF5D170A8C48F24789CC75530198DA4C06EA8F1D619654969A56B76B36278 +B5C4DD208B1D8CE49EC1C0A1742A65DE1B67BA78BA700E3264406B44802F7BCD +A31AE48FC019CBCED968544EE30ED08FF895B66DA547E9027CB8D833518859FF +CE2E34E451165F1D59AB38 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi) +@start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1 +49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34 +30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44 +1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 3[30 1[30 30 +30 1[30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }41 +49.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36 +2[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14 +66.4176 /CMTI8 rf /Fd 134[43 43 59 43 45 32 32 34 1[45 +41 45 68 23 43 1[23 45 41 25 37 45 36 45 40 10[61 1[57 +45 61 61 55 61 63 77 49 2[30 63 2[53 1[59 8[23 12[27 +32[45 47 11[{ TeXf7b6d320Encoding ReEncodeFont }41 66.4176 +/CMBX8 rf /Fe 219[71 2[71 32[55{ TeXbbad153fEncoding ReEncodeFont }3 +66.4176 /CMSY8 rf /Ff 203[33 33 33 33 49[{ + TeXf7b6d320Encoding ReEncodeFont }4 58.1154 /CMR7 rf +/Fg 129[35 1[35 1[35 35 35 35 35 35 35 35 35 35 35 35 +35 35 35 35 35 35 35 35 35 35 35 35 35 35 1[35 35 35 +35 35 1[35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 +35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 +3[35 1[35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 +35 35 35 33[{ TeX09fbbfacEncoding ReEncodeFont }86 66.4176 +/CMTT8 rf /Fh 134[60 60 83 1[64 45 45 47 1[64 57 64 95 +32 60 1[32 1[57 1[53 64 51 64 56 10[87 88 80 64 86 2[86 +90 109 69 2[43 1[90 72 75 88 83 1[87 19[38 45[{ + TeXf7b6d320Encoding ReEncodeFont }37 99.6264 /CMBX10 +rf /Fi 133[31 37 37 51 37 39 27 28 28 37 39 35 39 59 +20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35 3[53 72 +53 53 51 39 52 2[55 53 65 44 55 1[25 53 55 46 48 54 51 +50 53 6[20 5[35 35 35 35 35 35 20 24 20 55 35 27 27 20 +2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }71 +66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 61 +1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53 +53 40[{ TeXf7b6d320Encoding ReEncodeFont }19 119.552 +/CMBX10 rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%PaperSize: A4 + @landscape end +%%EndSetup +%%Page: 1 1 +TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45 +b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h +(4.03\))-150 -39 y Fh(Getting)37 b(Started)-150 89 y +Fg(\(add-to-list)i('auto-mode-alist)h('\("\\\\.org$")e(.)e +(org-mode\)\))-150 172 y(\(define-key)i(global-map)h("\\C-cl")e +('org-store-link\))1504 148 y Ff(2)-150 254 y Fg(\(define-key)h +(global-map)h("\\C-ca")e('org-agenda\))1364 231 y Ff(2)-150 +352 y Fi(F)-6 b(or)23 b(the)i(man)n(y)f(customization)h(options)g(try) +68 b Fg(M-x)36 b(org-customize)-150 421 y Fi(T)-6 b(o)24 +b(read)g(the)g(on-line)g(do)r(cumen)n(tation)i(try)111 +b Fg(M-x)36 b(org-info)-150 622 y Fh(Visibilit)m(y)h(Cycling)-150 +775 y Fi(rotate)25 b(curren)n(t)f(subtree)g(b)r(et)n(w)n(een)i(states) +291 b Fg(TAB)-150 845 y Fi(rotate)25 b(en)n(tire)f(bu\013er)g(b)r(et)n +(w)n(een)h(states)384 b Fg(S-TAB)-150 914 y Fi(sho)n(w)24 +b(the)g(whole)g(\014le)854 b Fg(C-c)36 b(C-a)-150 1095 +y Fh(Motion)-150 1247 y Fi(next)25 b(heading)1043 b Fg(C-c)36 +b(C-n)-150 1317 y Fi(previous)24 b(heading)921 b Fg(C-c)36 +b(C-p)-150 1387 y Fi(next)25 b(heading,)f(same)g(lev)n(el)685 +b Fg(C-c)36 b(C-f)-150 1456 y Fi(previous)24 b(heading,)g(same)g(lev)n +(el)563 b Fg(C-c)36 b(C-b)-150 1526 y Fi(bac)n(kw)n(ard)25 +b(to)f(higher)g(lev)n(el)f(heading)424 b Fg(C-c)36 b(C-u)-150 +1596 y Fi(jump)23 b(to)i(another)f(place)h(in)e(do)r(cumen)n(t)350 +b Fg(C-c)36 b(C-j)-150 1797 y Fh(Structure)g(Editing)-150 +1950 y Fi(insert)23 b(new)i(heading/item)g(at)f(curren)n(t)g(lev)n(el) +195 b Fg(M-RET)-150 2019 y Fi(insert)23 b(new)i(TODO)e(en)n(try)700 +b Fg(M-S-RET)-150 2117 y Fi(promote)24 b(curren)n(t)h(heading)f(up)g +(one)h(lev)n(el)285 b Fg(M-LEFT)-150 2187 y Fi(demote)25 +b(curren)n(t)f(heading)h(do)n(wn)f(one)g(lev)n(el)233 +b Fg(M-RIGHT)-150 2256 y Fi(promote)24 b(curren)n(t)h(subtree)f(up)g +(one)g(lev)n(el)301 b Fg(M-S-LEFT)-150 2326 y Fi(demote)25 +b(curren)n(t)f(subtree)h(do)n(wn)f(one)g(lev)n(el)248 +b Fg(M-S-RIGHT)-150 2424 y Fi(mo)n(v)n(e)24 b(subtree/list)h(item)e(up) +642 b Fg(M-S-UP)-150 2493 y Fi(mo)n(v)n(e)24 b(subtree/list)h(item)e +(do)n(wn)558 b Fg(M-S-DOWN)-150 2563 y Fi(kill)23 b(subtree)1097 +b Fg(C-c)36 b(C-x)g(C-w)-150 2633 y Fi(cop)n(y)25 b(subtree)1052 +b Fg(C-c)36 b(C-x)g(M-w)-150 2703 y Fi(y)n(ank)25 b(subtree)1046 +b Fg(C-c)36 b(C-x)g(C-y)-150 2800 y Fi(arc)n(hiv)n(e)24 +b(subtree)976 b Fg(C-c)36 b($)-150 2870 y Fi(T)-6 b(o)24 +b(set)g(arc)n(hiv)n(e)g(lo)r(cation)h(for)e(curren)n(t)h(\014le,)f(add) +h(a)g(line)f(lik)n(e)1495 2846 y Ff(3)1533 2870 y Fi(:)-150 +2944 y Fg(#+ARCHIVE:)38 b(archfile::*)h(Archived)e(Tasks)-150 +3124 y Fh(Filtering)g(and)g(Sparse)g(T)-10 b(rees)-150 +3277 y Fi(sho)n(w)24 b(sparse)f(tree)i(for)d(all)h(matc)n(hes)i(of)f(a) +g(regexp)92 b Fg(C-c)36 b(/)-150 3346 y Fi(view)24 b(TODO's)e(in)i +(sparse)f(tree)580 b Fg(C-c)36 b(C-v)-150 3427 y Fi(global)24 +b(TODO)f(list)g(in)g(agenda)i(mo)r(de)389 b Fg(C-c)36 +b(t)1466 3403 y Ff(2)-150 3497 y Fi(create)25 b(sparse)e(tree)i(with)e +(all)g(deadlines)i(due)204 b Fg(C-c)36 b(C-w)-150 3566 +y Fi(time)24 b(sorted)g(view)g(of)f(curren)n(t)h(org)g(\014le)367 +b Fg(C-c)36 b(C-r)-150 3765 y Fh(T)-10 b(ags)-150 3917 +y Fi(set)24 b(tags)h(for)d(curren)n(t)j(heading)589 b +Fg(C-c)36 b(C-c)-150 3987 y Fi(realign)23 b(tags)i(in)e(all)g(headings) +613 b Fg(C-u)36 b(C-c)g(C-c)-150 4057 y Fi(create)25 +b(sparse)e(tree)i(with)e(matc)n(hing)i(tags)285 b Fg(C-c)36 +b(\\)-150 4126 y Fi(globally)24 b(\(agenda\))i(matc)n(h)e(tags)h(at)f +(cursor)243 b Fg(C-c)36 b(C-o)2046 -364 y Fh(TODO)i(Items)2046 +-215 y Fi(rotate)25 b(the)f(state)h(of)f(the)g(curren)n(t)g(item)354 +b Fg(C-c)36 b(C-t)2046 -145 y Fi(view)24 b(TODO)f(items)g(in)h(a)g +(sparse)f(tree)380 b Fg(C-c)36 b(C-v)2046 -75 y Fi(view)24 +b(3rd)f(TODO)g(k)n(eyw)n(ord's)h(sparse)g(tree)258 b +Fg(C-3)36 b(C-c)g(C-v)2046 22 y Fi(set)24 b(the)h(priorit)n(y)e(of)g +(the)i(curren)n(t)f(item)369 b Fg(C-c)36 b(,)g([ABC])2046 +91 y Fi(remo)n(v)n(e)24 b(priorit)n(y)f(co)r(okie)i(from)d(curren)n(t)j +(item)179 b Fg(C-c)36 b(,)g(SPC)2046 172 y Fi(raise)23 +b(priorit)n(y)g(of)g(curren)n(t)i(item)557 b Fg(S-UP)3626 +148 y Ff(4)2046 252 y Fi(lo)n(w)n(er)23 b(priorit)n(y)g(of)h(curren)n +(t)g(item)538 b Fg(S-DOWN)3696 229 y Ff(4)2046 384 y +Fi(p)r(er-\014le)23 b(TODO)g(w)n(ork\015o)n(w)h(states:)33 +b(add)24 b(line\(s\))g(lik)n(e)3505 360 y Ff(3)3542 384 +y Fi(:)2046 457 y Fg(#+SEQ_TODO:)38 b(TODO)f(PROCRASTINATE)i(BLUFF)e +(DONE)2046 537 y Fi(p)r(er-\014le)23 b(TODO)g(k)n(eyw)n(ords:)32 +b(add)24 b(line\(s\))g(lik)n(e)3314 513 y Ff(3)3351 537 +y Fi(:)2046 610 y Fg(#+TYP_TODO:)38 b(Phil)f(home)f(work)h(DONE)2046 +799 y Fh(Timestamps)2046 949 y Fi(prompt)24 b(for)f(date)i(and)f +(insert)f(timestamp)266 b Fg(C-c)36 b(.)2046 1018 y Fi(lik)n(e)23 +b Fg(C-c)i Fi(.)31 b(but)24 b(insert)g(date)g(and)h(time)e(format)144 +b Fg(C-u)36 b(C-c)g(.)2046 1088 y Fi(Lik)n(e)24 b Fg(C-c)36 +b(.)24 b Fi(but)g(mak)n(e)g(stamp)h(inactiv)n(e)322 b +Fg(C-c)36 b(!)2046 1158 y Fi(insert)23 b(DEADLINE)h(timestamp)516 +b Fg(C-c)36 b(C-d)2046 1228 y Fi(insert)23 b(SCHEDULED)h(timestamp)451 +b Fg(C-c)36 b(C-s)2046 1297 y Fi(create)25 b(sparse)e(tree)i(with)e +(all)g(deadlines)i(due)204 b Fg(C-c)36 b(C-w)2046 1367 +y Fi(the)25 b(time)e(b)r(et)n(w)n(een)j(2)e(dates)g(in)g(a)f(time)h +(range)172 b Fg(C-c)36 b(C-y)2046 1449 y Fi(c)n(hange)25 +b(timestamp)g(at)f(cursor)f(b)n(y)h Fe(\000)p Fi(1)g(da)n(y)238 +b Fg(S-LEFT)3696 1426 y Ff(4)2046 1530 y Fi(c)n(hange)25 +b(timestamp)g(at)f(cursor)f(b)n(y)h(+1)g(da)n(y)238 b +Fg(S-RIGHT)3731 1506 y Ff(4)2046 1610 y Fi(c)n(hange)25 +b(y)n(ear/mon)n(th/da)n(y)i(at)d(cursor)f(b)n(y)h Fe(\000)p +Fi(1)189 b Fg(S-DOWN)3696 1587 y Ff(4)2046 1694 y Fi(c)n(hange)25 +b(y)n(ear/mon)n(th/da)n(y)i(at)d(cursor)f(b)n(y)h(+1)189 +b Fg(S-UP)3626 1671 y Ff(4)2046 1764 y Fi(access)25 b(the)f(calendar)g +(for)f(the)i(curren)n(t)f(date)221 b Fg(C-c)36 b(>)2046 +1834 y Fi(insert)23 b(timestamp)i(matc)n(hing)g(date)f(in)g(calendar)89 +b Fg(C-c)36 b(<)2046 1904 y Fi(access)25 b(agenda)g(for)e(curren)n(t)h +(date)507 b Fg(C-c)36 b(C-o)2046 1973 y Fi(Select)25 +b(date)g(while)e(prompted)598 b Fg(mouse-1/RET)2046 2169 +y Fh(Links)2046 2318 y Fi(globally)24 b(store)g(link)f(to)h(the)h +(curren)n(t)f(lo)r(cation)166 b Fg(C-c)36 b(l)3662 2295 +y Ff(2)2046 2388 y Fi(insert)23 b(a)h(link)f(\(T)-6 b(AB)24 +b(completes)h(stored)f(links\))138 b Fg(C-c)36 b(C-l)2046 +2458 y Fi(insert)23 b(\014le)h(link)f(with)h(\014le)g(name)g +(completion)192 b Fg(C-u)36 b(C-c)g(C-l)2046 2555 y Fi(op)r(en)25 +b(link)e(at)h(p)r(oin)n(t)884 b Fg(C-c)36 b(C-o)2046 +2624 y Fi(op)r(en)25 b(\014le)e(links)g(in)h(emacs)722 +b Fg(C-u)36 b(C-c)g(C-o)2046 2694 y Fi(op)r(en)25 b(link)e(at)h(p)r +(oin)n(t)884 b Fg(mouse-2)2046 2764 y Fi(op)r(en)25 b(\014le)e(links)g +(in)h(emacs)722 b Fg(mouse-3)2046 2861 y Fd(Link)27 b(t)n(yp)r(es)2046 +2957 y Fg(*CamelCaseWord)950 b Fi(searc)n(h)24 b(headline)2046 +3027 y Fg(CamelCaseWord)985 b Fi(searc)n(h)24 b(in)f(bu\013er)2046 +3097 y Fg()282 +b Fi(\014le,)23 b(absolute)2046 3167 y Fg()670 +b Fi(\014le,)23 b(relativ)n(e)2046 3236 y Fg()599 b Fi(\014le)19 b(with)g(line)g(nr.)2046 3306 y +Fg()211 +b Fi(searc)n(h)24 b(headline)2046 3376 y Fg()453 b Fi(searc)n(h)24 b(string)2046 3446 +y Fg()423 b Fi(searc)n(h)24 +b(regexp)2046 3515 y Fg()247 +b Fi(on)24 b(the)h(w)n(eb)2046 3585 y Fg() +564 b Fi(EMail)23 b(address)2046 3655 y Fg()845 +b Fi(Usenet)25 b(group)2046 3725 y Fg()631 b Fi(BBDB)23 b(p)r(erson)2046 3794 y +Fg()877 b Fi(shell)23 b(command)2046 +3864 y Fg()1020 b Fi(GNUS)24 b(group)2046 +3934 y Fg()915 b Fi(GNUS)24 b(message)2046 +4004 y Fg()1055 b Fi(VM)23 b(folder)2046 4073 +y Fg()950 b Fi(VM)23 b(message)2046 4143 +y(W)-6 b(anderlust)25 b Fg()h Fi(and)e(RMAIL)f +Fg()k Fi(lik)n(e)c(VM)4242 -364 y Fh(T)-10 +b(ables)4242 -263 y Fd(Creating)25 b(a)i(table)4242 -178 +y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330 b Fg(M-x)36 +b(org-table-create)4242 -108 y Fi(...)30 b(or)23 b(just)h(start)g(t)n +(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39 b(RET)d(|-)g(TAB)4242 +-39 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table)741 b +Fg(C-c)36 b(C-c)4242 31 y Fi(...)30 b(separator)24 b(at)h(least)f(3)g +(spaces)537 b Fg(C-3)36 b(C-c)g(C-c)4242 116 y Fd(Commands)26 +b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242 201 y +Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h(cursor)e +(is)g Fc(inside)k(a)f(table)p Fi(.)4242 270 y(Outside)24 +b(of)e(tables,)i(the)g(same)f(k)n(eys)h(ma)n(y)f(ha)n(v)n(e)h(other)g +(functionalit)n(y)-6 b(.)4242 355 y Fd(Re-aligning)25 +b(and)i(\014eld)h(motion)4242 440 y Fi(re-align)22 b(the)i(table)g +(without)g(mo)n(ving)g(the)g(cursor)70 b Fg(C-c)36 b(C-c)4242 +510 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld) +311 b Fg(TAB)4242 579 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762 +b Fg(S-TAB)4242 649 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f +(next)h(ro)n(w)328 b Fg(RET)4242 734 y Fd(Ro)n(w)26 b(and)h(column)g +(editing)4242 819 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left) +544 b Fg(M-LEFT)4242 888 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f +(column)g(righ)n(t)497 b Fg(M-RIGHT)4242 958 y Fi(kill)23 +b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1028 +y Fi(insert)23 b(new)i(column)f(to)g(left)f(of)h(cursor)f(p)r(osition) +104 b Fg(M-S-RIGHT)4242 1112 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f +(ro)n(w)f(up)678 b Fg(M-UP)4242 1182 y Fi(mo)n(v)n(e)24 +b(the)h(curren)n(t)f(ro)n(w)f(do)n(wn)594 b Fg(M-DOWN)4242 +1252 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h +(line)291 b Fg(M-S-UP)4242 1322 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o) +n(v)n(e)i(the)f(curren)n(t)g(ro)n(w)285 b Fg(M-S-DOWN)4242 +1391 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h +(curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1461 y +Fi(insert)23 b(horizon)n(tal)i(line)e(ab)r(o)n(v)n(e)i(the)g(curren)n +(t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1531 y Fi(sort)24 +b(lines)f(in)g(region)867 b Fg(C-c)36 b(^)4242 1616 y +Fd(Regions)4242 1700 y Fi(cut)25 b(rectangular)f(region)758 +b Fg(C-c)36 b(C-x)g(C-w)4242 1770 y Fi(cop)n(y)25 b(rectangular)f +(region)715 b Fg(C-c)36 b(C-x)g(M-w)4242 1840 y Fi(paste)25 +b(rectangular)f(region)695 b Fg(C-c)36 b(C-x)g(C-y)4242 +1910 y Fi(\014ll)23 b(paragraph)h(across)g(selected)h(cells)399 +b Fg(C-c)36 b(C-q)4242 1994 y Fd(Calculations)4242 2079 +y Fi(These)24 b(need)h(the)f(Emacs)g(calc)g(pac)n(k)l(age)i(installed.) +4242 2164 y(set)e(and)g(ev)l(al)g(column)g(form)n(ula)567 +b Fg(C-c)36 b(=)4242 2234 y Fi(set)24 b(and)g(ev)l(al)g(named-\014eld)h +(form)n(ula)433 b Fg(C-u)36 b(C-c)g(=)4242 2303 y Fi(edit)24 +b(form)n(ulas)f(in)g(separate)i(bu\013er)473 b Fg(C-c)36 +b(')4242 2373 y Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f +(curren)n(t)g(line)96 b Fg(C-c)36 b(*)4242 2443 y Fi(re-apply)23 +b(all)g(stored)i(equations)g(to)f(en)n(tire)g(table)101 +b Fg(C-u)36 b(C-c)g(*)4242 2527 y(TAB)p Fi(,)30 b Fg(RET)f +Fi(and)f Fg(C-c)37 b(C-c)28 b Fi(trigger)h(automatic)g(recalculation)h +(in)d(lines)4242 2597 y(starting)d(with:)31 b Fg(|)36 +b(#)f(|)p Fi(.)4242 2682 y(rotate)25 b(calculation)g(mark)e(through)i +(#)e(*)h(!)31 b(^)p 5487 2682 22 4 v 49 w($)115 b Fg(C-#)4242 +2767 y Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in) +354 b Fg(C-c)36 b(?)4242 2836 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f +(curren)n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 +2921 y Fi(cop)n(y)25 b(do)n(wn)f(with)g(incremen)n(t)625 +b Fg(S-RET)5857 2897 y Ff(4)4242 3005 y Fi(A)25 b(form)n(ula)f(can)i +(also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)f(in)n(to)h(a)f +(\014eld)g(and)h(will)4242 3075 y(executed)31 b(b)n(y)e +Fg(TAB)p Fi(,)h Fg(RET)g Fi(and)f Fg(C-c)36 b(C-c)p Fi(.)47 +b(A)28 b(leading)h Fg(=)g Fi(in)n(tro)r(duces)h(a)4242 +3145 y(column)24 b(form)n(ula,)e Fg(:=)j Fi(a)e(named-\014eld)i(form)n +(ula.)4242 3230 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522 +b Fg(=$1+$2)4242 3299 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r +(eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3369 y Fi(...)30 +b(with)24 b(constan)n(ts)h(from)e(constan)n(ts.el)352 +b Fg(=$1/$c/$cm)4242 3439 y Fi(sum)23 b(from)g(3rd)h(hline)f(ab)r(o)n +(v)n(e)i(to)f(here)411 b Fg(:=vsum\(&III\))4242 3508 +y Fi(apply)24 b(curren)n(t)g(column)g(form)n(ula)518 +b Fg(=)4242 3593 y Fd(Miscellaneous)4242 3678 y Fi(toggle)25 +b(visibilit)n(y)d(of)i(v)n(ertical)g(lines)474 b Fg(C-c)36 +b(|)4242 3748 y Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370 +b Fg(M-x)36 b(org-table-export)4242 3817 y Fi(imp)r(ort)23 +b(tab-separated)j(\014le)447 b Fg(M-x)36 b(org-table-import)4242 +3902 y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i +Fd(pac)n(k)-5 b(age)4242 3987 y Fi(insert)23 b(a)h(new)g +Fg(table.el)i Fi(table)582 b Fg(C-c)36 b(~)4242 4057 +y Fi(recognize)25 b(existing)f(table.el)g(table)474 b +Fg(C-c)36 b(C-c)4242 4126 y Fi(con)n(v)n(ert)25 b(table)f(\(Org-mo)r +(de)g Fe($)f Fi(table.el\))312 b Fg(C-c)36 b(~)p eop +end +%%Page: 2 2 +TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45 +b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h +(4.03\))-150 -36 y Fh(Agenda)37 b(Views)-150 120 y Fi(add/mo)n(v)n(e)25 +b(curren)n(t)f(\014le)g(to)g(fron)n(t)g(of)f(agenda)197 +b Fg(C-c)36 b([)-150 190 y Fi(remo)n(v)n(e)24 b(curren)n(t)g(\014le)g +(from)f(y)n(our)g(agenda)299 b Fg(C-c)36 b(])-150 259 +y Fi(cycle)24 b(through)h(agenda)g(\014le)f(list)551 +b Fg(C-,)-150 368 y Fi(compile)24 b(agenda)h(for)e(the)h(curren)n(t)g +(w)n(eek)320 b Fg(C-c)36 b(a)g(a)1537 345 y Ff(2)-150 +449 y Fi(compile)24 b(global)g(TODO)f(list)640 b Fg(C-c)36 +b(a)g(t)1537 425 y Ff(2)-150 529 y Fi(compile)24 b(TODO)f(list)g(for)g +(sp)r(eci\014c)h(k)n(eyw)n(ord)218 b Fg(C-c)36 b(a)g(T)1537 +506 y Ff(2)-150 610 y Fi(matc)n(h)25 b(tags)f(in)f(agenda)j(\014les)637 +b Fg(C-c)36 b(a)g(m)1537 586 y Ff(2)-150 680 y Fi(agenda)25 +b(for)e(date)i(at)f(cursor)661 b Fg(C-c)36 b(C-o)-150 +749 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458 +b Fg(C-c)36 b(C-r)-150 882 y Fi(T)-6 b(o)24 b(set)g(categories,)h(add)f +(lines)f(lik)n(e)814 859 y Ff(3)851 882 y Fi(:)-150 957 +y Fg(#+CATEGORY:)38 b(MyCateg)-150 1055 y Fd(Commands)26 +b(a)n(v)-5 b(ailable)25 b(in)i(an)g(agenda)g(bu\013er)-150 +1153 y(View)g(Org)g(\014le)-150 1252 y Fi(sho)n(w)d(original)f(lo)r +(cation)h(of)g(item)524 b Fg(SPC)-150 1321 y Fi(...)30 +b(also)24 b(a)n(v)l(ailable)g(with)781 b Fg(mouse-3)-150 +1391 y Fi(sho)n(w)24 b(and)g(recen)n(ter)h(windo)n(w)626 +b Fg(L)-150 1461 y Fi(goto)25 b(original)e(lo)r(cation)h(in)g(other)g +(windo)n(w)260 b Fg(TAB)-150 1531 y Fi(...)30 b(also)24 +b(a)n(v)l(ailable)g(with)781 b Fg(mouse-2)-150 1600 y +Fi(goto)25 b(original)e(lo)r(cation,)h(delete)h(other)f(windo)n(ws)91 +b Fg(RET)-150 1670 y Fi(toggle)25 b(follo)n(w-mo)r(de)861 +b Fg(f)-150 1768 y Fd(Change)27 b(displa)n(y)-150 1867 +y Fi(delete)e(other)f(windo)n(ws)791 b Fg(o)-150 1937 +y Fi(switc)n(h)24 b(to)g(daily)g(/)g(w)n(eekly)g(view)534 +b Fg(d)36 b(/)f(w)-150 2006 y Fi(toggle)25 b(inclusion)e(of)h(diary)f +(en)n(tries)473 b Fg(D)-150 2076 y Fi(toggle)25 b(time)f(grid)f(for)g +(daily)g(sc)n(hedule)388 b Fg(g)-150 2146 y Fi(toggle)25 +b(displa)n(y)e(of)h(logb)r(o)r(ok)g(en)n(tries)446 b +Fg(l)-150 2215 y Fi(refresh)23 b(agenda)i(bu\013er)f(with)g(an)n(y)g(c) +n(hanges)239 b Fg(r)-150 2285 y Fi(displa)n(y)24 b(the)g(follo)n(wing)f +Fg(org-agenda-ndays)221 b(RIGHT)-150 2355 y Fi(displa)n(y)24 +b(the)g(previous)g Fg(org-agenda-ndays)238 b(LEFT)-150 +2425 y Fi(goto)25 b(to)r(da)n(y)1110 b Fg(.)-150 2523 +y Fd(Remote)27 b(editing)-150 2621 y Fi(digit)d(argumen)n(t)984 +b Fg(0-9)-150 2691 y Fi(c)n(hange)25 b(state)g(of)f(curren)n(t)g(TODO)f +(item)333 b Fg(t)-150 2761 y Fi(sho)n(w)24 b(tags)g(of)g(curren)n(t)g +(headline)536 b Fg(T)-150 2831 y Fi(set)24 b(tags)h(for)d(curren)n(t)j +(headline)573 b Fg(:)-150 2900 y Fi(set)24 b(priorit)n(y)f(of)g(curren) +n(t)i(item)612 b Fg(p)-150 2983 y Fi(raise/lo)n(w)n(er)23 +b(priorit)n(y)g(of)h(curren)n(t)g(item)361 b Fg(S-UP/DOWN)1605 +2959 y Ff(4)-150 3052 y Fi(displa)n(y)24 b(w)n(eigh)n(ted)h(priorit)n +(y)e(of)g(curren)n(t)h(item)189 b Fg(P)-150 3133 y Fi(c)n(hange)25 +b(timestamp)g(to)f(one)g(da)n(y)h(earlier/later)139 b +Fg(S-LEFT/RIGHT)1710 3109 y Ff(4)-150 3203 y Fi(c)n(hange)25 +b(timestamp)g(to)f(to)r(da)n(y)598 b Fg(>)-150 3272 y +Fi(insert)23 b(new)i(en)n(try)f(in)n(to)g(diary)612 b +Fg(i)-150 3371 y Fd(Calendar)26 b(commands)-150 3469 +y Fi(\014nd)e(agenda)h(cursor)f(date)g(in)g(calendar)350 +b Fg(c)-150 3539 y Fi(compute)25 b(agenda)g(for)e(calendar)i(cursor)e +(date)180 b Fg(c)-150 3608 y Fi(sho)n(w)24 b(phases)g(of)f(the)i(mo)r +(on)669 b Fg(M)-150 3678 y Fi(sho)n(w)24 b(sunrise/sunset)g(times)636 +b Fg(S)-150 3748 y Fi(sho)n(w)24 b(holida)n(ys)1014 b +Fg(H)-150 3818 y Fi(con)n(v)n(ert)25 b(date)g(to)f(other)g(calendars) +478 b Fg(C)-150 3916 y Fd(Quit)27 b(and)g(Exit)-150 4014 +y Fi(quit)d(agenda,)h(remo)n(v)n(e)f(agenda)h(bu\013er)376 +b Fg(q)-150 4084 y Fi(exit)24 b(agenda,)h(remo)n(v)n(e)f(all)f(agenda)i +(bu\013ers)258 b Fg(x)2046 -364 y Fh(Exp)s(orting)2046 +-229 y Fi(Exp)r(orting)32 b(creates)g(\014les)g(with)f(extensions)i +Fc(.txt)k Fi(and)32 b Fc(.html)38 b Fi(in)31 b(the)2046 +-159 y(curren)n(t)24 b(directory)-6 b(.)2046 -66 y(exp)r(ort)25 +b(as)e(ASCI)r(I)i(\014le)820 b Fg(C-c)36 b(C-x)g(a)2046 +3 y Fi(exp)r(ort)25 b(visible)e(text)i(only)e(\(e.g.)32 +b(for)23 b(prin)n(ting\))152 b Fg(C-c)36 b(C-x)g(v)2046 +73 y Fi(exp)r(ort)25 b(as)e(HTML)g(\014le)804 b Fg(C-c)36 +b(C-x)g(h)2046 143 y Fi(exp)r(ort)25 b(as)e(HTML)g(and)h(op)r(en)h(in)e +(bro)n(wser)266 b Fg(C-c)36 b(C-x)g(b)2046 213 y Fi(pre\014x)24 +b(arg)g(sets)g(n)n(b.)31 b(of)23 b(headline)i(lev)n(els,)e(e.g.)182 +b Fg(C-3)36 b(C-c)g(C-x)g(h)2046 306 y Fi(exp)r(ort)25 +b(as)e(iCalendar)h(\014le)718 b Fg(C-c)36 b(C-x)g(i)2046 +376 y Fi(exp)r(ort)25 b(all)e(agenda)i(\014les)e(as)h(iCalendar)f +(\014les)212 b Fg(C-c)36 b(C-x)g(C-i)2046 445 y Fi(com)n(bine)24 +b(all)f(agenda)j(\014les)d(to)h(single)g(iCal)f(\014le)163 +b Fg(C-c)36 b(C-x)g(C-c)2046 538 y Fi(insert)23 b(template)j(of)d(exp)r +(ort)h(options)423 b Fg(C-c)36 b(C-x)g(t)2046 632 y Fi(toggle)25 +b(\014xed)f(width)g(for)f(en)n(try)h(or)g(region)295 +b Fg(C-c)36 b(:)2046 725 y Fd(HTML)27 b(formatting)2046 +818 y Fi(mak)n(e)d(w)n(ords)g Fd(b)r(old)897 b Fg(*bold*)2046 +888 y Fi(mak)n(e)24 b(w)n(ords)g Fc(italic)898 b Fg(/italic/)2046 +957 y Fi(mak)n(e)24 b(w)n(ords)g(underlined)p 2433 970 +326 4 v 728 w Fg(_underlined_)2046 1027 y Fi(sub-)f(and)i(sup)r +(erscripts)781 b Fg(x^3,)36 b(J_dust)2046 1097 y Fi(T)2085 +1111 y(E)2124 1097 y(X-lik)n(e)23 b(macros)940 b Fg(\\alpha,)37 +b(\\to)2046 1167 y Fi(t)n(yp)r(eset)25 b(lines)f(in)f(\014xed)h(width)g +(fon)n(t)460 b Fg(start)37 b(with)f(:)2046 1236 y Fi(tables)24 +b(are)g(exp)r(orted)h(as)f(HTML)f(tables)321 b Fg(start)37 +b(with)f(|)2046 1306 y Fi(links)23 b(b)r(ecome)i(HTML)e(links)640 +b Fg(http:...)73 b(etc)2046 1376 y Fi(include)24 b(h)n(tml)g(tags)905 +b Fg(@...@)2046 1469 y Fd(Exp)r(ort)27 b(options)2046 +1562 y Fi(Include)20 b(additional)f(information)g(for)f(exp)r(ort)i(b)n +(y)f(putting)h(these)g(an)n(y-)2046 1632 y(where)g(in)f(the)h(org)g +(\014le.)30 b(Use)19 b Fg(M-TAB)i Fi(completion)f(to)g(mak)n(e)h(sure)e +(to)h(get)2046 1702 y(the)i(righ)n(t)e(k)n(eyw)n(ords.)31 +b Fg(M-TAB)22 b Fi(again)f(just)g(after)g(k)n(eyw)n(ord)g(is)g +(complete)2046 1771 y(inserts)i(examples.)2046 1864 y(the)i(title)f(to) +g(b)r(e)g(sho)n(wn)797 b Fg(#+TITLE:)2046 1934 y Fi(the)25 +b(author)1115 b Fg(#+AUTHOR:)2046 2004 y Fi(authors)24 +b(email)f(address)769 b Fg(#+EMAIL:)2046 2074 y Fi(language)25 +b(co)r(de)g(for)e(h)n(tml)732 b Fg(#+LANGUAGE:)2046 2143 +y Fi(free)23 b(text)i(description)f(of)g(\014le)626 b +Fg(#+TEXT:)2046 2213 y Fi(...)30 b(whic)n(h)24 b(can)g(carry)g(o)n(v)n +(er)g(m)n(ultiple)f(lines)271 b Fg(#+TEXT:)2046 2283 +y Fi(settings)25 b(for)d(the)j(exp)r(ort)f(pro)r(cess)g(-)f(see)h(b)r +(elo)n(w)145 b Fg(#+OPTIONS:)2046 2376 y Fd(Settings)26 +b(for)h(the)g(OPTIONS)i(line)2046 2469 y Fi(set)24 b(n)n(um)n(b)r(er)g +(of)f(headline)i(lev)n(els)e(for)g(exp)r(ort)219 b Fg(H:2)2046 +2539 y Fi(turn)24 b(on/o\013)h(section)f(n)n(um)n(b)r(ers)577 +b Fg(num:t)2046 2609 y Fi(turn)24 b(on/o\013)h(table)f(of)f(con)n(ten)n +(ts)564 b Fg(toc:t)2046 2678 y Fi(turn)24 b(on/o\013)h(linebreak)f +(preserv)l(ation)395 b Fg(\\n:nil)2046 2748 y Fi(turn)24 +b(on/o\013)h(quoted)g(h)n(tml)f(tags)548 b Fg(@:t)2046 +2818 y Fi(turn)24 b(on/o\013)h(\014xed)f(width)g(sections)464 +b Fg(::t)2046 2888 y Fi(turn)24 b(on/o\013)h(tables)893 +b Fg(|:t)2046 2957 y Fi(turn)20 b(on/o\013)h(T)2444 2971 +y(E)2484 2957 y(X)e(syn)n(tax)i(for)f(sub/sup)r(er-scripts)70 +b Fg(^:t)2046 3027 y Fi(turn)24 b(on/o\013)h(emphasised)f(text)578 +b Fg(*:nil)2046 3097 y Fi(turn)24 b(on/o\013)h(T)2452 +3111 y(E)2491 3097 y(X)e(macros)703 b Fg(TeX:t)2046 3190 +y Fd(Commen)n(ts:)35 b(T)-7 b(ext)27 b(not)f(b)r(eing)i(exp)r(orted) +2046 3283 y Fi(T)-6 b(ext)22 b(b)r(efore)f(the)h(\014rst)f(headline)g +(is)f(not)i(considered)g(part)f(of)g(the)h(do)r(c-)2046 +3353 y(umen)n(t)29 b(and)f(is)f(therefore)h(nev)n(er)g(exp)r(orted.)44 +b(Lines)28 b(starting)g(with)g Fg(#)2046 3423 y Fi(are)j(commen)n(ts)g +(and)h(are)e(not)i(exp)r(orted.)53 b(Subtrees)32 b(whose)f(header)2046 +3492 y(starts)24 b(with)g(COMMENT)e(are)i(nev)n(er)g(exp)r(orted.)2046 +3585 y(toggle)h(COMMENT)d(k)n(eyw)n(ord)j(on)f(en)n(try)285 +b Fg(C-c)36 b(;)2046 3763 y Fh(Completion)2046 3897 y +Fi(In-bu\013er)e(completion)g(completes)h(TODO)d(k)n(eyw)n(ords)i(at)g +(headline)2046 3967 y(start,)19 b(T)-6 b(eX)19 b(macros)f(after)h(\\)p +Fg(\\)p Fi(",)h(option)f(k)n(eyw)n(ords)g(after)f(\\)p +Fg(#-)p Fi(",)i(T)-6 b(A)n(GS)2046 4037 y(after)24 b(\\)p +Fg(:)p Fi(",)g(and)g(dictionary)g(w)n(ords)g(elsewhere.)2046 +4130 y(Complete)h(w)n(ord)e(at)h(p)r(oin)n(t)702 b Fg(M-TAB)4242 +-364 y Fh(Calendar)36 b(and)h(Diary)i(In)m(tegration)4242 +-208 y Fi(T)-6 b(o)35 b(include)g(en)n(tries)g(from)f(the)i(Emacs)f +(diary)g(in)f(y)n(our)h(Org-mo)r(de)4242 -139 y(agenda:)4242 +-40 y Fg(\(setq)i(org-agenda-include-diary)42 b(t\))4242 +58 y Fi(T)-6 b(o)33 b(include)g(the)g(Org-mo)r(de)f(agenda)i(in)e(the)h +(normal)f(diary)-6 b(,)34 b(mak)n(e)4242 128 y(sure)29 +b(y)n(ou're)g(using)g(the)h(fancy)g(diary)f(displa)n(y)g(and)g(in)g +(the)h Fg(~/diary)4242 197 y Fi(\014le)24 b(add)4242 +296 y Fg(&\045\045\(org-diary\))4242 394 y Fi(to)30 b(include)g(all)f +(the)h(\014les)f(listed)h(in)f Fg(org-agenda-files)p +Fi(.)53 b(F)-6 b(or)29 b(more)4242 464 y(selectiv)n(e)c(\014le)e +(inclusion)h(use)g(a)g(line)f(for)g(eac)n(h)i(\014le:)4242 +562 y Fg(&\045\045\(org-diary\))39 b(~/path/to/some/org-fil)q(e.or)q(g) +4242 767 y Fh(Remem)m(b)s(er-mo)s(de)f(In)m(tegration)4242 +923 y Fi(See)32 b(the)g(man)n(ual)g(for)e(ho)n(w)i(to)g(mak)n(e)g +(remem)n(b)r(er.el)f(use)g(Org-mo)r(de)4242 992 y(links)25 +b(and)g(\014les.)36 b(The)25 b(note-\014nishing)h(command)g +Fg(C-c)36 b(C-c)26 b Fi(will)e(\014rst)4242 1062 y(prompt)g(for)f(an)h +(org)f(\014le.)32 b(In)24 b(the)g(\014le,)g(\014nd)g(a)g(lo)r(cation)g +(with:)4242 1160 y(rotate)h(subtree)f(visibilit)n(y)719 +b Fg(TAB)4242 1230 y Fi(next)25 b(heading)1043 b Fg(DOWN)4242 +1300 y Fi(previous)24 b(heading)921 b Fg(UP)4242 1398 +y Fi(Insert)24 b(the)h(note)g(with)e(one)i(of)e(the)i(follo)n(wing:) +4242 1497 y(as)f(sublev)n(el)g(of)f(heading)i(at)f(cursor)468 +b Fg(RET)4242 1566 y Fi(righ)n(t)24 b(here)g(\(cursor)f(not)i(on)f +(heading\))388 b Fg(RET)4242 1636 y Fi(b)r(efore)24 b(curren)n(t)g +(heading)745 b Fg(LEFT)4242 1706 y Fi(after)24 b(curren)n(t)g(heading) +790 b Fg(RIGHT)4242 1776 y Fi(shortcut)20 b(to)f(end)h(of)f(bu\013er)g +(\(cursor)g(at)g(buf-start\))71 b Fg(RET)4242 1845 y +Fi(Ab)r(ort)1256 b Fg(q)4242 2050 y Fh(CUA)38 b(and)f(p)s(c-select)g +(compatibilit)m(y)4242 2206 y Fi(Con\014gure)31 b(the)f(v)l(ariable)g +Fg(org-CUA-compatibility)35 b Fi(to)c(mak)n(e)f(Org-)4242 +2276 y(mo)r(de)38 b(a)n(v)n(oid)g(the)g Fg(S-)i +Fi(bindings)d(used)h(b)n(y)g(these)g(mo)r(des.)4242 2345 +y(When)h(set,)j(Org-mo)r(de)c(will)e(c)n(hange)k(the)f(follo)n(wing)e +(k)n(eybindings)4242 2415 y(\(also)25 b(in)f(the)h(agenda)h(bu\013er,)e +(but)h(not)g(during)f(date)i(selection\).)34 b(See)4242 +2499 y(note)25 b(mark)e(four)4705 2476 y Ff(4)4766 2499 +y Fi(throughout)i(the)g(reference)f(card.)4242 2667 y +Fg(S-UP)142 b Fe(!)35 b Fg(M-p)460 b(S-DOWN)72 b Fe(!)35 +b Fg(M-n)4242 2737 y(S-LEFT)72 b Fe(!)35 b Fg(M--)460 +b(S-RIGHT)37 b Fe(!)e Fg(M-+)4242 2807 y(S-RET)107 b +Fe(!)35 b Fg(C-S-RET)4242 2991 y Fh(Notes)4242 3123 y +Ff(1)4307 3146 y Fi(The)28 b(six)f(autoload)i(forms)e(are)h(only)g +(needed)h(if)e(Org-mo)r(de)g(is)g(not)4242 3216 y(part)d(of)f(Emacs,)h +(or)f(an)h(XEmacs)g(pac)n(k)l(age.)4242 3302 y Ff(2)4313 +3325 y Fi(This)34 b(is)f(only)h(a)h(suggestion)g(for)e(a)h(binding)h +(of)e(this)h(command.)4242 3395 y(Cho)r(ose)24 b(y)n(ou)h(o)n(wn)f(k)n +(ey)g(as)g(sho)n(wn)g(under)g(INST)-6 b(ALLA)g(TION.)4242 +3481 y Ff(3)4300 3504 y Fi(After)21 b(c)n(hanging)h(a)f +Fg(#+KEYWORD)j Fi(line,)d(press)f Fg(C-c)37 b(C-c)21 +b Fi(with)g(the)h(cur-)4242 3574 y(sor)h(still)g(in)g(a)h(line)f(to)h +(mak)n(e)h(Org-mo)r(de)e(notice)i(the)f(c)n(hange.)4242 +3659 y Ff(4)4303 3683 y Fi(Keybinding)g(a\013ected)i(b)n(y)e +Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838 +3768 y(c)4821 3770 y Fa(\015)d Fb(2006)i(F)-5 b(ree)21 +b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826 +y(v4.03)h(for)h(Org-Mo)r(de)e(4.03,)i(2006)4912 3882 +y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g +(design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242 +4022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e +(distribute)f(copies)j(of)f(this)f(card)h(pro-)4242 4077 +y(vided)23 b(the)h(cop)n(yrigh)n(t)h(notice)g(and)f(this)f(p)r +(ermission)h(notice)g(are)h(preserv)n(ed)g(on)4242 4133 +y(all)20 b(copies.)p eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/etc/orgcard.tex b/etc/orgcard.tex new file mode 100644 index 00000000000..832e1dd6c85 --- /dev/null +++ b/etc/orgcard.tex @@ -0,0 +1,758 @@ +% Reference Card for Org Mode 4.03 +% +%**start of header +\newcount\columnsperpage + +% This file can be printed with 1, 2, or 3 columns per page (see below). +% At the moment this card works quite nicely in 3 column format and +% currently takes 2 full pages. It is thus suited to producing one +% double-side page when printed. + +% There are a couple of tweaks in the format of this card which make it work +% slightly better on A4 paper. The changes due, I think, to Stephen Eglen, +% are commented below. Revert the changes if you want letter sized paper. + +% Try running something like +% tex org-mode-ref.tex; dvips -t landscape org-mode-ref.dvi +% to print the card + +\columnsperpage=3 + +% Copyright (c) 2004 Philip Rooke, 2005, 2006 Free Software Foundation + +% GNU Emacs is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2, or (at your option) +% any later version. + +% GNU Emacs is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. + +% You should have received a copy of the GNU General Public License +% along with GNU Emacs; see the file COPYING. If not, write to +% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +% Boston, MA 02111-1307, USA. + +% This file is intended to be processed by plain TeX (TeX82). +% +% The final reference card has six columns, three on each side. +% This file can be used to produce it in any of three ways: +% 1 column per page +% produces six separate pages, each of which needs to be reduced to 80%. +% This gives the best resolution. +% 2 columns per page +% produces three already-reduced pages. +% You will still need to cut and paste. +% 3 columns per page +% produces two pages which must be printed sideways to make a +% ready-to-use 8.5 x 11 inch reference card. +% For this you need a dvi device driver that can print sideways. +% Which mode to use is controlled by setting \columnsperpage above. +% +% Author: +% Stephen Gildea +% Internet: gildea@stop.mail-abuse.org +% +% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik +% for their many good ideas. + +\def\orgversionnumber{4.03} +\def\year{2006} + +\def\shortcopyrightnotice{\vskip 1ex plus 2 fill + \centerline{\small \copyright\ 2004, 2005, 2006\ Free Software Foundation, Inc. + Permissions on back. v\orgversionnumber}} + +\def\copyrightnotice{ +\vskip 1ex plus 100 fill\begingroup\small +\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} +\centerline{v\orgversionnumber{} for Org-Mode \orgversionnumber{}, \year} +\centerline{Author: Philip Rooke} +\centerline{based on refcard design and format by Stephen Gildea} + +Permission is granted to make and distribute copies of +this card provided the copyright notice and this permission notice +are preserved on all copies. + +\endgroup} + +% make \bye not \outer so that the \def\bye in the \else clause below +% can be scanned without complaint. +\def\bye{\par\vfill\supereject\end} + +\newdimen\intercolumnskip %horizontal space between columns +\newbox\columna %boxes to hold columns already built +\newbox\columnb + +\def\ncolumns{\the\columnsperpage} + +\message{[\ncolumns\space + column\if 1\ncolumns\else s\fi\space per page]} + +\def\scaledmag#1{ scaled \magstep #1} + +% This multi-way format was designed by Stephen Gildea October 1986. +% Note that the 1-column format is fontfamily-independent. +\if 1\ncolumns %one-column format uses normal size + \hsize 4in + \vsize 10in + \voffset -.7in + \font\titlefont=\fontname\tenbf \scaledmag3 + \font\headingfont=\fontname\tenbf \scaledmag2 + \font\smallfont=\fontname\sevenrm + \font\smallsy=\fontname\sevensy + + \footline{\hss\folio} + \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} +\else %2 or 3 columns uses prereduced size + \hsize 3.2in + +% FIXME - Try to make things more A4 friendly +% \vsize 7.95in + \vsize 7.65in +% \hoffset -.75in + \hoffset -.25in + \voffset -.745in + \font\titlefont=cmbx10 \scaledmag2 + \font\headingfont=cmbx10 \scaledmag1 + \font\smallfont=cmr6 + \font\smallsy=cmsy6 + \font\eightrm=cmr8 + \font\eightbf=cmbx8 + \font\eightit=cmti8 + \font\eighttt=cmtt8 + \font\eightmi=cmmi8 + \font\eightsy=cmsy8 + \textfont0=\eightrm + \textfont1=\eightmi + \textfont2=\eightsy + \def\rm{\eightrm} + \def\bf{\eightbf} + \def\it{\eightit} + \def\tt{\eighttt} + +% FIXME - Try to make things more A4 friendly +% \normalbaselineskip=.8\normalbaselineskip + \normalbaselineskip=.7\normalbaselineskip + \normallineskip=.8\normallineskip + \normallineskiplimit=.8\normallineskiplimit + \normalbaselines\rm %make definitions take effect + + \if 2\ncolumns + \let\maxcolumn=b + \footline{\hss\rm\folio\hss} + \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}} + \else \if 3\ncolumns + \let\maxcolumn=c + \nopagenumbers + \else + \errhelp{You must set \columnsperpage equal to 1, 2, or 3.} + \errmessage{Illegal number of columns per page} + \fi\fi + + \intercolumnskip=.46in + \def\abc{a} + \output={% %see The TeXbook page 257 + % This next line is useful when designing the layout. + %\immediate\write16{Column \folio\abc\space starts with \firstmark} + \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} + \else\if a\abc + \global\setbox\columna\columnbox \global\def\abc{b} + %% in case we never use \columnb (two-column mode) + \global\setbox\columnb\hbox to -\intercolumnskip{} + \else + \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} + \def\multicolumnformat{\shipout\vbox{\makeheadline + \hbox{\box\columna\hskip\intercolumnskip + \box\columnb\hskip\intercolumnskip\columnbox} + \makefootline}\advancepageno} + \def\columnbox{\leftline{\pagebody}} + + \def\bye{\par\vfill\supereject + \if a\abc \else\null\vfill\eject\fi + \if a\abc \else\null\vfill\eject\fi + \end} +\fi + +% we won't be using math mode much, so redefine some of the characters +% we might want to talk about +%\catcode`\^=12 +\catcode`\_=12 + +% we also need the tilde, for file names. +\catcode`\~=12 + +\chardef\\=`\\ +\chardef\{=`\{ +\chardef\}=`\} + +\hyphenation{mini-buf-fer} + +\parindent 0pt +\parskip 1ex plus .5ex minus .5ex + +\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip} + +% newcolumn - force a new column. Use sparingly, probably only for +% the first column of a page, which should have a title anyway. +\outer\def\newcolumn{\vfill\eject} + +% title - page title. Argument is title text. +\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex} + +% section - new major section. Argument is section name. +\outer\def\section#1{\par\filbreak + \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}% + \vskip 2ex plus 1ex minus 1.5ex} + +\newdimen\keyindent + +% beginindentedkeys...endindentedkeys - key definitions will be +% indented, but running text, typically used as headings to group +% definitions, will not. +\def\beginindentedkeys{\keyindent=1em} +\def\endindentedkeys{\keyindent=0em} +\endindentedkeys + +% paralign - begin paragraph containing an alignment. +% If an \halign is entered while in vertical mode, a parskip is never +% inserted. Using \paralign instead of \halign solves this problem. +\def\paralign{\vskip\parskip\halign} + +% \<...> - surrounds a variable name in a code example +\def\<#1>{{\it #1\/}} + +% kbd - argument is characters typed literally. Like the Texinfo command. +\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows + +% beginexample...endexample - surrounds literal text, such a code example. +% typeset in a typewriter font with line breaks preserved +\def\beginexample{\par\leavevmode\begingroup + \obeylines\obeyspaces\parskip0pt\tt} +{\obeyspaces\global\let =\ } +\def\endexample{\endgroup} + +% key - definition of a key. +% \key{description of key}{key-name} +% prints the description left-justified, and the key-name in a \kbd +% form near the right margin. +\def\key#1#2{\leavevmode\hbox to \hsize{\vtop + {\hsize=.75\hsize\rightskip=1em + \hskip\keyindent\relax#1}\kbd{#2}\hfil}} + +\newbox\metaxbox +\setbox\metaxbox\hbox{\kbd{M-x }} +\newdimen\metaxwidth +\metaxwidth=\wd\metaxbox + +% metax - definition of a M-x command. +% \metax{description of command}{M-x command-name} +% Tries to justify the beginning of the command name at the same place +% as \key starts the key name. (The "M-x " sticks out to the left.) +\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize + {\hskip\keyindent\relax#1\hfil}% + \hskip -\metaxwidth minus 1fil + \kbd{#2}\hfil}} + +% threecol - like "key" but with two key names. +% for example, one for doing the action backward, and one for forward. +\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\hfil\quad + &\kbd{#3}\hfil\quad\cr} + +%**end of header + + +\title{Org-Mode Reference Card (1/2)} + +\centerline{(for version \orgversionnumber)} + +\section{Getting Started} +% +%Put the following in your \kbd{~/.emacs}$^1$ +\vskip -1mm +\beginexample% +%(autoload 'org-mode "org" "Org mode" t) +%(autoload 'org-diary "org" "Org mode diary entries") +%(autoload 'org-agenda "org" "Agenda from Org files" t) +%(autoload 'org-todo-list "org" "Global TODO list" t) +%(autoload 'org-store-link "org" "Store org link" t) +%(autoload 'orgtbl-mode "org" "Orgtbl minor mode" t) +%(autoload 'turn-on-orgtbl "org" "Orgtbl minor mode") +(add-to-list 'auto-mode-alist '("\\\\.org\$" . org-mode)) +(define-key global-map "\\C-cl" 'org-store-link)$^2$ +(define-key global-map "\\C-ca" 'org-agenda)$^2$ +\endexample +% +\metax{For the many customization options try}{M-x org-customize} +\metax{To read the on-line documentation try}{M-x org-info} + +\section{Visibility Cycling} + +\key{rotate current subtree between states}{TAB} +\key{rotate entire buffer between states}{S-TAB} +\key{show the whole file}{C-c C-a} +%\key{show branches}{C-c C-k} + +\section{Motion} + +\key{next heading}{C-c C-n} +\key{previous heading}{C-c C-p} +\key{next heading, same level}{C-c C-f} +\key{previous heading, same level}{C-c C-b} +\key{backward to higher level heading}{C-c C-u} +\key{jump to another place in document}{C-c C-j} + +\section{Structure Editing} + +\key{insert new heading/item at current level}{M-RET} +\key{insert new TODO entry}{M-S-RET} + +\key{promote current heading up one level}{M-LEFT} +\key{demote current heading down one level}{M-RIGHT} +\key{promote current subtree up one level}{M-S-LEFT} +\key{demote current subtree down one level}{M-S-RIGHT} + +\key{move subtree/list item up}{M-S-UP} +\key{move subtree/list item down}{M-S-DOWN} +\key{kill subtree}{C-c C-x C-w} +\key{copy subtree}{C-c C-x M-w} +\key{yank subtree}{C-c C-x C-y} + +\key{archive subtree}{C-c \$} +To set archive location for current file, add a line like$^3$: +\vskip -1mm +\beginexample% +\#+ARCHIVE: archfile::* Archived Tasks +\endexample + +\section{Filtering and Sparse Trees} + +\key{show sparse tree for all matches of a regexp}{C-c /} +\key{view TODO's in sparse tree}{C-c C-v} +\key{global TODO list in agenda mode}{C-c t$^2$} +\key{create sparse tree with all deadlines due}{C-c C-w} +\key{time sorted view of current org file}{C-c C-r} +%\key{agenda for the week}{C-c a$^2$} +%\key{agenda for date at cursor}{C-c C-o} + +\section{Tags} + +\key{set tags for current heading}{C-c C-c} +\key{realign tags in all headings}{C-u C-c C-c} +\key{create sparse tree with matching tags}{C-c \\} +\key{globally (agenda) match tags at cursor}{C-c C-o} + +\section{TODO Items} + +\key{rotate the state of the current item}{C-c C-t} +\key{view TODO items in a sparse tree}{C-c C-v} +\key{view 3rd TODO keyword's sparse tree}{C-3 C-c C-v} + +\key{set the priority of the current item}{C-c , [ABC]} +\key{remove priority cookie from current item}{C-c , SPC} +\key{raise priority of current item}{S-UP$^4$} +\key{lower priority of current item}{S-DOWN$^4$} + +\vskip 1mm +per-file TODO workflow states: add line(s) like$^3$: +\vskip -1mm +\beginexample% +\#+SEQ_TODO: TODO PROCRASTINATE BLUFF DONE +\endexample +\vskip -1mm +per-file TODO keywords: add line(s) like$^3$: +\vskip -1mm +\beginexample% +\#+TYP_TODO: Phil home work DONE +\endexample + +\section{Timestamps} + +\key{prompt for date and insert timestamp}{C-c .} +\key{like \kbd{C-c} . but insert date and time format}{C-u C-c .} +\key{Like \kbd{C-c .} but make stamp inactive}{C-c !} % FIXME +\key{insert DEADLINE timestamp}{C-c C-d} +\key{insert SCHEDULED timestamp}{C-c C-s} +\key{create sparse tree with all deadlines due}{C-c C-w} +\key{the time between 2 dates in a time range}{C-c C-y} +\key{change timestamp at cursor by $-1$ day}{S-LEFT$^4$} +\key{change timestamp at cursor by $+1$ day}{S-RIGHT$^4$} +\key{change year/month/day at cursor by $-1$}{S-DOWN$^4$} +\key{change year/month/day at cursor by $+1$}{S-UP$^4$} +\key{access the calendar for the current date}{C-c >} +\key{insert timestamp matching date in calendar}{C-c <} +\key{access agenda for current date}{C-c C-o} +\key{Select date while prompted}{mouse-1/RET} +%\key{... select date in calendar}{mouse-1/RET} +%\key{... scroll calendar back/forward one month}{< / >} +%\key{... forward/backward one day}{S-LEFT/RIGHT} +%\key{... forward/backward one week}{S-UP/DOWN} +%\key{... forward/backward one month}{M-S-LEFT/RIGT} + +\section{Links} + +\key{globally store link to the current location}{C-c l$^2$} +\key{insert a link (TAB completes stored links)}{C-c C-l} +\key{insert file link with file name completion}{C-u C-c C-l} + +\key{open link at point}{C-c C-o} +\key{open file links in emacs}{C-u C-c C-o} +\key{open link at point}{mouse-2} +\key{open file links in emacs}{mouse-3} + +{\bf Link types} + +\key{\kbd{*CamelCaseWord}}{\rm search headline} +\key{\kbd{CamelCaseWord}}{\rm search in buffer} +\key{\kbd{}}{\rm file, absolute} +\key{\kbd{}}{\rm file, relative} +\key{\kbd{}}{\rm file with line nr.} +\key{\kbd{}}{\rm search headline} +\key{\kbd{}}{\rm search string} +\key{\kbd{}}{\rm search regexp} +\key{\kbd{}}{\rm on the web} +\key{\kbd{}}{\rm EMail address} +\key{\kbd{}}{\rm Usenet group} +\key{\kbd{}}{\rm BBDB person} +\key{\kbd{}}{\rm shell command} +\key{\kbd{}}{\rm GNUS group} +\key{\kbd{}}{\rm GNUS message} +\key{\kbd{}}{\rm VM folder} +\key{\kbd{}}{\rm VM message} +% FIXME: would like to get this back in. +%\key{\kbd{}}{\rm VM remote} +Wanderlust \kbd{} and RMAIL \kbd{} like VM +%\key{\kbd{}}{\rm Wanderlust f.} +%\key{\kbd{}}{\rm Wanderlust m.} +%\key{\kbd{}}{\rm RMAIL folder} +%\key{\kbd{}}{\rm RMAIL msg} + +\section{Tables} + +%Org-mode has its own built-in intuitive table editor with unique +%capabilities. + +{\bf Creating a table} + +\metax{insert a new Org-mode table}{M-x org-table-create} +\metax{... or just start typing, e.g.}{|Name|Phone|Age RET |- TAB} +\key{convert region to table}{C-c C-c} +\key{... separator at least 3 spaces}{C-3 C-c C-c} +%\key{... prompt for separator regexp}{C-u C-c C-c} + +{\bf Commands available inside tables} + +The following commands work when the cursor is {\it inside a table}. +Outside of tables, the same keys may have other functionality. + +{\bf Re-aligning and field motion} + +\key{re-align the table without moving the cursor}{C-c C-c} +\key{re-align the table, move to next field}{TAB} +\key{move to previous field}{S-TAB} +\key{re-align the table, move to next row}{RET} + +{\bf Row and column editing} + +\key{move the current column left}{M-LEFT} +\key{move the current column right}{M-RIGHT} +\key{kill the current column}{M-S-LEFT} +\key{insert new column to left of cursor position}{M-S-RIGHT} + +\key{move the current row up}{M-UP} +\key{move the current row down}{M-DOWN} +\key{kill the current row or horizontal line}{M-S-UP} +\key{insert new row above the current row}{M-S-DOWN} +\key{insert horizontal line below the current row}{C-c -} +\key{insert horizontal line above the current row}{C-u C-c -} +\key{sort lines in region}{C-c \^{}} + +{\bf Regions} + +\key{cut rectangular region}{C-c C-x C-w} +\key{copy rectangular region}{C-c C-x M-w} +\key{paste rectangular region}{C-c C-x C-y} +\key{fill paragraph across selected cells}{C-c C-q} + +{\bf Calculations} + +These need the Emacs calc package installed. + +\key{set and eval column formula}{C-c =} +\key{set and eval named-field formula}{C-u C-c =} +\key{edit formulas in separate buffer}{C-c '} +\key{re-apply all stored equations to current line}{C-c *} +\key{re-apply all stored equations to entire table}{C-u C-c *} + +\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation +in lines starting with: {\tt | \# |}. + +\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#} + +\key{display column number cursor is in}{C-c ?} +\key{sum numbers in current column/rectangle}{C-c +} +\key{copy down with increment}{S-RET$^4$} + +A formula can also be typed directly into into a field and will +executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}. A leading \kbd{=} +introduces a column formula, \kbd{:=} a named-field formula. + +\key{Example: Add Col1 and Col2}{=\$1+\$2} +\key{... with printf format specification}{=\$1+\$2;\%.2f} +\key{... with constants from constants.el}{=\$1/\$c/\$cm} +\key{sum from 3rd hline above to here}{:=vsum(\&III)} +\key{apply current column formula}{=} + +{\bf Miscellaneous} + +\key{toggle visibility of vertical lines}{C-c |} +\metax{export as tab-separated file}{M-x org-table-export} +\metax{import tab-separated file}{M-x org-table-import} + +{\bf Tables created with the \kbd{table.el} package} + +\key{insert a new \kbd{table.el} table}{C-c ~} +\key{recognize existing table.el table}{C-c C-c} +\key{convert table (Org-mode $\leftrightarrow$ table.el)}{C-c ~} + +\newcolumn +\title{Org-Mode Reference Card (2/2)} + +\centerline{(for version \orgversionnumber)} + +\section{Agenda Views} + +\key{add/move current file to front of agenda}{C-c [} +\key{remove current file from your agenda}{C-c ]} +\key{cycle through agenda file list}{C-,} + +\key{compile agenda for the current week}{C-c a a$^2$} +\key{compile global TODO list}{C-c a t$^2$} +\key{compile TODO list for specific keyword}{C-c a T$^2$} +\key{match tags in agenda files}{C-c a m$^2$} +\key{agenda for date at cursor}{C-c C-o} +\key{show timeline of current org file}{C-c C-r} + +\vskip 1mm +To set categories, add lines like$^3$: +\vskip -1mm +\beginexample% +\#+CATEGORY: MyCateg +\endexample + +{\bf Commands available in an agenda buffer} + +{\bf View Org file} + +\key{show original location of item}{SPC} +\key{... also available with}{mouse-3} +\key{show and recenter window}{L} +\key{goto original location in other window}{TAB} +\key{... also available with}{mouse-2} +\key{goto original location, delete other windows}{RET} +\key{toggle follow-mode}{f} + +{\bf Change display} + +\key{delete other windows}{o} +\key{switch to daily / weekly view}{d / w} +\key{toggle inclusion of diary entries}{D} +\key{toggle time grid for daily schedule}{g} +\key{toggle display of logbook entries}{l} +\key{refresh agenda buffer with any changes}{r} +\key{display the following \kbd{org-agenda-ndays}}{RIGHT} +\key{display the previous \kbd{org-agenda-ndays}}{LEFT} +\key{goto today}{.} + +{\bf Remote editing} + +\key{digit argument}{0-9} +\key{change state of current TODO item}{t} +\key{show tags of current headline}{T} +\key{set tags for current headline}{:} +\key{set priority of current item}{p} +\key{raise/lower priority of current item}{S-UP/DOWN$^4$} +%\key{lower priority of current item}{S-DOWN$^4$} +\key{display weighted priority of current item}{P} +\key{change timestamp to one day earlier/later}{S-LEFT/RIGHT$^4$} +%\key{change timestamp to one day earlier}{S-LEFT$^4$} +%\key{change timestamp to one day later}{S-RIGHT$^4$} +\key{change timestamp to today}{>} +\key{insert new entry into diary}{i} + +{\bf Calendar commands} + +\key{find agenda cursor date in calendar}{c} +\key{compute agenda for calendar cursor date}{c} +\key{show phases of the moon}{M} +\key{show sunrise/sunset times}{S} +\key{show holidays}{H} +\key{convert date to other calendars}{C} + +{\bf Quit and Exit} + +\key{quit agenda, remove agenda buffer}{q} +\key{exit agenda, remove all agenda buffers}{x} + +\section{Exporting} + +Exporting creates files with extensions {\it .txt\/} and {\it .html\/} +in the current directory. + +\key{export as ASCII file}{C-c C-x a} +\key{export visible text only (e.g. for printing)}{C-c C-x v} +\key{export as HTML file}{C-c C-x h} +\key{export as HTML and open in browser}{C-c C-x b} +\key{prefix arg sets nb. of headline levels, e.g.}{C-3 C-c C-x h} + +\key{export as iCalendar file}{C-c C-x i} +\key{export all agenda files as iCalendar files}{C-c C-x C-i} +\key{combine all agenda files to single iCal file}{C-c C-x C-c} + +\key{insert template of export options}{C-c C-x t} + +\key{toggle fixed width for entry or region}{C-c :} + +{\bf HTML formatting} + +\key{make words {\bf bold}}{*bold*} +\key{make words {\it italic}}{/italic/} +\key{make words \underbar{underlined}}{_underlined_} +\key{sub- and superscripts}{x\^{}3, J_dust} +\key{\TeX{}-like macros}{\\alpha, \\to} +\key{typeset lines in fixed width font}{start with :} +\key{tables are exported as HTML tables}{start with |} +\key{links become HTML links}{http:... etc} +\key{include html tags}{@...@} + +{\bf Export options} + +Include additional information for export by putting these anywhere in the +org file. Use {\tt M-TAB} completion to make sure to get the right +keywords. {\tt M-TAB} again just after keyword is complete inserts examples. + +\key{the title to be shown}{\#+TITLE:} +\key{the author}{\#+AUTHOR:} +\key{authors email address}{\#+EMAIL:} +\key{language code for html}{\#+LANGUAGE:} +\key{free text description of file}{\#+TEXT:} +\key{... which can carry over multiple lines}{\#+TEXT:} +\key{settings for the export process - see below}{\#+OPTIONS:} + +{\bf Settings for the OPTIONS line} + +\key{set number of headline levels for export}{H:2} +\key{turn on/off section numbers}{num:t} +\key{turn on/off table of contents}{toc:t} +\key{turn on/off linebreak preservation}{\\n:nil} +\key{turn on/off quoted html tags}{@:t} +\key{turn on/off fixed width sections}{::t} +\key{turn on/off tables}{|:t} +\key{turn on/off \TeX\ syntax for sub/super-scripts}{\^{}:t} +\key{turn on/off emphasised text}{*:nil} +\key{turn on/off \TeX\ macros}{TeX:t} + +{\bf Comments: Text not being exported} + +Text before the first headline is not considered part of the document +and is therefore never exported. +Lines starting with \kbd{\#} are comments and are not exported. +Subtrees whose header starts with COMMENT are never exported. + +\key{toggle COMMENT keyword on entry}{C-c ;} + +\section{Completion} + +In-buffer completion completes TODO keywords at headline start, TeX +macros after ``{\tt \\}'', option keywords after ``{\tt \#-}'', TAGS +after ``{\tt :}'', and dictionary words elsewhere. + +\key{Complete word at point}{M-TAB} + +\newcolumn + +\section{Calendar and Diary Integration} + +To include entries from the Emacs diary in your Org-mode agenda: +\beginexample% +(setq org-agenda-include-diary t) +\endexample + +To include the Org-mode agenda in the normal diary, make sure you're +using the fancy diary display +% +%\beginexample% +%(add-hook 'diary-display-hook 'fancy-diary-display) +%\endexample +% +and in the \kbd{~/diary} file add + +\beginexample% +\&\%\%(org-diary) +\endexample + +to include all the files listed in \kbd{org-agenda-files}. For more +selective file inclusion use a line for each file: + +\beginexample% +\&\%\%(org-diary) ~/path/to/some/org-file.org +\endexample + +\section{Remember-mode Integration} + +See the manual for how to make remember.el use Org-mode links and +files. The note-finishing command \kbd{C-c C-c} will first prompt for +an org file. In the file, find a location with: + +\key{rotate subtree visibility}{TAB} +\key{next heading}{DOWN} +\key{previous heading}{UP} + +Insert the note with one of the following: + +\key{as sublevel of heading at cursor}{RET} +\key{right here (cursor not on heading)}{RET} +\key{before current heading}{LEFT} +\key{after current heading}{RIGHT} +\key{shortcut to end of buffer (cursor at buf-start)}{RET} +\key{Abort}{q} + +\section{CUA and pc-select compatibility} + +Configure the variable {\tt org-CUA-compatibility} to make Org-mode +avoid the \kbd{S-} bindings used by these modes. When set, +Org-mode will change the following keybindings (also in the agenda +buffer, but not during date selection). See note mark four$^4$ +throughout the reference card. +%\vskip-mm +\beginexample +S-UP $\to$ M-p S-DOWN $\to$ M-n +S-LEFT $\to$ M-- S-RIGHT $\to$ M-+ +S-RET $\to$ C-S-RET +\endexample + +\section{Notes} +$^1$ The six autoload forms are only needed if Org-mode is not part of +Emacs, or an XEmacs package. + +$^2$ This is only a suggestion for a binding of this command. Choose +you own key as shown under INSTALLATION. + +$^3$ After changing a \kbd{\#+KEYWORD} line, press \kbd{C-c C-c} with +the cursor still in a line to make Org-mode notice the change. + +$^4$ Keybinding affected by {\tt org-CUA-compatibility}. + +\copyrightnotice + +\bye + + +% arch-tag: 139f6750-5cfc-49ca-92b5-237fe5795290 + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/etc/pl-refcard.tex b/etc/pl-refcard.tex index b61f6e43d53..dfbb5a2783a 100644 --- a/etc/pl-refcard.tex +++ b/etc/pl-refcard.tex @@ -1,8 +1,5 @@ %&mex %===================================================================== -% $Revision: 1.2 $ -% $Date: 2001/09/23 17:45:20 $ -%===================================================================== % Reference Card for GNU Emacs version 20 on Unix systems was % translated into Polish language by W{\l}odek Bzyl (matwb@univ.gda.pl) % who also added new section on `Dired' and added info about Polish @@ -35,7 +32,7 @@ \columnsperpage=2 -% Copyright (c) 1999 Free Software Foundation, Inc. +% Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -51,8 +48,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file is intended to be processed by plain TeX (TeX82). % @@ -76,7 +73,7 @@ % If there were room, it would be nice to see a section on Dired. \def\versionnumber{1.1} -\def\year{1999} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. @@ -95,7 +92,7 @@ this card provided the copyright notice and this permission notice are preserved on all copies. For copies of the GNU Emacs manual, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \endgroup} @@ -992,3 +989,5 @@ przez wywo/lanie \kbd{C-h f interactive}. \copyrightnotice \bye + +% arch-tag: 19d15a16-70be-40c8-ad91-88899aac32a9 diff --git a/etc/ps-prin0.ps b/etc/ps-prin0.ps index d7d5200182a..952c31d2b2e 100644 --- a/etc/ps-prin0.ps +++ b/etc/ps-prin0.ps @@ -17,8 +17,8 @@ % % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to the -% Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % As a special exception, the copyright holders of this module give % you permission to include the module in a Postscript file generated diff --git a/etc/ps-prin1.ps b/etc/ps-prin1.ps index 1716562b0f4..118133ba73b 100644 --- a/etc/ps-prin1.ps +++ b/etc/ps-prin1.ps @@ -1,7 +1,7 @@ % === BEGIN ps-print prologue 1 % version: 6.0 -% Copyright (C) 2000, 2001 Free Software Foundation, Inc. +% Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. % % This file is part of GNU Emacs. % @@ -17,8 +17,8 @@ % % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to the -% Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % As a special exception, the copyright holders of this module give % you permission to include the module in a Postscript file generated @@ -751,6 +751,9 @@ StandardEncoding 46 82 getinterval aload pop FooterLineHeight FooterLines 1 sub mul add }def +/HeaderClip{HeaderFrameStart moveto HeaderFramePath clip}def +/FooterClip{FooterFrameStart moveto FooterFramePath clip}def + /strcat{ dup length 3 -1 roll dup length dup 4 -1 roll add string dup 0 5 -1 roll putinterval @@ -803,17 +806,21 @@ StandardEncoding 46 82 getinterval aload pop }def /HeaderText{ + gsave HeaderClip HeaderLinesRight HeaderLinesLeft /HeaderStart HeaderLineHeight HeaderPad HeaderFrameProperties 0 get HeaderOrFooterText + grestore }def /FooterText{ + gsave FooterClip FooterLinesRight FooterLinesLeft /FooterStart FooterLineHeight FooterPad FooterFrameProperties 0 get HeaderOrFooterText + grestore }def /ReportFontInfo{ diff --git a/etc/refcard.tex b/etc/refcard.tex index 7e6234d45dd..5567320c98a 100644 --- a/etc/refcard.tex +++ b/etc/refcard.tex @@ -1,13 +1,21 @@ -% Reference Card for GNU Emacs version 21 on Unix systems +% Reference Card for GNU Emacs version 22 on Unix systems %**start of header \newcount\columnsperpage +\newcount\letterpaper % This file can be printed with 1, 2, or 3 columns per page (see below). -% Specify how many you want here. Nothing else needs to be changed. +% Specify how many you want here. -\columnsperpage=1 +\columnsperpage=3 -% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc. +% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful +% only when columnsperpage is 2 or 3. + +\letterpaper=1 + +% Nothing else needs to be changed below this line. +% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -23,8 +31,8 @@ % You should have received a copy of the GNU General Public License % along with GNU Emacs; see the file COPYING. If not, write to -% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. % This file is intended to be processed by plain TeX (TeX82). % @@ -42,6 +50,10 @@ % For this you need a dvi device driver that can print sideways. % Which mode to use is controlled by setting \columnsperpage above. % +% To compile and print this document: +% tex refcard.tex +% dvips -t landscape refcard.dvi +% % Author: % Stephen Gildea % Internet: gildea@stop.mail-abuse.org @@ -51,8 +63,8 @@ % If there were room, it would be nice to see a section on Dired. -\def\versionnumber{2.2} -\def\year{1997} +\def\versionnumber{2.3} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. @@ -61,7 +73,7 @@ \def\copyrightnotice{ \vskip 1ex plus 2 fill\begingroup\small \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} -\centerline{v\versionnumber{} for GNU Emacs version 21, \year} +\centerline{v\versionnumber{} for GNU Emacs version 22, \year} \centerline{designed by Stephen Gildea} Permission is granted to make and distribute copies of @@ -69,7 +81,7 @@ this card provided the copyright notice and this permission notice are preserved on all copies. For copies of the GNU Emacs manual, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \endgroup} @@ -103,7 +115,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} \else %2 or 3 columns uses prereduced size \hsize 3.2in - \vsize 7.95in + \if 1\the\letterpaper + \vsize 7.95in + \else + \vsize 7.65in + \fi \hoffset -.75in \voffset -.745in \font\titlefont=cmbx10 \scaledmag2 @@ -123,7 +139,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\bf{\eightbf} \def\it{\eightit} \def\tt{\eighttt} - \normalbaselineskip=.8\normalbaselineskip + \if 1\the\letterpaper + \normalbaselineskip=.8\normalbaselineskip + \else + \normalbaselineskip=.7\normalbaselineskip + \fi \normallineskip=.8\normallineskip \normallineskiplimit=.8\normallineskiplimit \normalbaselines\rm %make definitions take effect @@ -251,13 +271,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \title{GNU Emacs Reference Card} -\centerline{(for version 21)} +\centerline{(for version 22)} \section{Starting Emacs} -To enter GNU Emacs 21, just type its name: \kbd{emacs} - -To read in a file to edit, see Files, below. +To enter GNU Emacs 22, just type its name: \kbd{emacs} \section{Leaving Emacs} @@ -272,7 +290,7 @@ To read in a file to edit, see Files, below. \key{{\bf insert} contents of another file into this buffer}{C-x i} \key{replace this file with the file you really want}{C-x C-v} \key{write buffer to a specified file}{C-x C-w} -\key{version control checkin/checkout}{C-x C-q} +\key{toggle read-only status of buffer}{C-x C-q} \section{Getting Help} @@ -284,15 +302,15 @@ the directions. If you are a first-time user, type \kbd{C-h t} for a \key{scroll help window}{C-M-v} \key{apropos: show commands matching a string}{C-h a} -\key{show the function a key runs}{C-h c} +\key{describe the function a key runs}{C-h k} \key{describe a function}{C-h f} \key{get mode-specific information}{C-h m} \section{Error Recovery} \key{{\bf abort} partially typed or executing command}{C-g} -\metax{{\bf recover} a file lost by a system crash}{M-x recover-file} -\key{{\bf undo} an unwanted change}{C-x u {\rm or} C-_} +\metax{{\bf recover} files lost by a system crash}{M-x recover-session} +\metax{{\bf undo} an unwanted change}{C-x u, C-_ {\rm or} C-/} \metax{restore a buffer to its original contents}{M-x revert-buffer} \key{redraw garbaged screen}{C-l} @@ -369,6 +387,8 @@ If Emacs is still searching, \kbd{C-g} cancels only the part not done. \section{Query Replace} \key{interactively replace a text string}{M-\%} +% query-replace-regexp is bound to C-M-% but that can't be typed on +% consoles. \metax{using regular expressions}{M-x query-replace-regexp} Valid responses in query-replace mode are @@ -383,12 +403,12 @@ Valid responses in query-replace mode are \section{Multiple Windows} -When two commands are shown, the second is for ``other frame.'' - -\key{delete all other windows}{C-x 1} +When two commands are shown, the second is a similar command for a +frame instead of a window. {\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr +\threecol{delete all other windows}{C-x 1\ \ \ \ }{C-x 5 1} \threecol{split window, above and below}{C-x 2\ \ \ \ }{C-x 5 2} \threecol{delete this window}{C-x 0\ \ \ \ }{C-x 5 0} }} @@ -430,7 +450,7 @@ When two commands are shown, the second is for ``other frame.'' \key{set fill column}{C-x f} \key{set prefix each line starts with}{C-x .} -\key{set face}{M-g} +\key{set face}{M-o} \section{Case Change} @@ -543,7 +563,7 @@ minibuffer. Type \kbd{F10} to activate the menu bar using the minibuffer. \section{International Character Sets} -\metax{specify principal language}{M-x set-language-environment} +\key{specify principal language}{C-x RET l} \metax{show all input methods}{M-x list-input-methods} \key{enable or disable input method}{C-\\} \key{set coding system for next command}{C-x RET c} @@ -553,7 +573,7 @@ minibuffer. Type \kbd{F10} to activate the menu bar using the minibuffer. \section{Info} \key{enter the Info documentation reader}{C-h i} -\key{find specified function or variable in Info}{C-h C-i} +\key{find specified function or variable in Info}{C-h S} \beginindentedkeys Moving within a node: @@ -572,6 +592,7 @@ Moving between nodes: \key{follow cross reference (return with \kbd{l})}{f} \key{return to last node you saw}{l} \key{return to directory node}{d} +\key{go to top node of Info file}{t} \key{go to any node by name}{g} Other: @@ -651,3 +672,5 @@ Type \kbd{C-h f interactive} for more details. % Local variables: % compile-command: "tex refcard" % End: + +% arch-tag: d67bdf5d-b77c-44eb-a22e-f4f7d25174d2 diff --git a/etc/ru-refcard.ps b/etc/ru-refcard.ps new file mode 100644 index 00000000000..201708fda8a --- /dev/null +++ b/etc/ru-refcard.ps @@ -0,0 +1,2087 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software +%%Title: ru-refcard.dvi +%%Pages: 6 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentFonts: CMSY10 CMMI10 CMSY8 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips ru-refcard.dvi +%DVIPSParameters: dpi=600, compressed +%DVIPSSource: TeX output 2004.05.16:0847 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: bbad153f.enc +% Thomas Esser, Dec 2002. public domain +% +% Encoding for: +% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 +% +/TeXbbad153fEncoding [ +/minus /periodcentered /multiply /asteriskmath /divide /diamondmath +/plusminus /minusplus /circleplus /circleminus /circlemultiply +/circledivide /circledot /circlecopyrt /openbullet /bullet +/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal +/greaterequal /precedesequal /followsequal /similar /approxequal +/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows +/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast +/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup +/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional +/prime /infinity /element /owner /triangle /triangleinv /negationslash +/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur +/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K +/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection +/unionmulti /logicaland /logicalor /turnstileleft /turnstileright +/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright +/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv +/backslash /wreathproduct /radical /coproduct /nabla /integral +/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section +/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/minus /periodcentered /multiply /asteriskmath /divide /diamondmath +/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef +/circlemultiply /circledivide /circledot /circlecopyrt /openbullet +/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset +/lessequal /greaterequal /precedesequal /followsequal /similar +/approxequal /propersubset /propersuperset /lessmuch /greatermuch +/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%%EndProcSet +%%BeginProcSet: aae443f0.enc +% Thomas Esser, Dec 2002. public domain +% +% Encoding for: +% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 +% +/TeXaae443f0Encoding [ +/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega +/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa +/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi +/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf +/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft +/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle +/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle +/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash +/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N +/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow +/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p +/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector +/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi +/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta +/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon +/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%%EndProcSet +%%BeginProcSet: texps.pro +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 +ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ +pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get +div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type +/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end +definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup +sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll +mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ +exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} +forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def +end + +%%EndProcSet +%%BeginFont: CMSY8 +%!PS-AdobeFont-1.1: CMSY8 1.0 +%%CreationDate: 1991 Aug 15 07:22:10 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-30 -955 1185 779}readonly def +/UniqueID 5000818 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 +7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 +A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 +E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A +221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBB2A7C1B5D8E7E8AA0 +5B10EA43D6A8ED61AF5B23D49920D8F79DAB6A59062134D84AC0100187A6CD1F +80F5DDD9D222ACB1C23326A7656A635C4A241CCD32CBFDF8363206B8AA36E107 +1477F5496111E055C7491002AFF272E46ECC46422F0380D093284870022523FB +DA1716CC4F2E2CCAD5F173FCBE6EDDB874AD255CD5E5C0F86214393FCB5F5C20 +9C3C2BB5886E36FC3CCC21483C3AC193485A46E9D22BD7201894E4D45ADD9BF1 +CC5CF6A5010B5654AC0BE0DA903DB563B13840BA3015F72E51E3BC80156388BA +F83C7D393392BCBC227771CDCB976E93302531886DDA73EBC9178917EFD0C20B +133F1E59A8222E5BFB551A83F4FA4E7575C4E9556A1CD08636CCD84A8CD68BC5 +B0B5FDB60A42D5268523571C380A40A2185DA33AFCEF07CF681C587F69335477 +0A535626330F01005AE0E22F4F056542904D0BC2735740435058364F3E7EAE12 +D6E8F8F33F9F6E5B5DC4B10CCE72C3A8B08746022ADDA3C1C47766E8BE936416 +3C4F26FA35AF5DA3F7D9F49E6A866FE2F2536512BF226E3CCD1C2B9ADF85B404 +6377DEB1E20508D3D0E69F244B91C1C736A1BE3815FDDAB369C55D99CDA5C82A +7873D8B378A3ED6E0D6C518B5F741029D946B0356249E3A6BCD013B7C829C503 +BA9D46A1C3CBD3FEC92F0C2D2207B273DC24E300E83AB9EED3EBBA394BE52DBA +35BA6B291F971A79BC60 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +9560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD +0DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE +E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C +7FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37 +88D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6 +DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1 +AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMSY10 +%!PS-AdobeFont-1.1: CMSY10 1.0 +%%CreationDate: 1991 Aug 15 07:20:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-29 -960 1116 775}readonly def +/UniqueID 5000820 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 +7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 +A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 +E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A +221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A +27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF +5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 +0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 +DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A +71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 +4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C +515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD +5F3D998C7A49AEF3CB6B1A9EB69F3CEA454AD2808F02492DD00C7050748656DA +5A3A67850F65A778D67EBCC7040722819412C6225B3188DD2D94DDE572362C17 +4F50D814C4EBB50F501DE84522460B812765DDAABC6A311FFB429457E6767CDA +983F330179AF9D598AEB9650568AD79307FB100555AB73B0929E428272550D22 +FBFA319BCE7F77420EFC9514634223E3BB29AD77E0B2A7D67B90AF5FEF8199FF +0109AF4F39A23E7860EFC6F83A1BEE01DA2F5092363C2FA05251FAB8B291517B +5806321FFA8B26906A5EECFE9CDD4949944E19B3504B268938BCAC03C2CE0CC5 +F4465CF1CF403B667113059AC5D340E30AE1825AA2829DA83196C33044E6023F +C1654A0861D138AE84F16B962C0122AC9345ED069B0D66F1B775F1D5E3CD3B +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 39158280 55380996 1000 600 600 (ru-refcard.dvi) +@start /Fa 242[71 13[{ TeXbbad153fEncoding ReEncodeFont }1 +66.4176 /CMSY8 rf +%DVIPSBitmapFont: Fb larm0800 8 56 +/Fb 56 241 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A +5A126009157A8714>44 DI<123C127E12FFA4127E123C08087A +8714>I48 D<130C133C137CEA03FC12FFEAFC7C1200B3B113 +FE387FFFFEA2172C7AAB23>III<000CEB0180 +380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FCA8EB1FC0EB7FF8380DE07C380F80 +1F01001380000E130F000CEB07C0C713E0A2140315F0A4127812FCA448EB07E012E00060 +14C00070130F6C14806CEB1F006C133E380780F83801FFE038007F801C2D7DAB23>53 +D<1230123C003FB512F8A215F05A15E039700001C000601480140348EB0700140E140CC7 +121C5C143014705C495AA2495AA249C7FCA25B130E131EA2133EA3133C137CA413FCA913 +781D2E7CAC23>55 D57 D60 D<12E01278121EEA0780EA01E0EA0078131EEB0780EB01E0EB0078141EEC0780EC +01E0EC0078151EED0780ED01E0ED0078161EEE0780EE01C0EE0780EE1E001678ED01E0ED +0780031EC7FC1578EC01E0EC0780021EC8FC1478EB01E0EB0780011EC9FC1378EA01E0EA +0780001ECAFC127812E02A297AA437>62 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419A2EC +30FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2011F +B57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0D80F +F0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 DII69 DII73 +D<90387FFFF0A201001300147EB3AD123812FEA314FE5C1278387001F86C485A381E07E0 +3807FF80D801FCC7FC1C2E7DAC24>I77 +DIII<90383F80303901FFF0703807C0 +7C390F000EF0001E13074813034813011400127000F01470A315307EA26C1400127E127F +EA3FE013FE381FFFE06C13FC6C13FF00011480D8003F13E013039038003FF0EC07F81401 +140015FC157C12C0153CA37EA215787E6C14706C14F06CEB01E039F78003C039E3F00F00 +38E07FFE38C00FF01E2F7CAD27>83 D<007FB712F8A29039000FC003007C150000701638 +A200601618A200E0161CA248160CA5C71500B3A94A7E011FB512E0A22E2D7EAC33>II<13FF000713C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07 +FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007F +EBEF8C391F83C7FC390FFF03F83901FC01E01F207D9E23>97 DII<15F8141FA214011400ACEB0FE0EB7FF8 +3801F81E3803E0073807C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E +13017EEB8003000F13073903E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27 +>III<013F13F8 +9038FFC3FE3903E1FF1E3807807C000F140C391F003E00A2003E7FA76C133EA26C6C5A00 +071378380FE1F0380CFFC0D81C3FC7FC90C8FCA3121E121F380FFFF814FF6C14C04814F0 +391E0007F848130048147C12F848143CA46C147C007C14F86CEB01F06CEB03E03907E01F +803901FFFE0038003FF01F2D7E9D23>I +II107 DI<2607C07FEB07F03BFFC3FFC03FFC903AC783F0783F3C0F +CE01F8E01F803B07DC00F9C00F01F8D9FF8013C04990387F000749137EA249137CB2486C +01FEEB0FE03CFFFE0FFFE0FFFEA2371E7E9D3C>I<3807C0FE39FFC3FF809038C703E039 +0FDE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>II<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC +49137E49133E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC +01F09038CE07E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>I<38 +0781F038FF87FCEB9E7EEA0F98EA07B813B0EBF03CEBE000A35BB1487EB5FCA2171E7E9D +1B>114 D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7EB41300EA +7FF06CB4FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C13 +3CA26C137838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A212 +07121FB512F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7F +A81B>II<3AFFFC01FFC0A23A0FE0007E0000 +07147C15380003143015706C6C1360A26C6C5BA390387C0180A26D48C7FCA2EB3F07EB1F +06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5A221E7F9C25>I<3BFFFC3FFE07FFA2 +3B0FE003F001F801C09038E000F00007010114E0812603E00314C0A2913807F8012701F0 +06781380A29039F80E7C030000D90C3C1300A290397C181E06A2151F6D486C5AA2168C90 +391F600798A216D890390FC003F0A36D486C5AA36DC75A301E7F9C33>I<3AFFFC07FF80 +A23A0FF003FC000003EB01F0000114C06D485A000091C7FCEB7C06EB3E0E6D5A14B8EB0F +B0EB07E013036D7E497E1307EB067C497EEB1C1F01387FEB700F496C7E6E7ED803C07F00 +076D7E391FE003FC3AFFF007FFC0A2221D7F9C25>I<3AFFFC01FFC0A23A0FE0007E0000 +07147C1538000314306D137000011460A26C6C5BA2EBFC01017C5BEB7E03013E90C7FCA2 +EB1F06A2148EEB0F8CA2EB07D8A2EB03F0A36D5AA26D5AA2495AA2130391C8FC1278EAFC +06A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C25>I207 D226 +D<90B612E0A290390E007E00157C13061304130CAA5BA35BA21370136013E0485A485A00 +0FC7127E007FB612E0A2007CC7120300781401007014000060156000E01570A2481530A5 +24287F9C27>228 DI238 D<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC49137E4913 +3E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE +07E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>240 +D E +%EndDVIPSBitmapFont +/Fc 197[23 58[{ TeXaae443f0Encoding ReEncodeFont }1 83.022 +/CMMI10 rf /Fd 145[42 3[23 106[{ TeXbbad153fEncoding ReEncodeFont }2 +83.022 /CMSY10 rf +%DVIPSBitmapFont: Fe lati1000 10 6 +/Fe 6 115 df<14F8EB07FE90381F871C90383E03FE137CEBF801120148486C5A485A12 +0FEBC001001F5CA2EA3F801403007F5C1300A21407485C5AA2140F5D48ECC1C0A2141F15 +831680143F1587007C017F1300ECFF076C485B9038038F8E391F0F079E3907FE03FC3901 +F000F0222677A42A>97 D<147F903803FFC090380FC1E090381F0070017E137849133839 +01F801F83803F003120713E0120FD81FC013F091C7FC485AA2127F90C8FCA35A5AA45AA3 +153015381578007C14F0007EEB01E0003EEB03C0EC0F806CEB3E00380F81F83803FFE0C6 +90C7FC1D2677A426>99 D103 DI110 D<3903C003F0390FF01FFC391E783C0F381C7C703A3C3EE03F8038383FC0EB7F +800078150000701300151CD8F07E90C7FCEAE0FE5BA2120012015BA312035BA312075BA3 +120F5BA3121F5BA3123F90C9FC120E212679A423>114 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff labx1000 10 36 +/Ff 36 256 df45 D100 D<903803FF80011F13F0017F13FC3901FF83FE3A03 +FE007F804848133F484814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FC +A301E0C8FCA4127FA36C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C0 +7FC06DB51200010F13FC010113E025257DA42C>II<01FEEB7FC000FF903803FFF8020F13FE91381F +03FFDA3C011380000713780003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430 +257DA435>110 D<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C6E4813E0 +6CD9C03E13FF90387FFFFC011F13F00103138030257DA435>117 +D224 D<163EED03FEEC01FF147F0107B5FC011F5C137F48B65A485D4815C0 +4802F8C7FC02C0C8FCD81FFCC9FC13F0485A5B5B90CAFC127EA2127C903801FFC0010F13 +F8D8787F13FF26F8FF807F3AFBFE003FE0B4486D7E496D7E496D7EA28249130382A31780 +A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C6CB5 +C7FC011F13FC010113C0293A7DB930>III<010FB712C0A3903B00 +7C003FF0001478AB1470A214F0A35C1301A25C1303A2495AA249C7FC5B133E5B5B485A00 +7FB812E0A301E0C8127F90C9120F007E1607007C1603A248EE01F0A3481600A5343280A4 +35>I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C000 +1FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678 +121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113 +E025257DA42C>II<38701FFF007C +B512F0007F14FE9038E00FFFD98001138090C713C0127E007CEC7FE0A21278A2C8EAFFC0 +5C4A1300EC0FFE90383FFFF815C015F89038000FFE913803FF80020013C0A2ED7FE016F0 +A412F07E007815E015FF007C15C06C01031380261FC00F13006CB512FC000314F0C66C90 +C7FC24257EA42A>II<90390F8001F090391FE007F8496C487E017F80ECF81FA4ECF00F013F5C +ECE0076D486C5A6DB55A010314C0010091C7FCEC1FF891C9FCA4B5D8FC3FB5FCA3000390 +C713C0A25D5DA25D5D5D151E5D157C15785D4A5AA24A5A4A5AA24A5A141E143E143C5C14 +F85C5C5CA25C91C7FCA2B5D8FC3F13FFA330397EB835>II<011FB71280A3903B00F8007FE0005CB3A3EA1E01123F387F +81E0EAFFC113C3A2EBC7C0138F6CB45A6CD9001FB512806C5AEA0FF831257FA435>III<9038 +01FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F +81491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A +6C6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>II<9039FF01FF80B5000F13F0023F13FC9138FE +07FFDAF00113800007496C13C06C0180EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17 +FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8 +020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<903801FFC0010F13FC017F13 +FFD9FF8013802603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7 +FC12FFA9127FA27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E00 +6DB45A010F13F00101138023257DA42A>I<007FB612FEA301811381D87E01EB807E007C +153E0078151EA200F8151FA200F0150FA500001500B348B61280A328257EA42D>II< +ED01FEEC01FFA4EC000F1507AFDAFF87EB1FF0010F01E7EB7FFF013F90B712C09026FFE0 +7F9038E07FF00003D9801F9038801FFC48496C496C7E48486D486D7E4848701380498200 +3F19C04982007F19E0A34848EF7FF0A96C6CEFFFE0A3003F19C06D5E001F19806D5E6C6C +496C4913006C6C4C5A6C6D486D485AC6D9E07F9038E07FF0013FB812C0010F9026E7FE7F +90C7FC01000187EB1FF0DA000790C9FCAC4AB512F8A4444A7DB94B>IIII249 D<007FB512F0A301811380EA7E01127C1278A212 +F8A212F0A5000091B5FC17F017FC9238801FFEEE07FF7013807013C0A27013E0A64C13C0 +A24C13804C1300EE1FFE017F90B55A17F094C7FC33257EA439>III254 +D<49B612F8133F90B7FC00039039C007FE003807FE00120F5B121FA5120F6C7E6C7E6C13 +E06C6CB5FC131F13004913E715C74913875B491307EB1FFE14FC133FEB7FF8EBFFF04813 +E0A24813C0481380121FB500F1B512F8A32D257EA432>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg latt1000 10 75 +/Fg 75 126 df<130EEB3F80497E3801FFF0487F000F13FE381FFBFFD87FF113C039FFC0 +7FE0EB803F38FE000F007CEB07C0007813031B0D77B42D>2 D<007FB512F0B612F8A36C +14F01D0579942C>21 D<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F +80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<003C131E007F137F481480 +A66C1400A6007E7FA6003E133EA3003C131E001C131C191977B32C>I<0107131C90380F +803EA8011F137EEC007CA4003FB612E0B712F8A43A003E00F800A2EB7E01017C5BA8EBFC +0301F85BA2B712F8A4003F15E03A01F007C000A30003130F01E05BA86C486CC7FC25337D +B22C>III39 D<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB +7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3 +127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB +03FC130113001438164272B92C>I<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E +137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC1300AC130114F8A313 +0314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A485A485AEA3FC0485A +48C7FC5A5A1270164279B92C>II<147014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267DAB2C>II<007FB512F0B612F8A36C14F01D0579942C>I< +121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2151F +16005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC5C143EA2147E +147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C13FC5B12015B +12035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA2127021417BB92C>II<1307497EA2131FA2133F137F13FF5A12 +07127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C3477B32C>IIII<000FB512FE4880A35D0180C8 +FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F49EB3F8090C7 +121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F80007FEC7F +006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C>I< +121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5 +EA7FC0EA3F80EA1F000B2470A32C>58 D<1502ED0F80151F157F15FF913803FE00EC0FFC +EC1FF0EC7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA +3FE0EAFF8090C9FCA27FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E9038 +00FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157F151F150FED0200212A7BAD2C>60 +D<122012F87EB4FC7FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E903800 +FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157FA215FF913803FE00EC0FFCEC1FF0EC +7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA3FE0EAFF +8090C9FC12FC5A1220212A7BAD2C>62 DII<14FE497EA4497FA214EFA2130781A2 +14C7A2010F7FA314C390381F83F0A590383F01F8A490387E00FCA549137E90B512FEA348 +80A29038F8003FA34848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC49 +7E27347EB32C>I<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2 +ED01F8A6ED03F0A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED +07F0ED03F81501ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016 +C0B712806CECFE0015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FF +EBFF813901FE007F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC +00F01600A212FE5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C1307 +16E0D803FC131F6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F0010013802535 +7DB32C>I<007FB5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0 +A2150716F0150316F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153F +ED7F80EDFF00EC03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712 +F8A37E3903F00001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA516 +3C167EA8007FB612FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7 +FCA716781600A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26 +337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC0149 +7E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8 +913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F +6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB3 +2C>I<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025 +337DB22C>76 D +I<007FB512C0B612F88115FF6C15802603F00013C0153FED0FE0ED07F0A2150316F81501 +A6150316F01507A2ED0FE0ED3FC015FF90B61280160015FC5D15C001F0C8FCB0387FFF80 +B57EA36C5B25337EB22C>80 D<387FFFFCB67E15E015F86C803907E007FE1401EC007F6F +7E151FA26F7EA64B5AA2153F4BC7FCEC01FE140790B55A5D15E081819038E007FCEC01FE +1400157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB2 +2C>82 D<90381FF80790B5EA0F804814CF000714FF5A381FF01F383FC003497E48C7FC00 +7E147F00FE143F5A151FA46CEC0F00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC00 +03EBFFC06C14F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A200 +78140712FCA56CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0 +D8F83F13C0D8700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078 +153CC71400B3AF90383FFFFCA2497F6D5BA227337EB22C>I87 D<387FFFFCB512FEA314FC00FCC7FC +B3B3B3B512FC14FEA36C13FC17416FB92C>91 D<127012F8A27E127C127E123E123F7EA2 +7F120F7F12077F12037F12017F12007F137C137E133EA2133F7F80130F80130780130380 +130180130080147C147E143EA2143F8081140F81140781140381140181140081157CA215 +7E153E153F811680150FA2ED070021417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3 +387FFFFEB5FCA36C13FC17417DB92C>I<007FB6FCB71280A46C150021067B7D2C>95 +D<1338137CEA01FC1203EA07F813F0EA0FC0EA1F80A2EA3F00123E127E127CA212FC5AA3 +EAFFC013E013F013F8A2127FA2123F13F0EA1FE0EA07C00E1D72B82C>I<3801FFF00007 +13FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE13 +1F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383F +E01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>II<903803 +FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A12 +7EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C +6C6C5B011F13E0010390C7FC21247AA32C>IIIIII<1307EB1FC0A2497EA3 +6D5AA20107C7FC90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14 +FC1F3479B32C>I<140EEC3F80A2EC7FC0A3EC3F80A2EC0E0091C7FCA748B512804814C0 +A37EC7120FB3B3A2141F003C1480007E133FB414005CEB01FEEBFFFC6C5B5C001F5B0007 +90C7FC1A467CB32C>II<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C15 +8022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07 +FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F +13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC90 +38F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5 +FCB500F11480A36C01E0140029247FA32C>II<397FF01FE039FFF8FFF801FB13FE +90B6FC6C158000019038F07FC09138801FE091380007F049EB03F85BED01FC491300A216 +FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280 +160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I<903903FC +078090391FFF0FC0017F13CF48B512EF4814FF3807FE07380FF00148487E49137F484813 +3F90C7FC48141F127E150F5AA87E007E141FA26C143F7F6C6C137F6D13FF380FF0033807 +FC0F6CB6FC6C14EF6C6C138F6D130FEB07F890C7FCAD0203B5FC4A1480A36E140029367D +A32C>II<9038 +7FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB00F0007F140013F038 +3FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00FE0078147F00FC143F +151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F8148039701FFC002024 +7AA32C>I<131E133FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC80 +0F011FEB1FC0ECE07F6DB51280160001035B6D13F89038003FE0232E7EAD2C>I<3A7FF0 +03FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15 +807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A +03E0000F80A26D131F00011500A26D5B0000143EA26D137E017C137CA2017E13FC013E5B +A2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A14 +7C27247EA32C>II<3A3FFF03FFF048 +018713F8A36C010313F03A00FC007E005D90387E01F8013F5BEB1F83EC87E090380FCFC0 +903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB0FC7EC +83E090381F01F0013F7FEB7E00017C137C49137E0001803A7FFF01FFFC1483B514FE6C15 +FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113FC3A03E0000F80 +6C7E151F6D140012005D6D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2 +EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E147CA214 +FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027 +367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495A +C7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01E0 +4848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15FF02071380141F +147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC6D7E6C7F +C67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F14070200130021417BB92C +>I<127812FCB3B3B3A9127806416DB92C>II +E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fh labx1440 14.4 69 +/Fh 69 256 df<151E153E15FCEC01F8EC03F0EC07E0140FEC1FC0EC3F80EC7F005C5C49 +5A1303495AA2495A131F5C133F5C137F5C13FFA24890C7FCA25A5B1207A25B120FA3485A +A4123FA25BA2127FA65B12FFB3A3127F7FA6123FA27FA2121FA46C7EA312077FA212037F +7EA26C7FA2137F80133F80131F80130F6D7EA26D7E13016D7E8080EC3F80EC1FC0EC0FE0 +1407EC03F0EC01F8EC00FC153E151E1F7974D933>40 D<12F07E127E7E6C7E6C7E7F6C7E +6C7E6C7E7F1200137F806D7EA26D7E80130F80130780130380A26D7EA215807F15C0A214 +7F15E0A3EC3FF0A415F8A2141FA215FCA6140F15FEB3A315FC141FA615F8A2143FA215F0 +A4EC7FE0A315C014FFA215805B1500A2495AA25C13075C130F5C131F5C495AA2495A91C7 +FC13FE12015B485A485A485A5B485A48C8FC127E12F85A1F7979D933>I44 D<913803FF80023F13F8 +49B6FC010715C04901017F903A3FFC007FF8D97FF0EB1FFC49486D7E48496D7E4A7F4817 +804890C76C13C0A248486E13E0A2001F17F0A3003F17F8A249157FA2007F17FCA600FF17 +FEB3A5007F17FCA6003F17F86D15FFA3001F17F0A3000F17E06D5C6C17C0A26C6D491380 +6C17006E5B6C6D495A6D6C495AD93FFCEB7FF8903A0FFF01FFE06D90B55A010192C7FCD9 +003F13F802031380374F7BCD42>48 D<151E153E15FE1403140F147FEB07FF0003B5FCB6 +FCA3EBF87FEAFC00C7FCB3B3B3A6007FB712FCA52E4E76CD42>II<913807FFC0027F13FC0103B67E010F15E090261FF80313F890267FC0 +007F01FEC7EA3FFE48488148486E138013FE486C6C6D13C0804817E080A66C5B18C06C5B +6C90C75AD80038168090C8FC4C1300A24C5A5F4C5A4B5B4B13C0030F5BDB7FFEC7FC9138 +7FFFF816C016FCEEFF80DA000313E09238007FF8EE3FFE707E70138018C07013E018F070 +13F8A218FC82A218FEA3EA03C0EA0FF0EA3FFC487EA2B5FCA218FCA25E18F8A26C4816F0 +495C4916E0D83FE04A13C06C485CD80FF04A1380D807FE91387FFE003B03FFE003FFFC6C +90B65A6C6C15E0010F92C7FC010114FCD9001F1380374F7BCD42>I<17FC1601A2160316 +07160FA2161F163F167FA216FF5D5DA25D5D5D167F153E157E15FC15F8EC01F01403EC07 +E015C0EC0F80141FEC3F00143E5C14FC495A5C495A1307495A5C49C7FC5B137E137C5B12 +01485A5B485A120F485A90C8FC123E127E5ABA1280A5C901FCC7FCAF021FB71280A5394F +7CCE42>I<486C150601F0153E01FEEC01FED9FFF0133F91B65A5F5F5F5F5F94C7FC16FC +5E16E093C8FC15FC01F0138091CAFCAC913807FF80023F13F891B512FE01F36E7E9026FF +FC0113E09139E0007FF891C76C7E496E7E01F86E7E5B7013804916C0C9FC18E08218F0A4 +18F8A31203EA0FE0EA3FF8487EA212FF7FA218F0A25B5E6C4816E05B01C016C06CC85A18 +806C6C4A13007FD80FF04A5A6C6CECFFFCD803FE4913F02701FFE00F5B6C6CB612806D92 +C7FC010F14F8010114C09026003FFCC8FC354F7ACD42>II<121F7F +7FEBFF8091B8FCA45A18FE18FC18F818F0A218E018C018804817000180C8123E007EC912 +7E5F007C4B5A4C5A5F16074C5A484B5A4CC7FC167E167CC912FC4B5A4B5AA24B5A150F4B +5AA24B5AA24BC8FC5DA25C5D1403A214075D140FA3141FA2143FA34A5AA414FFA65BAB6D +5B6E5A6E5A6E5A385279D042>I<913803FFC0023F13FC49B67E010715E090260FFC0013 +F8D93FE0EB1FFCD97F80EB07FE49C76C7E496E1380484880000317C049157F120718E017 +3F120FA27FA27F7F6E147F02E015C08002FC14FF6C01FF15806F481300EDE0036C9138F8 +07FE6F485A6C9138FF1FF06CEDFFE017806D4AC7FC7F010F6E7E6D81010115F06D810103 +15FE010F81D93FF71580D97FC115C02701FF807F14E048EB001F48486D14F04848010314 +F848481300496E13FC003F151F491407007F6F13FE491400177F00FF163F49151F170F17 +07A21703A218FCA27F127F6DED07F8A26C6CED0FF07F6C6CED1FE06C6CED3FC06C6CEDFF +806C01C0010313006C01FCEB3FFE6C6CB612F8011F15E001071580010002FCC7FC020F13 +C0374F7BCD42>I<913807FF80027F13F849B512FE01076E7E90261FFE0113E0903A7FF8 +003FF049486D7E48496D7E48496D7E484980486F138091C7FC486F13C05A18E0485A18F0 +A27013F812FFA318FCA618FEA35E127FA4003F5DA26C7E5E7E6C6D5B161E6C7F6C6D5B6C +6C6C13F890393FFC03F06DB55A01074A13FC01001400EC1FF891C8FCA218F85EA301FC16 +F0487E2607FF8015E05E486D15C0A24C1380A24C13005F4A131F6C4B5A49C7485A494A5A +6C48495B6D01075B2701FF803F90C7FC6C90B512FC013F5C6D14C0010791C8FC9038007F +F0374F7BCD42>I69 +D72 DI76 +D97 +D<913803FFE0023F13FE91B67E010315E0010F9038003FF8D93FFCEB07FC4948497E4948 +131F4849497E485B485BA24890C7FC5A5B003F6F5A705A705A007F92C8FC5BA312FFAD12 +7F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D143E6C6D147E6C6D5C6D6C495A6D +B4EB07F0010F9038C01FE06D90B5128001014AC7FCD9003F13F80203138031387CB63A> +99 D102 D<133FEBFFC0487F487FA2487FA66C5BA26C5B +6C5B013FC7FC90C8FCAEEB1FF8B5FCA512017EB3B3A6B612F0A51C547CD324>105 +D109 DI<913801FFC0023F13FE91B67E010315 +E0010F018013F8903A3FFC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F +4883488349153F001F83A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D +153FA2001F5FA26C6C4B5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB +1FFE6DB46CB45A010790B512F0010115C0D9003F49C8FC020313E039387CB642>II<903903FFC00E +011FEBFC1E90B6127E000315FE3907FE003FD80FF0130F4848130348481301491300127F +90C8127EA248153EA27FA27F01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E0 +6C816C15FC6C81C681133F010F15801301D9000F14C0EC003F030713E0150100F880167F +6C153FA2161F7EA217C07E6D143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486C +B512F0D8F81F14C0D8F00791C7FC39E0007FF02B387CB634>115 +D193 DI< +0038EC3FFF003C0107B512F8003F013FECFF806DB712E001E316F801F7D9C00713FED9FF +FCC77F02E0023F7F02806E13E091C87E01FC6F7F496F7F496F7F5B717F5BA249838490CA +FCA3123EA395B5FCCB5BA24D5BA24D5B614D5B4D5B4D5B4D48C7FCEFFFF8040713E0020F +B612804A02FCC8FC5FEFFF8091C7001F13F0040013FE94381FFF80050713E0717F717F71 +13FE727E841A807213C0A21AE0841AF0A312F8A57E007C19E0A2007E5F1AC06C5F1A806C +6C5E6D93B512006C6C4B5B6C6C4B5BD803FC4B5B6CB44B5B6C01E0027F13C06DB40103B5 +5A011F90B648C7FC010716F8010116C0D9003F4AC8FC0200148044547AD250>199 +DI202 D204 DI<93381FFF800303B512FC033FECFFC092B712F002 +07D9F80113FE021F903A80001FFF804A48C700077FDAFFF8020113F049496E7F4901C0ED +3FFC49496F7E4990C96C7E4948707F013F854948707F4948707F48864A8248864A177F48 +864849717EA3481B804A83481BC0A44890CB6C13E0A5B51AF0AF6C1BE06E5FA46C1BC0A2 +6E5F6C1B80A36C6D4D1300A26C6D4D5AA26C626C6D4C5B6E5E6C626D6C4C5B6E5E6D6D4B +5B6D6D4B5B6D6D4B90C7FC6D6D4B5A01016D4A13F86D01FE02075B91263FFFC0013F13C0 +6ED9F801B55A020790B648C8FC020116F8DA003F15C003074AC9FCDB001F1380545479D2 +63>II< +B912FCF0FFE019FE737E1AE0D8000F01E0C7003F7F060313FC06007F737E7313807313C0 +7313E0851BF0A21BF885A21BFCA91BF8A3611BF0A21BE04F13C0614F13804F13004F5A06 +0713F8063F5B92B812C097C7FC19F8198003E0CBFCB3AEB712FEA54E527CD15A>I<9326 +03FFF01407047F01FF140F0307B600E0131F033F03F8133F92B700FE137F02039126C003 +FF13FF020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC4901FC814949814901E082 +011F498249498292CA7E4948834948835A4A83485B4885A24849187FA2485B1B3FA2485B +1B1FA25AA21B0091CDFCA2B5FCAE7EA280A36C1A1FA36C7FA21B3F6C7F1B3E6C7F1B7E6C +6D187C6C1AFC6E18F86C19016D6CEF03F06D7E6FEE07E06D6DEE0FC001076DEE1F806D01 +F8EE3F006D6D16FE6D01FF4B5A023F01C0EC07F8020F01FCEC3FF00203903AFFC001FFC0 +020091B6C7FC033F15FC030715F0DB007F1480040301F0C8FC505479D25F>I<003FBB12 +FEA59126C0007FEB000101FCC7ED001FD87FF0F007FF49844984498490C883A2007E86A3 +007C86A500FC1B80481A0FA6C994C7FCB3B3AD49B912C0A551527BD15C>II<92B812FCA592C701FCCAFCA74BB612FE +92B812FC020FEFFFC0027F18F849B500E0D9FC1F13FE010FD9FC000200EBFFC04901E004 +1F7F017F0180040713F84948C703017F4849717F4849727E484972138048497213C0A248 +497213E0A248497213F0A2481CF8A291C882A2B51BFCAB6C1CF8A26E60A26C1CF0A26C6D +4E13E0A26C6D4E13C0A26C6D4E13806C6D4E13006C6D4E5A6C6D4D5B6D6C6C04075B011F +01E0041F13E06D01FC93B55A0101D9FFE0021F49C7FC6D6C90B812F8020F18C0020005FC +C8FC03014BC9FC92C701FCCAFCAA92B812FCA55E5279D16D>I224 D<18FC170F17FF163F030FB5 +FC4AB6FC021F5D91B7FC01035E130F495E49168090B8C7FC17F04803E0C8FC4802C0C9FC +4801F8CAFC14E048138049CBFC5B485A5B5B123F5B5BA23A7F0001FFC0023F13FE91B67E +D87E0315E0010F018013F8903A3FFC001FFE267C7FF0EB07FF49486D7F00FD496D7FB548 +6D7F91C8127F848449153F84A28449151FA284A41980AC007F1800A3003F5F6D153FA200 +1F5FA26C6C4B5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB4 +6CB45A010790B512F0010115C0D9003F49C8FC020313E039547CD242>II +I<91B912F8A4DA00FCC7EBF8005DAE5DA21401A55D1403A35D1407A34A5AA24AC8FCA25C +143E5CA25C1301495A495A495AEB3F8049C9FC003FBA12FCA491CAFC01F8171FD87FE0EF +07FE49170349170190CCFC1A7E127EA2007C193EA400FC193F48191FA5484880B449>I< +913807FF80027F13F849B512FE01076E7E011F010313E0903A3FFC007FF0D97FF06D7E49 +486D7E4849130F48496D7E48824890C77E1880485A82003F17C0A3485A18E082A212FFA2 +90B8FCA401FCCAFCA6127FA37F123FA2EF03E06C7E17076C17C06C6D140F18806C6D141F +6C6DEC3F006C6D147ED97FFC495AD91FFFEB07F86D9038E03FF0010390B512C001005D02 +3F01FCC7FC020113E033387CB63C>I<001FB50103B600E090387FFFFCA426007FFCD900 +0301E0C7001F90C7FCD90FF8F10FF8D903FCF11FE06D6C4F5A6D6C4F5ADA7FC04D48C8FC +DA1FE0EF03FC6E6C4D5ADA07FCEF1FF0DA01FEEF3FC06E6C4D5ADB7F804CC9FCDB1FE0ED +03FCDB0FF04B5ADB07F84B5ADB03FEED3FE004FF157F4B01834A7E4B01E301E37F4B01F3 +01E77F4B01FB01EF7F94B7FC4B834B486C023F7F4A496C496C7F4AD9F80FD9F80F7F4C6C +497E4A6E01E0804A01E06F7F4A01C06F7F4A01806F7F0400167F4A854A48717F4949717F +4949717F4949717FA24949717F4949717F4949717F4990C7717EA24948737F00036D4F13 +E0B6D8E003B6D8E003B61280A469357EB46E>I<0070EBFFFED87C0FEBFFF0D87E3F14FE +007FB77EDA801F13E09026F800037F4901007F01C06E7E5B707E90C8FC007E6F7EA3127C +A2C9FC4C5AA24C5A5F4B485A4B13C0030F5B49B500FCC7FC4914F0A216FE90C7381FFFC0 +03037F030013F8707E707E707EA2701380A218C0A412F8A36C1780007C5D007E17005E6C +4B5A6C6C4A5A01E001035BD80FFE011F5B0003B712C0C693C7FC013F14F8010391C8FC32 +387DB63A>II<023E141FDAFF80EB7FC0496D497E496D487FA2496D487FA54B7E +6D5E4B7E6D496D5AA26D90B65A023F92C8FC6E5C020714F8020114E09126001FFEC9FC92 +CBFCA4B6D8F807B612C0A4C601F8C70007EBC000A25F5FA25F5FA294B5FCEE01F7A2EE03 +E7EE07C7A2EE0F87EE1F07163F163E167C16FC16F8ED01F0150316E0ED07C0150F1680ED +1F005D153E5D5DA2ECF9F0ECFBE0A2ECFFC05DA292C7FC5CA25C5CA2B6D8F807B612C0A4 +424E7DCD49>II<0103B9 +12E0A490280003F00003EBE0005DB3A914075DA4EA0F80EA1FC0383FE00FEA7FF0D8FFF8 +5BA2141FA292C7FC5CEBF07E387FE0FED9FFFC0103B612E06C5B6C5B6C5B0003018090CA +FCD80030CCFC43377EB449>III<913801FFC0023F13FE91B67E010315E0010F018013F8903A3F +FC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F4883488349153F001F83 +A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B +5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790 +B512F0010115C0D9003F49C8FC020313E039387CB642>III<913803FFE0023F13FE91B67E010315E0010F903800 +3FF8D93FFCEB07FC4948497E4948131F4849497E485B485BA24890C7FC5A5B003F6F5A70 +5A705A007F92C8FC5BA312FFAD127F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D +143E6C6D147E6C6D5C6D6C495A6DB4EB07F0010F9038C01FE06D90B5128001014AC7FCD9 +003F13F80203138031387CB63A>I<007FB812FCA4D9F807EBC03F01C015070180150301 +001501007E1600A2007C177C00FC177EA348173EA7C71600B3AA017FB612FCA437357DB4 +3E>IIIIIIII251 DI<4AB712FE147F0103B8FC +130F013F903AC0003FFE004948C7FCEBFFF8485B5A5C5AA67E807E807EEB7FFE90381FFF +C0010790B6FC1301EB001F1401EEFC3F4A13F85C4A13F016E04A13C05C4A1380160091B5 +FC495B495B5D5B495B495BA2495B495B90B5C7FC5A1207B6D8F83FB512FEA43F357EB445 +>255 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi larm1000 10 86 +/Fi 86 256 df<486C1360000314E039070001C0000EEB038048EB070000181306003813 +0E0030130C0070131C00601318A200E01338481330A400CEEB338039FF803FE001C013F0 +A3007F131FA2393F800FE0390E0003801C1981B91C>16 D<001C1307007FEB1FC039FF80 +3FE0A201C013F0A3007F131F001CEB073000001300A400011470491360A2000314E090C7 +12C048130100061480000E130348EB070048130E485B006013181C1980B91C>I21 D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA2 +12075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F +1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40 +D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7F +A21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A2 +5BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I<121C127FEAFF80A213C0 +A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A19798817>44 +DI<121C127FEAFF80A5EA7F00121C0909798817>I<1506A2150E +150CA2151C151815381530A215701560A215E015C0A214011580A2140315005C1406A214 +0E140CA2141C1418A214381430A21470146014E05CA213015CA2130391C7FCA25B1306A2 +130E130C131C1318A213381330A213701360A213E05BA212015B120390C8FCA25A1206A2 +120E120CA2121C1218A21238123012701260A212E05AA21F537BBD2A>I49 +DII<1538A2157815F8A214011403 +1407A2140F141F141B14331473146314C313011483EB030313071306130C131C13181330 +1370136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3C73803F800AA +4A7E0103B512F8A325387EB72A>I<0006140CD80780133C9038F003F890B5FC5D5D1580 +92C7FC14FC38067FE090C9FCAAEB07F8EB1FFE9038780F809038E007E03907C003F0496C +7E130000066D7E81C8FC8181A21680A4121C127F5A7FA390C713005D12FC00605C12704A +5A6C5C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1FE021397CB62A +>II57 +D<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C092479A317> +I68 +DI71 DI76 DII85 +D<007FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C +5C6D6C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A +91380FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8 +150F91380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E49486D7E13 +0391C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF80010713E0B500E0 +013FEBFF80A339397EB83E>88 D97 D99 DII<147E903803FF80 +90380FC1E0EB1F8790383F0FF0137EA213FCA23901F803C091C7FCADB512FCA3D801F8C7 +FCB3AB487E387FFFF8A31C3B7FBA19>II105 D108 D<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903B +F1C01F83803F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3 +495CB3A3486C496CEB1FE0B500C1B50083B5FCA340257EA445>I111 +D<3903F01FE000FFEB7FF89038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB +03F04914F849130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB +0FE001F614C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328 +357EA42E>II<3807E01F00FFEB7FC09038E1E3E09038E387F0380FE707EA03E613EE +9038EC03E09038FC0080491300A45BB3A2487EB512F0A31C257EA421>II<1318A51338A31378A313 +F8120112031207001FB5FCB6FCA2D801F8C7FCB215C0A93800FC011580EB7C03017E1300 +6D5AEB0FFEEB01F81A347FB220>II120 DI194 D<0103B812F8A3903C0003C0000FFC006E486D5AAD92 +C7FC5CA81406A55CA45CA35CA35CA25CA2495A130391C8FC1306130E5B5B137801F84B7E +003FB912FCA301E0C9120790CBFC007C183E0078181EA20070180EA200601806A400E018 +07481803A4404980B841>196 DI<0060EBFFC0D8700F13F8D8783F13FE3A7C7F00FF80D87FF0EB3FC001C06D7E +496D7E90C76C7E007E81007C6E7E12781501007081A41260A3C85B15035E15075E4B5A4B +5AED3F8003FEC7FC903807FFF85B90380001FF9138003FC0ED0FF06F7E6F7E6F7E6F7E17 +80EE7FC0A2EE3FE0A212C0A57E0060ED7FC0A2007016806C15FF4B13006C5D6C4A5A6C6C +EB0FF8D803E0495AD801FEEBFFC0D8007FB5C7FC011F13FC010113C02B3D7CBA33>199 +D202 D205 DII<913A01FF800180020FEBE003027F13F8903A01FF807E07 +903A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE153F12014848 +151F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6DED01 +80A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D6C5C +D91FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F13F0020113 +80313D7BBA3C>209 D<49B612E0A3D9000101E0C8FC9138007F80A491381FFFFE0103B6 +12F0903A1FFC7F8FFED97FC0903880FF802601FF00EC3FE0D803FCED0FF048486F7E4848 +6F7E48486F7EA248486F7EA2007F188049167FA200FF18C0A9007F1880A26D16FF003F18 +00A26C6C4B5AA26C6C4B5A6C6C4B5A6C6C4B5A6CB4ED3FE026007FC0ECFF80D91FFCD98F +FEC7FC0103B612F0D9001F49C8FC9138007F80A6913801FFE049B612E0A33A397BB845> +212 D224 D<16C01507153FEC07FF027F13800103B51200010F13FC013F +13F0D9FFFEC7FC4813C0D803FCC8FCEA07F0EA0FC05B48C9FC121E5AA212381278387003 +FE90380FFF8090383E03E03960F800F8D861F0137CD8E3E07FD8E7C07FD8EF80EB0F8000 +DF15C090C71207B415E0A248EC03F0A416F8A9007E15F0A2007F14076C15E0A26C6CEB0F +C0000F15806D131F6C6CEB3F006C6C137EC66C13F890387E03F090381FFFC0D903FEC7FC +253B7EB92A>III<013FB612E0A2903A01E003FC006D486C +5AAC14801301A5EB0300A31306A35B131C13185B13F0485A00074A7E007FB712F0A290C8 +1207007C15010070ED0070A20060163000E01638A3481618A52D3180A32E>II< +D83FFF90B538C03FFFA2D807FE903A07F8001FF8D801FC6D48EB0FE0D8007C1780011E04 +1EC7FC6D5ED907805DD901C015E0D900E04A5A02704A5A023C020FC8FC020E141C020F14 +3CDA1F83137E91393FE3F1FFEDF3F3913A7F3BF73F80913AFE1FFE1FC049486C486C7EED +03F0D903F86E7ED907F06E7ED90FE06E7EA2D91FC06E7ED93F80157FD97F006F7E017E16 +1F01FE834848707E000384000784000F4A6C80B590B539C03FFFC0A242247FA345>I<38 +C07FF000E3B5FC39FF803FC039FC000FE048EB03F04814F848130115FC5AA2C7FCA215F8 +EC03F0EC07E0EC0FC0EC3F00EB7FF8809038003F80EC0FE0EC03F0EC01F815FC140015FE +A312C0A315FC6C1301006014F80070EB03F0003CEB0FE0000FEB3FC00003B51200C613F0 +1F277EA525>II<011E133C017F137F6E5A01FF80A46D48 +6CC7FC013E133E90381FFFFC010713F00100138091C9FCA4B500C1B51280A23B07F8000F +F0006C486D5AA4150F151F153F157715E715C71401EC0387EC0707140E140C1418143814 +7014E0EBF1C0148013F3EBF70013FE5B5B5BA4486C497EB500C1B51280A229347EB32E> +II<90B712C0A2903A03C0 +07F8006D486C5AAF13031400A65B13061238127C12FE130E130C131CD8F818497ED87038 +90B512C0EA3FF0D81FC090C8FC2A257FA32E>IIIII<3903F01F +E000FFEB7FF89038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB03F04914F8 +49130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB0FE001F614 +C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328357EA42E> +II<00 +7FB612E0A2397E03FC07397801F8010070140000601560A200E01570A200C01530A50000 +1500B3EB07FE0003B512FCA224247EA329>I +I<153FEC0FFFA31400153FB0D903F8EB07F0D90FFEEB1FFC903B7F07BF783F80903BFC01 +FFE00FC048486C496C7ED807F090397F8003F848486F7E496DC7FC001F834848167FA248 +C7ED3F80A300FEEF1FC0AA007FEF3F80A36C6CEE7F00A26C6C16FE000F5F6D90387F8001 +6C6C496C485AD801F8ED07E06C6C486D485A903B7F07BF783F8090280FFE3F1FFCC7FCD9 +03F8EB07F090C790C9FCAB4B7E91380FFFFCA33A4A7DB941>IIIIII<007FB5FCA2387E03FC387801F812701260A212E0A212C0A5120091B512E0 +16FC9138F800FFEE3F80EE1FC0EE0FE0EE07F0A2EE03F8A5EE07F0A2EE0FE0EE1FC0EE3F +80496CEBFF00017FB512FC16E02D247EA333>IIIII<49B61280131F903A7F00 +0FF00001FC6D5A485A485A1207A512037F1201EA00FEEB3F80010FB5FC1300ECFE0714FC +EB01F8EB03F0130714E0EB0FC0EB1F80133FEB7F00137E13FE485A485A1207001F4A7EB5 +48B51280A229247FA32D>I E +%EndDVIPSBitmapFont +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%PaperSize: A4 + end +%%EndSetup +%%Page: 1 1 +TeXDict begin 1 0 bop 1234 -45 a Fi +(\321\357\360\340\342\356\367\355\340\377)26 b(\352)n(\340\360\362)n +(\340)h(\357\356)g(GNU)i(Emacs)1583 55 y(\(\344\353\377)g +(\342\345\360\361\350\350)e(21\))-128 330 y Fh(1)132 +b(\307\340\357\363)l(\361\352)45 b(Emacs)-128 511 y Fi(\304\353\377)28 +b(\347\340\357\363)n(\361\352)n(\340)e(GNU)i(Emacs)f(21,)g +(\357\360\356\361\362\356)g(\355\340\341\345\360\350\362\345)h +(\350\354\377)g(\357\360\356\343\360\340\354\354\373:)f +Fg(emacs)-128 611 y Fi(\316)h(\362\356\354,)g(\352)n(\340\352)f +(\356\362\352\360\373\342\340\362\374)g(\364\340\351\353\373,)g +(\367\350\362)n(\340\351\362\345)h(\344\340\353\345\345)f(\342)g +(\360\340\347\344\345\353\345)g(\324\340\351\353\373.)-128 +886 y Fh(2)132 b(\302\373\365)l(\356)l(\344)45 b(\350\347)f(Emacs)-78 +1065 y Fi(\317\360\350\356\361\362)n(\340\355\356\342\350\362\374)26 +b(\360\340\341\356\362\363)h(Emacs)g(\(\350\353\350)h +(\361\342\345\360\355\363\362\374)f(\342)g(\350\352)n(\356\355\352\363) +h(\357\360\350)g(\360\340\341\356\362\345)e(\342)h(X\))255 +b Fg(C-z)-78 1165 y Fi(\302\373\351\362\350)28 b(\350\347)g(Emacs)2307 +b Fg(C-x)42 b(C-c)-128 1410 y Fh(3)132 b(\324\340\351\353\373)-78 +1570 y Ff(\356\362\352\360\373\362\374)28 b Fi(\364\340\351\353)f(\342) +g(\341\363\364\345\360\345)f(Emacs)1717 b Fg(C-x)42 b(C-f)-78 +1670 y Ff(\361\356)m(\365\360\340\355\350\362\374)29 +b Fi(\364\340\351\353)e(\356\341\360\340\362\355\356)g(\355\340)g +(\344\350\361\352)1627 b Fg(C-x)42 b(C-s)-78 1770 y Fi(\361\356)n +(\365\360\340\355\350\362\374)27 b Ff(\342\361\345)g +Fi(\364\340\351\353\373)2104 b Fg(C-x)42 b(s)-78 1869 +y Ff(\342\361\362)m(\340\342\350\362\374)29 b Fi(\361\356)n +(\344\345\360)n(\346\350\354\356\345)d(\344\360\363\343\356\343\356)h +(\364\340\351\353\340)f(\342)h(\362\345\352\363\371\350\351)h +(\341\363\364\345\360)809 b Fg(C-x)42 b(i)-78 1969 y +Fi(\356\362\352\360\373\362\374)28 b(\355\363\346\355\373\351)g +(\342\340\354)f(\364\340\351\353)g(\342\354\345\361\362\356)g +(\362\345\352\363\371\345\343\356)1226 b Fg(C-x)42 b(C-v)-78 +2068 y Fi(\361\356)n(\365\360\340\355\350\362\374)27 +b(\341\363\364\345\360)f(\342)h(\363\352)n +(\340\347\340\355\355\356\354)g(\364\340\351\353\345)1534 +b Fg(C-x)42 b(C-w)-78 2168 y Fi +(\302\352\353\376\367\350\362\374/\342\373\352\353\376\367\350\362\374) +28 b(\361\356\361\362\356)n(\377\355\350\345)f +(\341\363\364\345\360\340)f(\020\362\356\353\374\352)n(\356)g +(\344\353\377)i(\367\362\345\355\350\377\021)581 b Fg(C-x)42 +b(C-q)-128 2413 y Fh(4)132 b(\317\356\353\363\367\345\355\350\345)43 +b(\357\356\354\356\371\350)-128 2595 y Fi +(\321\357\360\340\342\356\367\355\340\377)19 b +(\361\350\361\362\345\354\340)i(\344\356\361\362)n +(\340\362\356\367\355\356)e(\357\360\356\361\362)n(\340.)h +(H\340\346\354\350\362\345)i Fg(C-h)d Fi(\(\350\353\350)i +Fg(F1)p Fi(\))f(\350)h(\361\353\345\344\363\351\362\345)g +(\350\355\361\362\360\363\352\366\350\377\354.)g(\305\361\353\350)h +(\342\373)d(\342)i(\357\345\360\342\373\351)-128 2695 +y(\360\340\347)28 b(\360\340\341\356\362)n(\340\345\362\345)e(\361)h +(Emacs,)h(\355\340\341\345\360\350\362\345)f Fg(C-u)43 +b(C-h)f(t)h(Russian)e(RET)26 b Fi(\344\353\377)i +(\342\373\347\356\342\340)d Ff(\363\367\345\341\355\350\352)m(\340)p +Fi(.)-78 2789 y(\307\340\352\360\373\362\374)i(\356\352\355\356)g +(\361\357\360\340\342\352\350)2072 b Fg(C-x)42 b(1)-78 +2889 y Fi(\317\360\356\352\360\363\362\350\362\374)28 +b(\356\352\355\356)f(\361\357\360\340\342\352\350)1940 +b Fg(C-M-v)-78 2988 y Fi(aprop)r(os:)26 b(\357\356\352)n +(\340\347\340\362\374)g(\352)n(\356\354\340\355\344\373,)h +(\361\356\356\362\342\345\362\361\362\342\363\376\371\350\345)g +(\361\362\360\356\352)n(\345)921 b Fg(C-h)42 b(a)-78 +3088 y Fi(\357\356\352)n(\340\347\340\362\374)26 b(\350\354\377)i +(\364\363\355\352\366\350\350,)g(\352)n(\356\362\356\360\340\377)f +(\347\340\357\363)n(\361\352)n(\340\345\362\361)n(\377)e +(\352\353\340\342\350\370\345\351)835 b Fg(C-h)42 b(c)-78 +3187 y Fi(\356\357\350\361\340\362\374)27 b +(\364\363\355\352\366\350\376)2257 b Fg(C-h)42 b(f)-78 +3287 y Fi(\357\356\353\363\367\350\362\374)28 b +(\350\355\364\356\360\354\340\366\350\376)f(\356)g +(\360\345\346\350\354\345)1672 b Fg(C-h)42 b(m)-128 3533 +y Fh(5)132 b(\310\361\357\360\340\342\353\345\355\350\345)43 +b(\356\370\350\341\356\352)-78 3717 y Ff +(\357\360\345\360\342\340\362\374)28 b Fi +(\367\340\361\362\350\367\355\356)f +(\355\340\341\360\340\355\355\363\376)g(\350\353\350)h +(\350\361\357\356\353\355\377\345\354\363\376)g(\352)n +(\356\354\340\355\344\363)682 b Fg(C-g)-78 3816 y Ff +(\342\356\361\361\362)m(\340\355\356\342\350\362\374)29 +b Fi(\364\340\351\353,)e(\357\356\362\345\360)n(\377\355\355\373\351)g +(\357\360\350)h(\352\360\340\365)n(\345)f(\361\350\361\362\345\354\373) +895 b Fg(M-x)2857 3916 y(recover-file)-78 4016 y Ff +(\356\362\354\345\355\350\362\374)27 b Fi(\355\345\346)n +(\345\353\340\362\345\353\374\355\373\345)g +(\350\347\354\345\355\345\355\350\377)1502 b Fg(C-x)42 +b(u)h Fi(\350\353\350)h Fg(C-_)-78 4115 y Fi(\342\356\361\361\362)n +(\340\355\356\342\350\362\374)26 b(\341\363\364\345\360)g(\342)h +(\357\345\360\342\356\355\340)n(\367\340\353\374\355\356\345)e +(\361\356\361\362\356)n(\377\355\350\345)1086 b Fg(M-x)2857 +4215 y(revert-buffer)-78 4315 y Fi +(\357\345\360\345\360\350\361\356\342\340\362\374)27 +b(\347\340\357\356\353\355\345\355\355\373\351)g(\354\363)n +(\361\356\360\356\354)f(\375\352\360\340\355)1321 b Fg(C-l)-128 +4560 y Fh(6)132 b(H\340\360\340\371\350\342\340\345\354\373\351)41 +b(\357\356\350\361\352)-78 4743 y Fi(\357\356\350\361\352)28 +b(\342\357\345\360\345\344)2436 b Fg(C-s)-78 4843 y Fi +(\357\356\350\361\352)28 b(\355\340\347\340\344)2477 +b Fg(C-r)-78 4943 y Fi(\357\356\350\361\352)28 b(\357\356)f +(\360\345\343\363)-5 b(\353\377\360\355\356\354\363)28 +b(\342\373\360\340\346)n(\345\355\350\376)1616 b Fg(C-M-s)-78 +5042 y Fi(\357\356\350\361\352)28 b(\357\356)f(\360\345\343\363)-5 +b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n +(\345\355\350\376)f(\355\340\347\340\344)1376 b Fg(C-M-r)-78 +5142 y Fi(\342\373\341\360\340\362\374)26 b +(\357\360\345\344\373\344\363\371\363\376)i(\361\362\360\356\352\363)g +(\357\356\350\361\352)n(\340)1527 b Fg(M-p)-78 5241 y +Fi(\342\373\341\360\340\362\374)26 b +(\361\353\345\344\363\376\371\363\376)i(\361\362\360\356\352\363)g +(\357\356\350\361\352)n(\340)1580 b Fg(M-n)-78 5341 y +Fi(\357\360\345\352\360\340\362\350\362\374)28 b +(\355\340\360\340\371\350\342\340\345\354\373\351)f +(\357\356\350\361\352)1659 b Fg(RET)-78 5441 y Fi +(\356\362\354\345\355\350\362\374)28 b(\375\364\364\345\352\362)g +(\342\342\356)n(\344\340)d(\357\356\361\353\345\344\355\345\343\356)i +(\361\350\354\342\356\353\340)1248 b Fg(DEL)-78 5540 +y Fi(\357\360\345\360\342\340\362\374)27 b +(\362\345\352\363\371\350\351)h(\357\356\350\361\352)1994 +b Fg(C-g)-128 5636 y Fi(\304\353\377)26 b(\357\356\342\362\356\360\340) +f(\357\356\350\361\352)n(\340)f(\342)i(\353\376\341\356\354)f +(\355\340\357\360\340\342\353\345\355\350\350)h +(\350\361\357\356\353\374\347\363\351\362\345)f +(\352\353\340\342\350\370\350)g Fg(C-s)g Fi(\350\353\350)h +Fg(C-r)p Fi(.)f(\305\361\353\350)h(Emacs)g(\342\361\345)f(\345\371\345) +h(\357\360\356\350\347-)-128 5736 y(\342\356)n(\344\350\362)i +(\357\356\350\361\352,)f Fg(C-g)f Fi(\356\362\354\345\355\350\362)j +(\362\356\353\374\352)n(\356)e(\355\345\361)n +(\344\345\353\340\355\355\363\376)g(\367\340\361\362\374.)1860 +6192 y(1)p eop end +%%Page: 2 2 +TeXDict begin 2 1 bop -128 -45 a Fh(7)132 b +(\317\345\360\345\354\345\371\345\355\350\345)-78 139 +y Ff(\345\344\350\355\350\366\373)32 b +(\357\345\360\345\354\345\371\345\355\350\377)1944 b +(\355\340\347\340\344)450 b(\342\357\345\360\345\344)-78 +239 y Fi(\361\350\354\342\356\353)2667 b Fg(C-b)558 b(C-f)-78 +338 y Fi(\361\353\356\342\356)2726 b Fg(M-b)558 b(M-f)-78 +438 y Fi(\361\362\360\356\352)n(\340)2683 b Fg(C-p)558 +b(C-n)-78 537 y Fi(\355\340)n(\367\340\353\356)26 b(\(\350\353\350)j +(\352)n(\356\355\345\366\))e(\361\362\360\356\352\350)1916 +b Fg(C-a)558 b(C-e)-78 637 y Fi(\357\360\345\344\353\356)n(\346)n +(\345\355\350\345)2441 b Fg(M-a)558 b(M-e)-78 737 y Fi +(\340\341\347\340\366)2726 b Fg(M-{)558 b(M-})-78 836 +y Fi(\361\362\360\340\355\350\366\340)2589 b Fg(C-x)42 +b([)472 b(C-x)42 b(])-78 936 y Fi(\342\373\360\340\346)n +(\345\355\350\345)27 b(\(sexp\))2261 b Fg(C-M-b)470 b(C-M-f)-78 +1036 y Fi(\364\363\355\352\366\350\377)2597 b Fg(C-M-a)470 +b(C-M-e)-78 1135 y Fi(\357\345\360\345\365)n(\356)n(\344)27 +b(\342)g(\355\340)n(\367\340\353\356)f(\(\350\353\350)i(\352)n +(\356\355\345\366\))g(\341\363\364\345\360\340)1508 b +Fg(M-<)558 b(M->)-78 1243 y Fi(\357\360\356\352\360\363\362\352)n(\340) +27 b(\375\352\360\340\355\340)g(\342\355\350\347)2054 +b Fg(C-v)-78 1343 y Fi(\357\360\356\352\360\363\362\352)n(\340)27 +b(\375\352\360\340\355\340)g(\342\342\345\360)n(\365)2016 +b Fg(M-v)-78 1442 y Fi(\357\360\356\352\360\363\362\352)n(\340)27 +b(\342\353\345\342\356)2302 b Fg(C-x)42 b(<)-78 1542 +y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b +(\342\357\360\340\342\356)2251 b Fg(C-x)42 b(>)-78 1642 +y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b +(\362\345\352\363\371\345\351)h(\361\362\360\356\352\350)g(\342)f +(\366\345\355\362\360)i(\375\352\360\340\355\340)1306 +b Fg(C-u)42 b(C-l)-128 1887 y Fh(8)132 b(\323\355\350\367\362\356)l +(\346)l(\345\355\350\345)44 b(\350)g(\363)-7 b +(\344\340\353\345\355\350\345)-78 2070 y Ff(\363\355\350\367\362\356)m +(\346)m(\340\345\354\373\351)33 b(\356\341\372\345\352\362)1956 +b(\355\340\347\340\344)450 b(\342\357\345\360\345\344)-78 +2170 y Fi(\361\350\354\342\356\353)27 b(\(\363)-5 b +(\344\340\353\345\355\350\345,)28 b(\340)f(\355\345)h +(\363\355\350\367\362\356)n(\346)n(\345\355\350\345\))1510 +b Fg(DEL)558 b(C-d)-78 2270 y Fi(\361\353\356\342\356)2726 +b Fg(M-DEL)470 b(M-d)-78 2369 y Fi(\361\362\360\356\352)n(\340)27 +b(\(\344\356)h(\352)n(\356\355\366\340)e(\361\362\360\356\352\350\)) +1972 b Fg(M-0)42 b(C-k)384 b(C-k)-78 2469 y Fi +(\357\360\345\344\353\356)n(\346)n(\345\355\350\345)2441 +b Fg(C-x)42 b(DEL)384 b(M-k)-78 2569 y Fi(\342\373\360\340\346)n +(\345\355\350\345)2512 b Fg(M\025)42 b(C-M-k)340 b(C-M-k)-78 +2676 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28 +b Ff(\356\341\353\340\361\362\374)2116 b Fg(C-w)-78 2776 +y Fi(\361\352)n(\356\357\350\360\356\342\340\362\374)26 +b(\356\341\353\340\361\362\374)g(\342)h(\361\357\350\361\356\352)h +(\363\355\350\367\362\356)n(\346)n(\345\355\350\351)1265 +b Fg(M-w)-78 2876 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28 +b(\344\356)f(\361\353\345\344\363\376\371\345\343\356)g(\342\365)n +(\356)n(\346\344\345\355\350\377)f(\361\350\354\342\356\353\340)h +Fe(char)916 b Fg(M-z)42 b Fe(char)-78 2975 y Fi(\342\361\362)n +(\340\342\350\362\374)27 b(\357\356\361\353\345\344\355\350\351)g +(\363\355\350\367\362\356)n(\346)n(\345\355\355\373\351)h +(\356\341\372\345\352\362)1306 b Fg(C-y)-78 3075 y Fi +(\347\340\354\345\355\350\362\374)24 b(\362\356\353\374\352)n(\356)e +(\367\362\356)i(\342\356\361\361\362)n +(\340\355\356\342\353\345\355\355\373\351)d(\362\345\352)n(\361\362)k +(\357\360\345\344\370\345\361\362\342\363\376\371\350\354)f +(\363\355\350\367\362\356)n(\346)n(\345\355-)-78 3175 +y(\355\373\354)k(\362\345\352)n(\361\362\356\354)2857 +3075 y(M-y)-128 3420 y Fh(9)132 b(\317\356\354\345\362\352)l(\340)-78 +3580 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26 +b(\357\356\354\345\362\352\350)2177 b Fg(C-@)42 b Fi(or)g +Fg(C-SPC)-78 3680 y Fi(\356\341\354\345\355\377\362\374)27 +b(\354\345\361\362)n(\340\354\350)h(\352\363\360\361\356\360)f(\350)h +(\357\356\354\345\362\352\363)1546 b Fg(C-x)42 b(C-x)-78 +3779 y Fi(\357\356\354\345\362\350\362\374)28 b Fe(ar)l(g)36 +b Ff(\361\353\356\342)2219 b Fg(M-@)-78 3879 y Fi +(\357\356\354\345\362\350\362\374)28 b Ff +(\357\340\360\340\343\360\340\364)2144 b Fg(M-h)-78 3979 +y Fi(\357\356\354\345\362\350\362\374)28 b Ff +(\361\362\360\340\355\350\366\363)2162 b Fg(C-x)42 b(C-p)-78 +4078 y Fi(\357\356\354\345\362\350\362\374)28 b Ff +(\342\373\360\340\346)m(\345\355\350\345)2071 b Fg(C-M-@)-78 +4178 y Fi(\357\356\354\345\362\350\362\374)28 b Ff +(\364\363\355\352\366\350\376)2148 b Fg(C-M-h)-78 4277 +y Fi(\357\356\354\345\362\350\362\374)28 b(\342\345\361\374)f +Ff(\341\363\364\345\360)2102 b Fg(C-x)42 b(h)-128 4523 +y Fh(10)131 b(\307\340\354\345\355\340)44 b(\361)g +(\347\340\357\360\356\361\356\354)-78 4706 y Fi +(\350\355\362\345\360\340\352\362\350\342\355\340\377)28 +b(\347\340\354\345\355\340)f(\362\345\352)n(\361\362\356\342\356\351)g +(\361\362\360\356\352\350)1398 b Fg(M-\045)-78 4806 y +Fi(\361)28 b(\350\361\357\356\353\374\347\356\342\340\355\350\345\354)e +(\360\345\343\363)-5 b(\353\377\360\355\373\365)27 b +(\342\373\360\340\346)n(\345\355\350\351)1333 b Fg(M-x)42 +b(query-replace-r)o(ege)o(xp)-128 4901 y Fi(\302)28 b +(\360\345\346\350\354\345)g +(\350\355\362\345\360\340\352\362\350\342\355\356\351)g +(\347\340\354\345\355\373)f +(\357\356\353\374\347\356\342\340\362\345\353\376)f +(\344\356\361\362\363\357\355\373)i +(\361\353\345\344\363\376\371\350\345)g(\356\362\342\345\362\373:)-78 +4995 y Ff(\347\340\354\345\355\350\362\374)g Fi +(\344\340\355\355\356\345)f +(\361\356\356\362\342\345\362\361\362\342\350\345,)g +(\357\345\360\345\351\362\350)h(\352)g +(\361\353\345\344\363\376\371\345\354\363)815 b Fg(SPC)-78 +5095 y Fi(\347\340\354\345\355\350\362\374)28 b(\375\362\356)f +(\361\356\356\362\342\345\362\361\362\342\350\345,)g(\355\345)h +(\357\345\360\345\354\345\371\340\362\374\361)n(\377)1238 +b Fg(,)-78 5194 y Ff(\357\360\356\357\363)m(\361\362\350\362\374)29 +b Fi(\361\356\356\362\342\345\362\361\362\342\350\345)e(\341\345\347)g +(\347\340\354\345\355\373)1487 b Fg(DEL)-78 5294 y Fi +(\347\340\354\345\355\350\362\374)28 b(\342\361\345)f(\356\361\362)n +(\340\342\370\350\345\361)n(\377)e +(\361\356\356\362\342\345\362\361\362\342\350\377)1468 +b Fg(!)-78 5393 y Ff(\342\345\360\355\363\362\374\361)m(\377)29 +b Fi(\352)f(\357\360\345\344\373\344\363\371\345\354\363)f +(\361\356\356\362\342\345\362\361\362\342\350\376)1337 +b Fg(\002)-78 5493 y Ff(\342\373\351\362\350)28 b Fi(\350\347)g +(\360\345\346\350\354\340)f(\347\340\354\345\355\340)g(\361)h +(\347\340\357\360\356\361\356\354)1508 b Fg(RET)-78 5593 +y Fi(\342\356\351\362\350)38 b(\342)g(\360\345\346\350\354)h +(\360\345\352\363\360\361\350\342\355\356\343\356)d +(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)i +(\(\344\353\377)g(\342\373\365)n(\356)n(\344\340)e +(\350\361\357\356\353\374\347\363)n(\345\362\361)n(\377)-78 +5692 y Fg(C-M-c)p Fi(\))2857 5593 y Fg(C-r)1860 6192 +y Fi(2)p eop end +%%Page: 3 3 +TeXDict begin 3 2 bop -128 -45 a Fh(11)131 b(\314\355\356)l(\346)l +(\345\361\362\342\356)44 b(\356\352)l(\356\355)-128 137 +y Fi(\312\356\354\340\355\344\373,)27 b +(\357\360\350\342\345\344\345\355\355\373\345)h(\342\356)e +(\342\362\356\360\356\354)h(\361\362\356\353\341\366\345,)h +(\357\360\350\354\345\355\377\376\362\361)n(\377)g(\352)g +(\344\360\363\343\356\354\363)f +(\(\355\345\340\352\362\350\342\355\356\354\363\))h(\356\352\355\363)-7 +b(.)-78 236 y(\363)i(\344\340\353\350\362\374)28 b(\342\361\345)f +(\356\361\362)n(\340\353\374\355\373\345)f(\356\352\355\340)1869 +b Fg(C-x)42 b(1)-78 344 y Fi(\360\340\347\341\350\362\374)27 +b(\356\352\355\356)g(\357\356)g(\343\356\360\350\347\356\355\362)n +(\340\353\350)1825 b Fg(C-x)42 b(2)472 b(C-x)42 b(5)h(2)-78 +444 y Fi(\363)-5 b(\344\340\353\350\362\374)28 b +(\344\340\355\355\356\345)f(\356\352\355\356)2143 b Fg(C-x)42 +b(0)472 b(C-x)42 b(5)h(0)-78 543 y Fi(\360\340\347\341\350\362\374)27 +b(\356\352\355\356)g(\357\356)g(\342\345\360\362\350\352)n +(\340\353\350)1904 b Fg(C-x)42 b(3)-78 643 y Fi +(\342\373\357\356\353\355\350\362\374)27 b +(\357\360\356\352\360\363\362\352\363)h(\342)f +(\344\360\363\343\356\354)h(\356\352\355\345)1530 b Fg(C-M-v)-78 +751 y Fi(\357\345\360\345\354\345\361\362\350\362\374)29 +b(\352\363\360\361\356\360)e(\342)g(\344\360\363\343\356\345)g +(\356\352\355\356)1629 b Fg(C-x)42 b(o)472 b(C-x)42 b(5)h(o)-78 +850 y Fi(\342\373\341\360\340\362\374)26 b(\341\363\364\345\360)h(\342) +g(\344\360\363\343\356\354)h(\356\352\355\345)1795 b +Fg(C-x)42 b(4)h(b)385 b(C-x)42 b(5)h(b)-78 950 y Fi(\357\356\352)n +(\340\347\340\362\374)26 b(\341\363\364\345\360)h(\342)g +(\344\360\363\343\356\354)g(\356\352\355\345)1775 b Fg(C-x)42 +b(4)h(C-o)297 b(C-x)42 b(5)h(C-o)-78 1050 y Fi +(\347\340\343\360\363\347\350\362\374)27 b(\364\340\351\353)g(\342)g +(\344\360\363\343\356\345)g(\356\352\355\356)1786 b Fg(C-x)42 +b(4)h(f)385 b(C-x)42 b(5)h(f)-78 1149 y Fi +(\356\362\352\360\373\362\374)28 b(\364\340\351\353)f(\342)g +(\360\345\346\350\354\345)h(\367\362\345\355\350\377)h(\342)e +(\344\360\363\343\356\354)g(\356\352\355\345)1149 b Fg(C-x)42 +b(4)h(r)385 b(C-x)42 b(5)h(r)-78 1249 y Fi(\347\340\357\363)n +(\361\362\350\362\374)27 b(Dired)h(\342)f(\344\360\363\343\356\354)h +(\356\352\355\345)1766 b Fg(C-x)42 b(4)h(d)385 b(C-x)42 +b(5)h(d)-78 1349 y Fi(\355\340\351\362\350)28 b(\362)n(\340\343)g(\342) +f(\344\360\363\343\356\354)g(\356\352\355\345)2003 b +Fg(C-x)42 b(4)h(.)385 b(C-x)42 b(5)h(.)-78 1457 y Fi +(\363\342\345\353\350\367\350\362\374)28 b(\342\373\361\356\362\363)e +(\356\352\355\340)2049 b Fg(C-x)42 b(\002)-78 1556 y +Fi(\361\363\347\350\362\374)28 b(\362\345\352\363\371\345\345)f +(\356\352\355\356)2148 b Fg(C-x)42 b({)-78 1656 y Fi +(\360\340\361\370\350\360\350\362\374)28 b +(\362\345\352\363\371\345\345)f(\356\352\355\356)1982 +b Fg(C-x)42 b(})-128 1901 y Fh(12)131 b +(\324\356\360\354\340\362\350\360\356\342\340\355\350\345)-78 +2085 y Fi(\361)n(\344\345\353\340\362\374)27 b +(\356\362\361\362\363\357)h(\344\353\377)g +(\362\345\352\363\371\345\351)g Ff(\361\362\360\356\352\350)g +Fi(\(\342)f(\347\340\342\350\361\350\354\356\361\362\350)g(\356\362)h +(\360\345\346\350\354\340\))470 b Fg(TAB)-78 2184 y Fi(\361)n +(\344\345\353\340\362\374)27 b(\356\362\361\362\363\357)h(\344\353\377) +g Ff(\356\341\353\340\361\362\350)g Fi(\(\342)g +(\347\340\342\350\361\350\354\356\361\362\350)f(\356\362)g +(\360\345\346\350\354\340\))775 b Fg(C-M-)p Fd(n)-78 +2284 y Fi(\361)n(\344\345\353\340\362\374)27 b +(\356\362\361\362\363\357)h(\344\353\377)g Ff(\342\373\360\340\346)m +(\345\355\350\377)h Fi(\(\342)e +(\347\340\342\350\361\350\354\356\361\362\350)g(\356\362)h +(\360\345\346\350\354\340\))617 b Fg(C-M-q)-78 2383 y +Fi(\361)n(\344\345\353\340\362\374)27 b(\356\362\361\362\363\357)h +(\352)g(\347\340\344\340\355\355\356\351)e Fe(ar)l(g)36 +b Fi(\352)n(\356\353\356\355\352)n(\345)1445 b Fg(C-x)42 +b(TAB)-78 2483 y Fi(\342\361\362)n(\340\342\350\362\374)27 +b(\355\356\342\363\376)f(\361\362\360\356\352\363)i +(\357\356\361\353\345)f(\352\363\360\361\356\360\340)1493 +b Fg(C-o)-78 2583 y Fi(\361)n(\344\342\350\355\363\362\374)27 +b(\356\361\362)n(\340\362\356\352)g(\361\362\360\356\352\350)h +(\342\345\360\362\350\352)n(\340\353\374\355\356)e(\342\355\350\347) +1293 b Fg(C-M-o)-78 2682 y Fi(\363)-5 b(\344\340\353\350\362\374)28 +b(\357\363)n(\361\362\373\345)f(\361\362\360\356\352\350)h +(\342\356\352\360\363\343)f(\352\363\360\361\356\360\340)1442 +b Fg(C-x)42 b(C-o)-78 2782 y Fi +(\356\341\372\345\344\350\355\350\362\374)27 b +(\361\362\360\356\352\363)h(\361)f +(\357\360\345\344\373\344\363\371\345\351)h(\(\361\356)f +(\361\353\345\344\363\376\371\350\354\350)h(arg\))817 +b Fg(M-\002)-78 2882 y Fi(\363)-5 b(\344\340\353\350\362\374)28 +b(\357\363)n(\361\362\356\345)f +(\357\360\356\361\362\360\340\355\361\362\342\356)g +(\342\356\352\360\363\343)g(\352\363\360\361\356\360\340)1211 +b Fg(M-)p Fd(n)-78 2981 y Fi(\357\356\354\345\361\362\350\362\374)28 +b(\362\356\353\374\352)n(\356)f(\356)n(\344\350\355)g +(\357\360\356\341\345\353)g(\342)g(\357\356\347\350\366\350\350)h +(\352\363\360\361\356\360\340)1036 b Fg(M-SPC)-78 3081 +y Fi(\347\340\357\356\353\355\350\362\374)27 b +(\362\345\352\363\371\350\351)h(\357\340\360\340\343\360\340\364)1799 +b Fg(M-q)-78 3180 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374) +26 b(\361\362\356\353\341\345\366)h +(\347\340\357\356\353\355\345\355\350\377)1739 b Fg(C-x)42 +b(f)-78 3280 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26 +b(\357\360\345\364\350\352)n(\361)h +(\347\340\357\356\353\355\345\355\350\377)g(\352)n +(\340\346\344\356\351)g(\361\362\360\356\352\350)1108 +b Fg(C-x)42 b(.)-78 3380 y Fi(\363)n(\361\362)n +(\340\355\356\342\350\362\374)26 b(\355\340)n(\367\345\360\362)n +(\340\355\350\345)2065 b Fg(M-g)-128 3625 y Fh(13)131 +b(\310\347\354\345\355\345\355\350\345)44 b +(\360\345\343\350\361\362\360\340)-78 3808 y Fi(\361)n +(\344\345\353\340\362\374)27 b(\341\363\352\342\373)g +(\361\353\356\342\340)f(\347\340\343)n(\353\340\342\355\373\354\350) +1672 b Fg(M-u)-78 3908 y Fi(\361)n(\344\345\353\340\362\374)27 +b(\341\363\352\342\373)g(\361\353\356\342\340)f +(\361\362\360\356\367\355\373\354\350)1704 b Fg(M-l)-78 +4008 y Fi(\361)n(\344\345\353\340\362\374)27 b +(\357\345\360\342\363\376)g(\341\363\352\342\363)g +(\361\353\356\342\340)f(\347\340\343)n(\353\340\342\355\356\351)1457 +b Fg(M-c)-78 4107 y Fi(\361)n(\344\345\353\340\362\374)27 +b(\341\363\352\342\373)g(\356\341\353\340\361\362\350)f(\347\340\343)n +(\353\340\342\355\373\354\350)1585 b Fg(C-x)42 b(C-u)-78 +4207 y Fi(\361)n(\344\345\353\340\362\374)27 b(\341\363\352\342\373)g +(\356\341\353\340\361\362\350)f(\361\362\360\356\367\355\373\354\350) +1617 b Fg(C-x)42 b(C-l)-128 4453 y Fh(14)131 b +(\314\350\355\350\341\363\364\345\360)-128 4635 y Fi +(\321\353\345\344\363\376\371\350\345)28 b +(\352\353\340\342\350\370\350)f(\(\352\353\376\367\350\))i +(\356\357\360\345\344\345\353\345\355\373)e(\342)h +(\354\350\355\350\341\363\364\345\360\345.)-78 4734 y +(\344\356\357\356\353\355\350\362\374)f(\355\340\361\352)n +(\356\353\374\352)n(\356)f(\342\356\347\354\356)n(\346\355\356)1727 +b Fg(TAB)-78 4833 y Fi(\344\356\357\356\353\355\350\362\374)27 +b(\344\356)h(\356)n(\344\355\356\343\356)e(\361\353\356\342\340)1907 +b Fg(SPC)-78 4933 y Fi(\344\356\357\356\353\355\350\362\374)27 +b(\350)h(\342\373\357\356\353\355\350\362\374)2026 b +Fg(RET)-78 5033 y Fi(\357\356\352)n(\340\347\340\362\374)26 +b(\342\356\347\354\356)n(\346\355\373\345)g +(\344\356\357\356\353\355\345\355\350\377)1677 b Fg(?)-78 +5132 y Fi(\342\373\341\360\340\362\374)26 b +(\357\360\345\344\373\344\363\371\350\351)i(\342\342\356)n(\344)e(\342) +h(\354\350\355\350\341\363\364\345\360)1390 b Fg(M-p)-78 +5232 y Fi(\342\373\341\360\340\362\374)26 b +(\361\353\345\344\363\376\371\350\351)i(\342\342\356)n(\344)e(\342)h +(\354\350\355\350\341\363\364\345\360)1443 b Fg(M-n)-78 +5332 y Fi(\357\356\350\361\352)28 b(\342)f +(\350\361\362\356\360\350\350)h(\357\356)f(\360\345\343\363)-5 +b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n +(\345\355\350\376)f(\342)g(\356\341\360\340\362\355\356\354)g +(\355\340\357\360\342\353\345\355\350\350)293 b Fg(M-r)-78 +5431 y Fi(\357\356\350\361\352)28 b(\342)f +(\350\361\362\356\360\350\350)h(\357\356)f(\360\345\343\363)-5 +b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n +(\345\355\350\376)f(\342)g(\357\360)n(\377\354\356\354)h +(\355\340\357\360\342\353\345\355\350\350)361 b Fg(M-s)-78 +5531 y Fi(\357\360\345\360\342\340\362\374)27 b(\352)n +(\356\354\340\355\344\363)2247 b Fg(C-g)-128 5627 y Fi +(\315\340\341\345\360\350\362\345)31 b Fg(C-x)42 b(ESC)g(ESC)30 +b Fi(\344\353\377)i +(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)e(\350)h +(\357\356\342\362\356\360\345\355\350\377)g +(\357\356\361\353\345\344\355\345\351)g(\352)n +(\356\354\340\355\344\373)f(\355\340\341\360\340\355\355\356\351)g +(\342)h(\354\350\355\350\341\363\364\345\360\345.)-128 +5726 y(\315\340\341\345\360\350\362\345)c Fg(F10)p Fi(,)g +(\367\362\356\341\373)g(\360\340\341\356\362)n(\340\362\374)f(\361)h +(\357\363\355\352\362)n(\340\354\350)h(\354\345\355\376)h(\357\360\350) +f(\357\356\354\356\371\350)f(\352)n(\356\354\340\355\344)g +(\354\350\355\350\341\363\364\345\360\340.)1860 6192 +y(3)p eop end +%%Page: 4 4 +TeXDict begin 4 3 bop -128 -45 a Fh(15)131 b(\301\363\364\345\360\340) +-78 139 y Fi(\342\373\341\360\340\362\374)26 b +(\344\360\363\343\356\351)i(\341\363\364\345\360)2071 +b Fg(C-x)42 b(b)-78 239 y Fi(\342\373\344\340\362\374)27 +b(\361\357\350\361\356\352)g(\342\361\345\365)g +(\341\363\364\345\360\356\342)1849 b Fg(C-x)42 b(C-b)-78 +338 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28 +b(\341\363\364\345\360)2212 b Fg(C-x)42 b(k)-128 584 +y Fh(16)131 b(\316\341\354\345\355)43 b(\354\345\361\362)l +(\340\354\350)-78 745 y Fi(\356\341\354\345\355\377\362\374)27 +b(\354\345\361\362)n(\340\354\350)h Ff(\361\350\354\342\356\353\373) +1842 b Fg(C-t)-78 844 y Fi(\356\341\354\345\355\377\362\374)27 +b(\354\345\361\362)n(\340\354\350)h Ff(\361\353\356\342\340)1982 +b Fg(M-t)-78 944 y Fi(\356\341\354\345\355\377\362\374)27 +b(\354\345\361\362)n(\340\354\350)h Ff(\361\362\360\356\352\350)1925 +b Fg(C-x)42 b(C-t)-78 1044 y Fi(\356\341\354\345\355\377\362\374)27 +b(\354\345\361\362)n(\340\354\350)h Ff(\342\373\360\340\346)m +(\345\355\350\377)1727 b Fg(C-M-t)-128 1289 y Fh(17)131 +b(\317\360\356\342\345\360\352)l(\340)44 b +(\343\360\340\354\354\340\362\350\352\350)-78 1472 y +Fi(\357\360\356\342\345\360\350\362\374)27 b +(\362\345\352\363\371\345\345)h(\361\353\356\342\356)1974 +b Fg(M-$)-78 1572 y Fi(\357\360\356\342\345\360\350\362\374)27 +b(\342\361\345)g(\361\353\356\342\340)f(\342)i +(\356\341\353\340\361\362\350)1776 b Fg(M-x)42 b(ispell-region)-78 +1672 y Fi(\342\373\357\356\353\355\350\362\374)27 b +(\357\360\356\342\345\360\352\363)g(\342\361\345\343\356)f +(\341\363\364\345\360\340)1624 b Fg(M-x)42 b(ispell-buffer)-128 +1917 y Fh(18)131 b(\322)-11 b(\345\343\350)-78 2077 y +Fi(\355\340\351\362\350)28 b +(\356\357\360\345\344\345\353\345\355\350\345)g(\362\345\343)n(\340) +2037 b Fg(M-.)-78 2177 y Fi(\355\340\351\362\350)28 b +(\361\353\345\344\363\376\371\345\345)g(\342\365)n(\356)n +(\346\344\345\355\350\345)e(\362\345\343)n(\340)1659 +b Fg(C-u)42 b(M-.)-78 2276 y Fi(\363\352)n(\340\347\340\362\374)26 +b(\355\356\342\373\351)h(\364\340\351\353)g(\361)h(\362\345\343)n +(\340\354\350)1807 b Fg(M-x)42 b(visit-tags-tabl)o(e)-78 +2376 y Fi(\357\356\350\361\352)28 b(\357\356)f +(\370\340\341\353\356\355\363)f(\357\356)h(\342\361\345\351)g(\362)n +(\340\341\353\350\366\345)g(\362\345\343\356\342)1392 +b Fg(M-x)42 b(tags-search)-78 2476 y Fi +(\342\373\357\356\353\355\350\362\374)27 b(query-replace)f +(\355\340\344)h(\342\361\345\354\350)g(\364\340\351\353\340\354\350) +1237 b Fg(M-x)42 b(tags-query-repl)o(ace)-78 2575 y Fi(\357\360\356)n +(\344\356\353\346\350\362\374)27 b(\357\356\350\361\352)h(\350\353\350) +g(\357\356\350\361\352-\347\340\354\345\355\363)e(\362\345\343)n(\340) +1346 b Fg(M-,)-128 2820 y Fh(19)131 b +(\312\356\354\340\355\344\355\373\345)43 b +(\357\360\356\366\345\361\361\356\360\373)-78 3004 y +Fi(\302\373\357\356\353\355\350\362\374)28 b(\352)n +(\356\354\340\355\344\363)e(\352)n +(\356\354\340\355\344\355\356\343\356)g +(\357\360\356\366\345\361\361\356\360\340)1245 b Fg(M-!)-78 +3104 y Fi(\342\373\357\356\353\355\350\362\374)27 b(\352)n +(\356\354\340\355\344\363)g(\352)n +(\356\354\340\355\344\355\356\343\356)f +(\357\360\356\366\345\361\361\356\360\340)g(\355\340\344)i +(\356\341\353\340\361\362\374\376)720 b Fg(M-|)-78 3203 +y Fi(\357\360\356\357\363)n(\361\362\350\362\374)28 b(\361\356)n +(\344\345\360)n(\346\350\354\356\345)e(\356\341\353\340\361\362\350)h +(\367\345\360\345\347)h(\352)n(\356\354\340\355\344\363)f(\352)n +(\356\354\340\355\344\355\356\343\356)f +(\357\360\356\366\345\361\361\356\360\340)210 b Fg(C-u)42 +b(M-|)-78 3303 y Fi(\347\340\357\363)n(\361\362\350\362\374)27 +b(\352)n(\356\354\340\355\344\355\373\351)h +(\357\360\356\366\345\361\361\356\360)e(\342)i(\356\352\355\345)f +Fg(*shell*)1098 b(M-x)42 b(shell)-128 3549 y Fh(20)131 +b(\317\360)l(\377\354\356\363\343\356\353\374\355\373\345)44 +b(\356\341\353\340\361\362\350)-78 3733 y Fi(\361\352)n +(\356\357\350\360\356\342\340\362\374)26 b(\357\360)n +(\377\354\356\363\343\356\353\374\355\363\376)g +(\356\341\353\340\361\362\374)g(\342)i(\360\345\343\350\361\362\360) +1140 b Fg(C-x)42 b(r)h(r)-78 3832 y Fi(\363)-5 b +(\344\340\353\350\362\374)28 b(\357\360)n +(\377\354\356\363\343\356\353\374\355\363\376)e +(\356\341\353\340\361\362\374)1692 b Fg(C-x)42 b(r)h(k)-78 +3932 y Fi(\342\361\362)n(\340\342\350\362\374)27 b +(\357\356\361\353\345\344\355\363\376)g(\363\355\350\367\362\356)n +(\346)n(\345\355\355\363\376)h(\357\360)n +(\377\354\356\363\343\356\353\374\355\363\376)e +(\356\341\353\340\361\362\374)638 b Fg(C-x)42 b(r)h(y)-78 +4031 y Fi(\356\362\352\360\373\362\374)28 b(\357\360)n +(\377\354\356\363\343\356\353\374\355\363\376)e +(\356\341\353\340\361\362\374,)h(\361)n(\344\342\350\343)n(\340\377)f +(\362\345\352)n(\361\362)i(\342\357\360\340\342\356)821 +b Fg(C-x)42 b(r)h(o)-78 4131 y Fi(\356\367\350\361\362\350\362\374)28 +b(\357\360)n(\377\354\356\363\343\356\353\374\355\363\376)f +(\356\341\353\340\361\362\374)1652 b Fg(C-x)42 b(r)h(c)-78 +4231 y Fi(\357\360\345\344\342\340\360\350\362\374)27 +b(\352)n(\340\346\344\363\376)h(\361\362\360\356\352\363)f +(\361\362\360\356\352)n(\356\351)g(\362\345\352)n(\361\362)n(\340)1291 +b Fg(C-x)42 b(r)h(t)-128 4476 y Fh(21)131 b +(\321\356\352\360\340\371\345\355\350\377)-78 4659 y +Fi(\344\356\341\340\342\350\362\374)26 b(\343)n +(\353\356\341\340\353\374\355\356\345)f +(\361\356\352\360\340\371\345\355\350\345)1675 b Fg(C-x)42 +b(a)h(g)-78 4759 y Fi(\344\356\341\340\342\350\362\374)26 +b(\353\356\352)n(\340\353\374\355\356\345)g(\344\353\377)i +(\360\345\346\350\354\340)f(\361\356\352\360\340\371\345\355\350\345) +1220 b Fg(C-x)42 b(a)h(l)-78 4859 y Fi +(\344\356\341\340\342\350\362\374)26 b(\343)n +(\353\356\341\340\353\374\355\356\345)f(\347\355\340)n +(\367\345\355\350\345)i(\344\353\377)h(\344\340\355\355\356\343\356)e +(\361\356\352\360\340\371\345\355\350\377)813 b Fg(C-x)42 +b(a)h(i)g(g)-78 4958 y Fi(\344\356\341\340\342\350\362\374)26 +b(\361\357\345\366\350\364\350\367\345\361\352)n(\356\345)h +(\344\353\377)h(\360\345\346\350\354\340)f(\347\355\340)n +(\367\345\355\350\345)g(\344\340\355\355\356\343\356)g +(\361\356\352\360\340\371\345\355\350\377)342 b Fg(C-x)42 +b(a)h(i)g(l)-78 5058 y Fi(\377\342\355\356)27 b(\342\361\362)n +(\340\342\350\362\374)f(\347\355\340)n(\367\345\355\350\345)h +(\344\353\377)h(\361\356\352\360\340\371\345\355\350\377)1395 +b Fg(C-x)42 b(a)h(e)-78 5158 y Fi +(\344\350\355\340\354\350\367\345\361\352\350)28 b +(\344\356\357\356\353\355\350\362\374)g +(\357\360\345\344\373\344\363\371\345\345)f(\361\353\356\342\356)1287 +b Fg(M-/)1860 6192 y Fi(4)p eop end +%%Page: 5 5 +TeXDict begin 5 4 bop -128 -45 a Fh(22)131 b(\320)l(\345\343\363)-7 +b(\353\377\360\355\373\345)44 b(\342\373\360\340\346)l +(\345\355\350\377)-78 139 y Fi(\353\376\341\356\351)27 +b(\356)n(\344\350\355\356\367\355\373\351)g(\361\350\354\342\356\353)g +(\(\347\340)h(\350\361\352\353\376\367\345\355\350\345\354)g +(\361\350\354\342\356\353\340)f(\355\356\342\356\351)f +(\361\362\360\356\352\350\))388 b Fg(.)43 b Fi(\(dot\))-78 +239 y(\355\356\353\374)27 b(\350\353\350)h(\341\356\353\345\345)f +(\357\356\342\362\356\360\345\355\350\351)1901 b Fg(*)-78 +338 y Fi(\356)n(\344\355\356)27 b(\350\353\350)h(\341\356\353\345\345)e +(\357\356\342\362\356\360\345\355\350\351)1904 b Fg(+)-78 +438 y Fi(\355\356\353\374)27 b(\350\353\350)h(\356)n(\344\355\356)f +(\357\356\342\362\356\360\345\355\350\345)1940 b Fg(?)-78 +537 y Fi(\375\352\360\340\355\350\360\356\342\340\362\374)26 +b(\361\357\345\366\350\340\353\374\355\373\351)h +(\361\350\354\342\356\353)h Fe(c)1536 b Fd(n)p Fe(c)-78 +637 y Fi(\342\373\341\356\360)26 b(\354\345\346\344\363)i(\340\353\374) +n(\362\345\360\355\340\362\350\342\340\354\350)f +(\(\020\350\353\350\021\))1501 b Fd(nj)-78 737 y Fi +(\343\360\363\357\357\350\360\356\342\352)n(\340)2454 +b Fd(n)p Fg(\()42 b Fc(:)14 b(:)g(:)44 b Fd(n)p Fg(\))-78 +836 y Fi(\362\345\352)n(\361\362)29 b(\342)e Fe(n)6 b +Fi(-\351)27 b(\343\360\363\357\357\345)2227 b Fd(n)p +Fe(n)-78 936 y Fi(\343\360\340\355\350\366\340)27 b +(\361\353\356\342\340)2394 b Fd(n)p Fg(b)-78 1036 y Fi(\355\345)28 +b(\343\360\340\355\350\366\340)f(\361\353\356\342\340)2283 +b Fd(n)p Fg(B)-78 1144 y Ff(\356\341\372\345\352\362)2640 +b(\355\340)m(\367\340\353\356)79 b(\361\356\356\362-)2857 +1243 y(\342\345\362\361\362\342\350\377)3547 1144 y(\352)m +(\356\355\345\366)127 b(\361\356\356\362-)3547 1243 y +(\342\345\362\361\362\342\350\377)-78 1343 y Fi(\361\362\360\356\352)n +(\340)2683 b Fg(\002)645 b($)-78 1442 y Fi(\361\353\356\342\356)2726 +b Fd(n)p Fg(<)604 b Fd(n)p Fg(>)-78 1542 y Fi(\341\363\364\345\360)2701 +b Fd(n)p Fg(`)604 b Fd(n)p Fg(')-78 1650 y Ff(\352\353\340\361\361)33 +b(\361\350\354\342\356\353\356\342)2262 b +(\361\356\356\362\342\345\362-)2857 1750 y(\361\362\342\363)m(\345\362) +32 b(\350\354)3547 1650 y(\361\356\356\362\342\345\362-)3547 +1750 y(\361\362\342\363)m(\345\362)131 b(\344\360\363-)3547 +1849 y(\343\350\354)-78 1949 y Fi(\377\342\355\373\351)28 +b(\355\340\341\356\360)2450 b Fg([)43 b Fc(:)14 b(:)g(:)43 +b Fg(])419 b([\002)p Fc(:)14 b(:)g(:)41 b Fg(])-78 2048 +y Fi(\361\350\354\342\356\353-\341\363\352\342\340)2423 +b Fd(n)p Fg(w)604 b Fd(n)p Fg(W)-78 2148 y Fi(\361\350\354\342\356\353) +27 b(\361)h(\361\350\355\362)n(\340\352)n(\361\350\361\356\354)f +Fe(c)2039 b Fd(n)p Fg(s)p Fe(c)566 b Fd(n)p Fg(S)p Fe(c)-128 +2394 y Fh(23)131 b(\314\345\346\344\363\355\340\360\356)l +(\344\355\373\345)43 b(\355\340\341\356\360\373)g +(\361\350\354\342\356\353\356\342)-78 2578 y Fi +(\342\373\341\360\340\362\374)26 b(\377\347\373\352)2406 +b Fg(M-x)42 b(set-language-en)o(vir)o(on)o(me)o(nt)-78 +2677 y Fi(\357\356\352)n(\340\347\340\362\374)26 b(\342\361\345)h +(\342\356\347\354\356)n(\346\355\373\345)f(\354\345\362\356)n(\344\373) +i(\342\342\356)n(\344\340)1457 b Fg(M-x)42 b(list-input-meth)o(ods)-78 +2777 y Fi(\360\340\347\360\345\370\350\362\374)27 b(\350\353\350)h +(\347\340\357\360\345\362\350\362\374)g(\354\345\362\356)n(\344)g +(\342\342\356)n(\344\340)1473 b Fg(C-)p Fd(n)-78 2877 +y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26 +b(\361\350\361\362\345\354\363)i(\352)n(\356)n +(\344\350\360\356\342\340\355\350\377)e(\344\353\377)i +(\361\353\345\344\363\376\371\345\351)f(\352)n +(\356\354\340\355\344\373)705 b Fg(C-x)42 b(RET)g(c)-78 +2976 y Fi(\357\356\352)n(\340\347\340\362\374)26 b +(\361\357\350\361\356\352)i(\342\361\345\365)e +(\361\350\361\362\345\354)j(\352)n(\356)n +(\344\350\360\356\342\340\355\350\377)1338 b Fg(M-x)42 +b(list-coding-sys)o(tem)o(s)-78 3076 y Fi(\342\373\341\360\340\362\374) +26 b(\357\360\345\344\357\356\367\362\350\362\345\353\374\355\363\376)j +(\361\350\361\362\345\354\363)f(\352)n(\356)n +(\344\350\360\356\342\340\355\350\377)1041 b Fg(M-x)42 +b(prefer-coding-s)o(yst)o(em)-128 3329 y Fh(24)131 b +(\310\355\364\356\360\354\340\366\350\377)44 b +(\(\361\350\361\362\345\354\340)g(Info\))-78 3519 y Fi +(\347\340\357\363)n(\361\362\350\362\374)27 b +(\361\350\361\362\345\354\363)i(\344\356\361\362\363\357\340)e(\352)g +(\344\356\352\363\354\345\355\362)n(\340\366\350\350)1275 +b Fg(C-h)42 b(i)-78 3619 y Fi(\355\340\351\362\350)28 +b(\363\352)n(\340\347\340\355\355\363\376)f +(\364\363\355\352\366\350\376)g(\350\353\350)h +(\357\345\360\345\354\345\355\355\363\376)h(\342)e +(\344\356\352\363\354\345\355\362)n(\340\366\350\350)615 +b Fg(C-h)42 b(C-i)-128 3719 y Fi +(\317\345\360\345\354\345\371\345\355\350\345)28 b +(\342\355\363\362\360\350)f(\363\347\353\340)g(\(\355\356)n +(\344\340\354\350\):)-78 3818 y(\357\360\356\352\360\363\362\352)n +(\340)g(\342\357\345\360\345\344)2257 b Fg(SPC)-78 3917 +y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b(\355\340\347\340\344) +2298 b Fg(DEL)-78 4017 y Fi(\357\345\360\345\351\362\350)29 +b(\352)e(\355\340)n(\367\340\353\363)g(\363\347\353\340)2074 +b Fg(.)43 b Fi(\(dot\))-128 4112 y +(\317\345\360\345\354\345\371\345\355\350\345)28 b +(\354\345\346\344\363)g(\363\347\353\340\354\350:)-78 +4206 y Ff(\361\353\345\344\363\376\371\350\351)f Fi(\363\347\345\353) +2245 b Fg(n)-78 4306 y Ff(\357\360\345\344\373\344\363\371\350\351)27 +b Fi(\363\347\345\353)2184 b Fg(p)-78 4405 y Fi +(\357\345\360\345\351\362\350)29 b(\352)e Ff(\342\345\360)m +(\365\355\345\354\363)h Fi(\363\347\353\363)1932 b Fg(u)-78 +4505 y Fi(\342\373\341\360\340\362\374)26 b(\354\345\355\376)j +(\357\356)e(\350\354\345\355\350)2020 b Fg(m)-78 4605 +y Fi(\342\373\341\360\340\362\374)26 b Fe(n)6 b Fi(-\351)28 +b(\357\363\355\352\362)g(\354\345\355\376)h(\357\356)e +(\355\356\354\345\360\363)g(\(1\0259\))1357 b Fe(n)-78 +4704 y Fi(\357\345\360\345\351\362\350)29 b(\357\356)e +(\361\361\373\353\352)n(\345)g(\(\342\356\347\342\360\340\362)g(\361)g +(\357\356\354\356\371\374\376)g Fg(l)p Fi(\))1330 b Fg(f)-78 +4804 y Fi(\342\356\347\342\360\340\362\350\362\361)n(\377)27 +b(\352)g(\357\356\361\353\345\344\355\345\354\363)h +(\357\360\356\361\354\356\362\360\345\355\355\356\354\363)f +(\363\347\353\363)1089 b Fg(l)-78 4904 y Fi +(\342\356\347\342\360\340\362\350\362\361)n(\377)27 b(\352)g +(\363\347\353\363-\352)n(\340\362)n(\340\353\356\343\363)1841 +b Fg(d)-78 5003 y Fi(\357\345\360\345\351\362\350)29 +b(\352)e(\363\347\353\363)-7 b(,)28 b +(\347\340\344\340\355\355\356\354\363)e(\350\354\345\355\345\354)1617 +b Fg(g)-128 5098 y Fi(\304\360\363\343\350\345)27 b(\352)n +(\356\354\340\355\344\373:)-78 5192 y(\347\340\357\363)n +(\361\362\350\362\374)g Ff(\363\367\345\341\355\350\352)h +Fi(\357\356)f(\361\350\361\362\345\354\345)i +(\344\356\352\363\354\345\355\362)n(\340\366\350\350)1183 +b Fg(h)-78 5292 y Ff(\357\360\345\352\360\340\362\350\362\374)32 +b(\360\340\341\356\362\363)d Fi(\361)e +(\344\356\352\363\354\345\355\362)n(\340\366\350\345\351)1455 +b Fg(q)-78 5392 y Fi(\357\356\350\361\352)28 b(\342)f +(\363\347\353\340\365)g(\361)g(\357\356\354\356\371\374\376)g +(\360\345\343\363)-5 b(\353\377\360\355\373\365)28 b +(\342\373\360\340\346)n(\345\355\350\351)1028 b Fg(M-s)1860 +6192 y Fi(5)p eop end +%%Page: 6 6 +TeXDict begin 6 5 bop -128 -45 a Fh(25)131 b(\320)l +(\345\343\350\361\362\360\373)-78 139 y Fi(\361\356)n +(\365\360\340\355\350\362\374)27 b(\356\341\353\340\361\362\374)f(\342) +h(\360\345\343\350\361\362\360\345)1810 b Fg(C-x)42 b(r)h(s)-78 +239 y Fi(\342\361\362)n(\340\342\350\362\374)27 b(\361\356)n +(\344\345\360)n(\346\350\354\356\345)f +(\360\345\343\350\361\362\360\340)i(\342)f(\341\363\364\345\360)1435 +b Fg(C-x)42 b(r)h(i)-78 338 y Fi(\361\356)n +(\365\360\340\355\350\362\374)27 b(\357\356\353\356)n(\346)n +(\345\355\350\345)f(\352\363\360\361\356\360\340)h(\342)g +(\360\345\343\350\361\362\360\345)1365 b Fg(C-x)42 b(r)h(SPC)-78 +438 y Fi(\357\345\360\345\351\362\350)29 b(\352)e(\357\356\353\356)n +(\346)n(\345\355\350\376)g(\352\363\360\361\356\360\340,)g(\361\356)n +(\365\360\340\355\345\355\355\356\354\363)f(\342)h +(\360\345\343\350\361\362\360\345)775 b Fg(C-x)42 b(r)h(j)-128 +683 y Fh(26)131 b(\312\353\340\342\350\340\362\363\360\355\373\345)44 +b(\354\340\352\360\356\361\373)-78 867 y Ff(\355\340)m +(\367\340\362\374)29 b Fi(\356\357\360\345\344\345\353\345\355\350\345) +e(\352\353\340\342\350\340\362\363\360\355\356\343\356)f +(\354\340\352\360\356\361\340)1227 b Fg(C-x)42 b(\()-78 +966 y Ff(\347\340\352)m(\356\355\367\350\362\374)29 b +Fi(\356\357\360\345\344\345\353\345\355\350\345)e +(\352\353\340\342\350\340\362\363\360\355\356\343\356)f +(\354\340\352\360\356\361\340)1077 b Fg(C-x)42 b(\))-78 +1066 y Ff(\342\373\357\356\353\355\350\362\374)27 b Fi +(\357\356\361\353\345\344\355\350\351)h +(\356\357\360\345\344\345\353\345\355\355\373\351)g +(\354\340\352\360\356\361)1187 b Fg(C-x)42 b(e)-78 1165 +y Fi(\344\356\357\356\353\355\350\362\374)27 b +(\357\356\361\353\345\344\355\350\351)h +(\356\357\360\345\344\345\353\345\355\355\373\351)g +(\354\340\352\360\356\361)1260 b Fg(C-u)42 b(C-x)g(\()-78 +1265 y Fi(\347\340\344\340\362\374)27 b(\350\354\377)h(\344\353\377)g +(\357\356\361\353\345\344\355\345\343\356)f +(\356\357\360\345\344\345\353\345\355\355\356\343\356)f +(\354\340\352\360\356\361\340)990 b Fg(M-x)42 b(name-last-kbd-m)o(acr)o +(o)-78 1365 y Fi(\342\361\362)n(\340\342\350\362\374)27 +b(\342)g(\341\363\364\345\360)f +(\356\357\360\345\344\345\353\345\355\350\345)i +(\354\340\352\360\356\361\340)e(\355\340)i(\377\347\373\352)n(\345)f +(Lisp)898 b Fg(M-x)42 b(insert-kbd-macr)o(o)-128 1611 +y Fh(27)131 b(\312\356\354\340\355\344\373,)43 b +(\361\342\377\347\340\355\355\373\345)h(\361)h(Emacs)e(Lisp)-78 +1794 y Fi(\342\373\367\350\361\353\350\362\374)28 b Ff +(\342\373\360\340\346)m(\345\355\350\345)g Fi(\357\345\360\345\344)g +(\352\363\360\361\356\360\356\354)1389 b Fg(C-x)42 b(C-e)-78 +1894 y Fi(\342\373\367\350\361\353\350\362\374)28 b +(\362\345\352\363\371\363\376)g(\364\363\355\352\366\350\376)f +Ff(defun)1518 b Fg(C-M-x)-78 1994 y Fi +(\342\373\367\350\361\353\350\362\374)28 b Ff +(\356\341\353\340\361\362\374)g Fi(\352)n(\340\352)f +(\342\373\360\340\346)n(\345\355\350\345)1561 b Fg(M-x)42 +b(eval-region)-78 2093 y Fi(\361\367\350\362)n(\340\362\374)28 +b(\350)g(\342\373\367\350\361\353\350\362\374)f(\342\373\360\340\346)n +(\345\355\350\345)g(\350\347)g +(\354\350\355\350\341\363\364\345\360\340)1078 b Fg(M-:)-78 +2193 y Fi(\347\340\343\360\363\347\350\362\374)27 b(\350\347)h +(\361\362)n(\340\355\344\340\360\362\355\356\343\356)e +(\361\350\361\362\345\354\355\356\343\356)i(\352)n(\340\362)n +(\340\353\356\343)n(\340)1113 b Fg(M-x)42 b(load-library)-128 +2438 y Fh(28)131 b(\317\360\356\361\362)l(\340\377)45 +b(\355\340\361\362\360\356\351\352)l(\340)-78 2619 y +Fi(\355\340\361\362\360\356\350\362\374)28 b +(\357\345\360\345\354\345\355\355\373\345)g(\350)f +(\356\364\356\360\354\353\345\355\350\345)g(\(faces\))1249 +b Fg(M-x)42 b(customize)-128 2720 y Fi(\321\356\347\344\340\362\374)27 +b(\343)n(\353\356\341\340\353\374\355\356\345)e(\355\340\347\355\340)n +(\367\345\355\350\345)i(\352\353\376\367\345\351)h(\355\340)f(Emacs)h +(Lisp)f(\(\357\360\350\354\345\360\):)-128 2902 y Fg(\(global-set-key) +38 b("\\C-cg")i('goto-line\))-128 3002 y(\(global-set-key)e("\\M-#")j +('query-replace-)o(re)o(gex)o(p\))-128 3276 y Fh(29)131 +b(\315\340\357\350\361\340\355\350\345)44 b(\352)l +(\356\354\340\355\344)-128 3458 y Fg(\(defun)d()d +(\(\))-40 3558 y("")f(\(interactive)h +("